先決條件
- GCP 帳號(免費方案即可)
- 已安裝 gcloud CLI 或使用 Cloud Shell
學習目標
- 建立 Compute Engine VM 實例
- 使用 startup script 自動化安裝軟體
- 設定防火牆規則允許 HTTP 流量
- 透過外部 IP 驗證網頁服務
實作步驟 (共 5 步)
先確認你的專案 ID,並設定預設區域為 us-central1-a(免費方案可用區域)。
gcloud config set project YOUR_PROJECT_ID
gcloud config set compute/zone us-central1-a
提示
將 YOUR_PROJECT_ID 替換為你的實際專案 ID,可用 gcloud projects list 查看。
驗證方式
執行 gcloud config list 確認 project 和 compute/zone 已正確設定。
建立一台 e2-micro VM(免費方案機型),並使用 startup script 安裝 Nginx 網頁伺服器。
gcloud compute instances create my-first-vm \
--machine-type=e2-micro \
--image-family=debian-12 \
--image-project=debian-cloud \
--tags=http-server \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install -y nginx
systemctl start nginx
echo "<h1>Hello from $(hostname)!</h1>" > /var/www/html/index.html'
提示
e2-micro 是免費方案包含的機型,每月有 720 小時免費額度(限 us-central1 等指定區域)。
驗證方式
執行 gcloud compute instances describe my-first-vm --format='value(status)' 應回傳 RUNNING。
建立防火牆規則,允許外部 HTTP(port 80)流量進入帶有 http-server 標籤的 VM。
gcloud compute firewall-rules create allow-http \
--direction=INGRESS \
--priority=1000 \
--network=default \
--action=ALLOW \
--rules=tcp:80 \
--target-tags=http-server \
--source-ranges=0.0.0.0/0
提示
target-tags 要和建立 VM 時的 --tags 一致,這樣防火牆規則才會套用到正確的 VM。
驗證方式
執行 gcloud compute firewall-rules list --filter='name=allow-http' 確認規則已建立。
查詢 VM 的外部 IP 位址,並在瀏覽器中開啟以驗證 Nginx 服務。
gcloud compute instances describe my-first-vm \
--format='get(networkInterfaces[0].accessConfigs[0].natIP)'
提示
startup script 需要 1-2 分鐘才能完成安裝。如果瀏覽器無法連線,請稍等片刻再試。
驗證方式
在瀏覽器開啟 http://EXTERNAL_IP,應看到 'Hello from my-first-vm!' 字樣。
實驗完成後,刪除 VM 和防火牆規則以避免產生費用。
gcloud compute instances delete my-first-vm --quiet
gcloud compute firewall-rules delete allow-http --quiet
提示
加上 --quiet 旗標可以跳過確認提示,適合用在自動化腳本中。
驗證方式
執行 gcloud compute instances list 確認清單中已無 my-first-vm。
考試相關性
ACE 考試 Domain 1:規劃與設定雲端解決方案。包括建立 Compute Engine 實例、管理 VM 生命週期、設定 startup script。
進階挑戰
進階挑戰:改用 Instance Template 建立相同配置,然後用該 Template 建立一個 Managed Instance Group (MIG) 並設定自動擴展。