跳至主要內容
ESC
跳到課程內容
運算服務 Compute Engine 基礎:你的第一台雲端虛擬機
0%
3 / 3 初級 30 分鐘 00:00

Compute Engine 基礎:你的第一台雲端虛擬機

學習建立和管理 Compute Engine VM 實例,了解機器類型、映像檔和啟動磁碟的選擇

2026年3月3日 Updated: 2026年7月14日

什麼時候才該用 VM?

Compute Engine 提供的是虛擬機(VM)。作業系統、套件、行程和網路設定都由你掌控,彈性很高,維護責任也會跟著變多。

下面幾種情況很適合 VM:

  • 舊系統搬上雲,短期內不方便改成容器
  • 需要安裝特殊的作業系統套件或驅動
  • 軟體授權綁定 VM 或特定硬體規格
  • 需要長時間執行、而且要完整控制主機

如果只是部署一個無狀態 Web API,而且不想管作業系統更新,Cloud Run 通常更省事。先確認你真的需要主機控制權,再選 Compute Engine。

先講清楚:這個 lab 可能產生費用

Google Cloud Free Tier 每月提供一台 e2-micro 的等值執行時數,但只適用於 us-west1us-central1us-east1 三個美國 Region,且必須是非 Spot VM。額度還包含每月 30 GB-month 的 Standard Persistent Disk。

所以這一課使用:

  • Zone:us-central1-a
  • Machine type:e2-micro
  • Boot disk:10 GB pd-standard

這組設定符合目前的 Free Tier 範圍,但 Free Tier 是用量額度,不是「這台 VM 永遠免費」。同一個 Billing account 下的合格用量會合併計算,超量、加 GPU 或產生額外網路流量仍可能收費。動手前先看一次官方 Free Tier 條件,做完就刪掉最保險。

若你改用台灣 asia-east1-b,延遲會比較低,但不在 Compute Engine Free Tier 的三個 Region 裡。

建立 ace-lab-vm

打開 Cloud Shell,先確認專案:

gcloud config get-value project

看到的不是上一課建立的 Project ID,就先切換:

gcloud config set project PROJECT_ID

再確認 Billing 已啟用:

gcloud billing projects describe $(gcloud config get-value project) \
  --format='value(billingEnabled)'

輸出必須是 True。若是 False,先回到 Console 的「帳單 → 我的專案」完成連結,不要繼續建立 VM。

啟用 Compute Engine API,並替後續指令設定預設 Zone:

gcloud services enable compute.googleapis.com
gcloud config set compute/zone us-central1-a

第一次啟用 API 可能要等一兩分鐘。接著建立 VM:

gcloud compute instances create ace-lab-vm \
  --machine-type=e2-micro \
  --image-family=debian-12 \
  --image-project=debian-cloud \
  --boot-disk-type=pd-standard \
  --boot-disk-size=10GB \
  --labels=purpose=ace-lab

這條指令做了幾個決定:

  • 用 Debian 12 image 建立開機磁碟
  • 把 VM 放在 us-central1-a
  • 使用成本較低的 shared-core e2-micro
  • 建立 10 GB Standard Persistent Disk
  • 若專案保留預設 VPC,VM 會接到 default network,並取得臨時外部 IPv4

企業組織常會刪除 default network,或用 Organization Policy 禁止外部 IP。若你在公司專案執行,最後一步可能失敗;那不是指令打錯,而是需要指定已核准的 subnet,或改走沒有外部 IP 的連線方式。

確認 VM 真的跑起來

gcloud compute instances list \
  --filter='name=ace-lab-vm' \
  --format='table(name,zone.basename(),machineType.basename(),status,networkInterfaces[0].accessConfigs[0].natIP)'

STATUS 應該是 RUNNING。接著用 SSH 登入:

gcloud compute ssh ace-lab-vm

第一次連線時,gcloud 會建立 SSH 金鑰並詢問是否繼續。進入 VM 後跑幾個檢查:

hostname
nproc
free -h
df -h /

輸入 exit 回到 Cloud Shell。

這個 lab 為了降低步驟,使用外部 IP 連線。正式環境通常會移除 VM 的外部 IP,再設定 IAP TCP forwarding 與 OS Login。IAP 會先驗證 IAM 身分,再把 SSH 流量送進 VM,不必把 TCP 22 對整個 Internet 開放;不過它仍需要正確的 IAM role 和允許 IAP IP 範圍的 firewall rule,不是加一個 --tunnel-through-iap 就會自動完成所有設定。

機器類型怎麼選?

別從型號背起。先看監控資料,再回答「CPU、記憶體、GPU,哪一個才是瓶頸」。

工作負載先看的 family判斷方式
小型服務、一般應用General-purpose,例如 E2、N 系列CPU 和記憶體需求都沒有特別偏高
編譯、遊戲伺服器、科學計算Compute-optimized,例如 C 系列CPU 長時間滿載
大型記憶體資料庫、SAP HANAMemory-optimized,例如 M、X 系列工作集放不進記憶體就會明顯變慢
AI 訓練、推論、圖形運算Accelerator-optimized,例如 A、G 系列需要特定 GPU 型號與顯存

e2-micro 是 shared-core VM,可以短時間 burst,但不適合持續吃滿 CPU 的服務。正式系統別因為它便宜就直接沿用;先用 Cloud Monitoring 看利用率,再調整規格。

機器系列更新很快,考試也比較常給「工作負載需求」而不是要求你背完所有新型號。需要精確比較時,直接查官方 machine families 指南

Spot VM 便宜,但不是一般 VM 的折價券

Spot VM 使用 Google Cloud 的剩餘容量,許多機型最高可比隨用隨付價格省 91%。代價是 Compute Engine 隨時可能收回,而且沒有 SLA,也不適用 Compute Engine Free Tier。

適合 Spot VM 的工作有批次轉檔、可重試的資料處理、分散式訓練;單台不能中斷的資料庫或網站主機就不適合。真正的判斷題是「工作能不能從中斷點重來」,不是「想不想省錢」。

磁碟不是都一樣

類型適合情境要注意什麼
Standard Persistent Disk成本敏感、循序讀寫、labHDD,隨機 I/O 較弱
Balanced Persistent Disk多數一般 VMSSD,在價格與效能之間取平衡
SSD Persistent Disk低延遲、較高 IOPS成本高於 Balanced
Hyperdisk需要明確配置 IOPS 或吞吐量支援情況依機型與區域而異
Local SSD快取、scratch data資料可能隨 VM 停止或主機故障遺失

Persistent Disk 和 Hyperdisk 是獨立計費的持久儲存;停止 VM 不代表磁碟免費。Local SSD 則是接在實體主機上的暫存空間,重要資料不要只放在那裡。

Stop 和 Delete 差在哪裡?

停止 VM:

gcloud compute instances stop ace-lab-vm

VM 停止後不再收取 vCPU 和記憶體的執行費,但磁碟、保留的靜態 IP 等資源仍可能繼續計費。之後可以再啟動:

gcloud compute instances start ace-lab-vm

這堂課做完後不需要保留 VM,直接刪除,並明確要求一起刪掉掛載磁碟:

gcloud compute instances delete ace-lab-vm --delete-disks=all

最後確認清乾淨:

gcloud compute instances list --filter='name=ace-lab-vm'
gcloud compute disks list --filter='name=ace-lab-vm'

兩個查詢都不該再列出 ace-lab-vm

💡 考試小提示

TERMINATED 只代表 VM 沒在跑,不代表帳單歸零。題目若要求「不再產生費用」,要繼續檢查 Persistent Disk、snapshot、static IP 和其他附屬資源。

離開這一課前,確認你做得到

  • 說出什麼情況該選 Compute Engine,而不是 Cloud Run
  • 建立、列出、SSH 連線、停止和刪除 VM
  • 解釋 Free Tier 為什麼不等於零帳單保證
  • 根據瓶頸挑 machine family,而不是只背型號
  • 說明停止 VM 後,哪些資源仍可能計費

下一課會拆解 VM 背後的 VPC、subnet、route 和 firewall rule。剛才那台 VM 為什麼拿得到 IP、SSH 流量怎麼進去,到時會一項一項接起來。

徽章解鎖!