iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0
DevOps

DevOps 好想學!新手也能打造雲端 Study Lab系列 第 4

Day04 - 在 GCE 建立第一個 Web Service

Day03 我們使用 GCE 建立一台 VM,今天要學習如何連線到虛擬機,並在伺服器上使用 NodeJS 建置簡易的 Web 服務。

連接虛擬機的方式

方案一 透過 SSH Key 登入

如果想使用自己的 Terminal 來連線至 VM ,可以透過 SSH 金鑰的方式。

  1. 輸入指令來產生 SSH Key
ssh-keygen
  1. 按 enter 選擇默認值
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

(輸出結果)

Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fw9uAk9ASgQ27Cf0I0pYmqySiB8Laqmd+uoU2Qc4Uek
The key's randomart image is:
+---[RSA 3072]----+
|   o=+o          |
|  ..=o. .        |
|.= *.o o         |
|+.+ *E= .        |
|+= o = .S.       |
|B + .   ...      |
|o+.o     +. o    |
|o+o.      oo.    |
|B=+        o. .  |
+----[SHA256]-----+

公私鑰就建立完成了,預設會存在 ~/.ssh 資料夾,,其中 id_rsa是私鑰,id_rsa.pub則是公鑰,接著把公鑰給複製起來放入 VM 裡,就能使用私鑰進行連線。

  1. 印出 Public Key
cat ~/.ssh/id_rsa.pub
  1. 將印出的 Public Key 複製下來
# 印出的全部都複製起來
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXX user@computer.local
  1. 回到 GCP 網站,點擊console左上角 -> Compute Engine -> VM執行個體

  1. 點擊VM名稱

  1. 點選編輯

  1. 下拉找到SSH金鑰,點選顯示與編輯

  1. 輸入剛剛複製的 Public Key
  2. 點擊儲存

  1. 回到 VM 執行個體畫面,找到伺服器外部 IP

  1. 透過私鑰即可成功連線
ssh -i ~/.ssh/id_rsa <外部IP>

方案二 直接使用 Web Console 連線

GCE 也提供了 Web Console 服務,透過瀏覽器就能連線到 VM

  1. 回到 VM 執行個體畫面 -> 點擊 SSH 進行連線

成功連線後會跳出瀏覽器視窗。

Web Service

接著利用 NodeJS 建置簡單的 Web 服務,讓 Server 能對 Http 請求做出回應。

  1. 先透過 SSH Key 或 Web Console 的方式連線到 VM

  2. 更新伺服器

sudo apt-get update
  1. 安裝 Node 以及 Npm
sudo apt-get install -y nodejs npm
  1. 確認是否成功安裝
  • Node
node -v

(輸出結果)

v10.19.0
  • Npm
npm -v

(輸出結果)

6.14.4
  1. 建立專案資料夾
mkdir project && cd project
  1. 建立專案相關文件
  • package.json
cat > package.json <<EOF
{
    "dependencies": {
        "express": "*"
    },
    "scripts": {
        "start": "node app.js"
    }
}
EOF
  • app.js
cat > app.js <<EOF
const express = require('express')
const app = express()
const port = 80

app.get('/', (req, res) => {
  res.send('Hello IT-Home!!')
})

app.listen(port, () => {
  console.log('Example app listening at port %s', port)
})
EOF
  1. 安裝所需套件
npm install
  1. 啟動服務
sudo npm start&

(輸出結果)

[1] 12871
> @ start /home/justin89721/nodeProject
> node app.js
Example app listening at port 80
  1. 回到 VM 執行個體畫面,找到伺服器外部 IP

  1. 開啟瀏覽器,輸入網址後送出
http://<外部IP位址>

可以看到伺服器回傳訊息,最基本的 Web Service 就建立完成了。

  1. 若要關閉服務,可以用以下指令
sudo pkill -f node

總結

今天學會了如何連線至 VM 並進行簡單操作,除了 Node 之外也可以嘗試部署如 nginx 等其他的應用,但這種在 VM 建置服務是較傳統的方式,之後的文章中就會學習到如何使用 Container 將應用程式打包並運行。


上一篇
Day03 - 使用 Google Compute Engine 建立 VM
下一篇
Day05 - GCP 上的開發工具 Cloud Shell
系列文
DevOps 好想學!新手也能打造雲端 Study Lab30

尚未有邦友留言

立即登入留言