容器化部署 — GCP教學

容器化部署 — GCP教學

更新於 發佈於 閱讀時間約 5 分鐘

※ Google Cloud Platform (GCP):

網址:https://cloud.google.com/

raw-image

※ 進入控制台:建立專案

raw-image

※ 第一步設立帳單:

raw-image

※ 第二步管理帳單帳戶:

一個帳單帳戶就是一個付款方式。

raw-image

※ 建立付款帳戶:

raw-image
raw-image

※ 新增專案:

raw-image
raw-image

※ 租用虛擬主機:Compute Engine(GCE)

作用管理專案裡面所有的虛擬主機

raw-image

※ 建立一個虛擬主機:

raw-image

內容說明:

機器設定:設定虛擬主機名稱。

區域設定:虛擬主機位置(asia-east1台灣)。

可用區設定:機房區塊(不限)。

  • CPU使用類型:省錢方案
raw-image


  • 觀測能力:顯示裝置可以啟用來做螢幕畫面的擷取和錄製
raw-image


  • 作業系統和儲存空間:開機硬碟
raw-image

進入變更硬碟大小內容:

1.作業系統

2.服務本體(程式碼)

  • 開機硬碟類型:選擇預設
raw-image
  • 安全性:權限設定
raw-image
  • 網路連線:防火牆

防火牆需要允許 HTTP(通常為埠 80)和 HTTPS(通常為埠 443)的流量,所以兩項都要開啟,才能讓伺服器能夠正常運作並供用戶存取。

raw-image
  • 預估每月費用:
raw-image
  • 主機成功建立:外部IP就是公網IP
raw-image

※ 透過自己的電腦去做SSH的連線:

  • 確認公鑰位置:
raw-image
  • 確認本地私鑰指令:
ls ~/.ssh/
raw-image
  • 確認私鑰檔案的權限:確保本地的私鑰權限是安全的。
chmod 600 ~/.ssh/id_rsa
  • 測試連線: 使用以下指令重新嘗試連線:
ssh -i ~/.ssh/id_rsa user@35.221.175.221//替換 user 為伺服器的用戶名稱和公網IP。
raw-image


※ 部署程式碼到Google Cloud Platform (GCP):

1.安裝Node.Js:透過package Manager安裝適用個人電腦的版本。

網址:https://nodejs.org/zh-tw/download

  • 使用具有sudo權限的用戶在Ubuntu系統中安裝Node.js的步驟:
//更新套件索引:
sudo apt update
  • 從NodeSource存儲庫安裝Node.js(以下以Node.js 16版為例):
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
raw-image

2.安裝Node.Js結果:

node -v
npm -v
raw-image

※ 部署程式碼到Google Cloud Platform (GCP)常用方法:

  1. 使用 Git(適用於版本控制的專案)。
  2. 使用 FTP/SFTP 客戶端工具。
  3. 使用 SCP (Secure Copy Protocol):SCP 是一種透過 SSH 安全傳輸檔案的方法。

※ 跳出目前 SSH 環境:

在終端機中輸入exit ,退出 SSH 環境並回到本地環境。

exit

※ 使用 SCP部署程式碼到Google Cloud Platform (GCP):

1.刪除node_modules:

可以減少檔案大小,讓搬遷更方便(例如透過 SCP 或 Git)。

rm -rf node_modules

搬移完成後,在新的環境中重新生成 node_modules

npm install

2.確認本地資料夾位置:

 cd payment//(進入專案資料夾)
pwd//(確認專案資料夾路徑)
/c/Users/user/payment
ls//(列出目前目錄中的檔案和資料夾)
server/
raw-image

3.複製本地資料夾:

scp -r C:/Users/user/payment/server carola1408@35.221.175.221:~/

程式碼解說:

1.如果伺服器上的目標路徑還沒有特定的資料夾,您可以在 SCP 命令中直接使用 「:~」,這表示將檔案傳送到伺服器上 遠端使用者的主目錄。

2.建立目標路徑:

  • 登入伺服器:
ssh carola1408@35.221.175.221
  • 建立目錄:
mkdir -p ~/payment //建立專案資料夾
  • 執行 SCP 命令將檔案傳送到該目錄:
scp -r C:/Users/user/payment/server carola1408@35.221.175.221:~/payment/

上傳成功結果:

raw-image

上傳伺服器成功結果:

登入伺服器:

ssh carola1408@35.221.175.221

檢查目標目錄的內容:

ls -l ~/server
raw-image

※ 安裝node_modules套件:

cd server //進入資料夾​
npm install

※ 驗證安裝是否成功:

ls -l
raw-image

※ 更改端口設定:進入虛擬私有雲網路

raw-image

進入防火牆:

raw-image

建立防火牆規則:

raw-image

內容設定範例:

raw-image
raw-image

※ 結論:

我們利用最基本的概念來完成遠端主機部署的示範。首先,透過 Google Cloud Platform (GCP) 建立一個專案,接著租用一台主機並配置防火牆以確保安全性。最後,只需將資料複製到遠端主機,便能順利運行系統。這僅僅是一個範例,提供操作流程的初步展示。


avatar-img
奧莉薇走在成為後端工程師之路上
17會員
137內容數
全端網頁開發專業知識分享
留言
avatar-img
留言分享你的想法!
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可