Compute Engine 優化簡介
Compute Engine (GCE) 是 Google Cloud 的基礎設施即服務 (IaaS) 產品。雖然它是最靈活的運算選項,但也需要最多的管理工作。對於一位 Professional Cloud Architect 來說,優化意味著在保持高可用性 (HA) 的同時,兼顧成本效益和操作簡便性。
優化的核心支柱包括:利用託管執行個體群組 (MIGs) 實現規模化、使用 Spot VM 降低成本,以及透過專屬節點 (Sole-tenant nodes) 滿足合規性需求。
一組基於相同執行個體範本 (Instance Template) 的相同 VM 實例集合。MIG 支持自動化服務,如自動擴展 (Auto-scaling)、自我修復 (Self-healing) 和區域性(多可用區)部署。參考:https://cloud.google.com/compute/docs/instance-groups
白話文解釋 Compute Engine 優化
優化 Compute Engine 就像為一家物流公司管理貨車車隊。
類比 1 — 變形金剛貨車 (自定義機器類型)
大多數租賃公司(雲端供應商)只提供固定尺寸:小、中、大。但如果您需要「中型」引擎配上「超大」貨箱,您就沒戲了。在 GCE 中,您可以打造一台變形金剛貨車(自定義機器類型)。您可以精確選擇需要多少個活塞 (vCPU) 和多少加侖燃料 (Memory)。您無需為沒用到的部分付錢。
類比 2 — 自動維護車隊 (MIGs 與自我修復)
想像一下,如果您的一輛貨車在深夜壞在了路邊。與其打電話叫拖吊車,**魔法機器人(健康檢查)**會自動檢測到引擎故障,並立即用一台全新的、完全相同的貨車替換它(自我修復)。司機(您的應用程式)甚至都不知道出過問題。
類比 3 — 廉價租賃 (Spot VMs)
Spot VM 就像是以 1 折 (90% off) 的價格租車,但有一個條件:如果有人願意付全款,租車公司可以在提前 30 秒通知的情況下收回這輛車。這對於可以暫停的工作(批次處理)非常完美,但對於婚禮禮車(直接面向客戶的 Web 應用程式)來說就很糟糕。
在 PCA 考試中,如果場景要求「以最少的手動干預實現跨區域的高可用性」,答案通常是 區域性託管執行個體群組 (Regional MIG)。參考:https://cloud.google.com/compute/docs/instance-groups
佈署 VM 實例
- 機器系列: 針對不同工作負載優化(E2/N2 通用型、C3 運算優化型、M3 記憶體優化型、G2 GPU 優化型)。
- 機密運算 (Confidential Computing): 在數據處理時對內存中的數據進行加密。
自定義機器類型 (Custom Machine Types)
- 靈活性: 允許您定義特定的 vCPU 與記憶體比例。
- 架構師提示: 使用自定義機器類型可以避免「資源浪費」,即為了獲得所需的記憶體而不得不支付額外的 vCPU 費用。
託管執行個體群組 (MIGs)
MIG 是 GCE 可靠性的基石。
- 可用區 vs. 區域性: 區域性 MIG 將實例分散在一個區域內的三個可用區,防止單個可用區故障。
- 執行個體範本: 定義群組中所有 VM 的「藍圖」(映像檔、機器類型、網路配置)。
配置自動擴展政策 (Auto-scaling)
自動擴展會根據負載調整 MIG 中的實例數量。
- 指標: CPU 利用率、負載平衡器容量或 Cloud Monitoring 的自定義指標。
- 預測性自動擴展: 利用機器學習預測未來的負載,並在流量高峰到達之前啟動 VM。
自我修復與健康檢查 (Self-healing)
- 健康檢查: 定期「探測」應用程式(例如 HTTP GET /health)。
- 自我修復政策: 如果健康檢查失敗 X 次,MIG 會刪除並重新建立該實例。
映像檔管理與版本控制
- 公共映像檔: 由 Google 提供(Debian, Ubuntu, Windows)。
- 自定義映像檔: 您自己預先配置好的映像檔。
- 映像檔家族 (Image Families): 允許您將 MIG 指向自定義映像檔的「最新」版本,而無需頻繁更新執行個體範本。
專屬節點 (Sole-tenant Nodes) 與合規性
- 專屬硬體: 您的 VM 運行在不與任何其他客戶共享的物理伺服器上。
- 使用案例: 嚴格的合規性要求(HIPAA, PCI-DSS)或需要綁定物理核心/插槽的舊版軟體授權 (BYOL)。
Spot VM 與搶佔管理
- Spot VM: 高達 91% 的折扣。沒有固定的最長運行時間(不同於舊版的搶佔式 VM)。
- 終止信號: 透過元數據提供 30 秒預警。
- 最佳實踐: 用於無狀態、具備容錯能力的工作負載,如 CI/CD、批次數據處理或渲染。
執行個體範本與元數據 (Metadata)
- 元數據: 用於向 VM 傳遞信息的鍵值對。
- 啟動指令碼 (Startup Scripts): 每次 VM 啟動時自動執行的任務。
- 關閉指令碼 (Shutdown Scripts): 在 VM 被刪除前執行的任務(例如上傳日誌)。
OS Login 與 SSH 金鑰管理
- OS Login: (建議方式)將您的 Linux 用戶帳戶與您的 Google 身份關聯。比管理單個 SSH 金鑰要安全得多。
- IAP (身分識別代理): 透過 Google 代理隧道,允許您 SSH 進入沒有外部 IP 位址的 VM。
FAQ — Compute Engine 優化
Q1. 區域性 MIG 和可用區 MIG 有什麼區別?
可用區 MIG (Zonal MIG) 將所有實例放在一個可用區。如果該區故障,您的應用就掛了。區域性 MIG (Regional MIG) 將實例分散在多個可用區。如果一個區故障,MIG 會自動在剩餘的健康區啟動新實例。
Q2. 「大小調整建議 (Right-sizing Recommendations)」是如何運作的?
Google Cloud 會監控您的 VM 使用情況 8 天。如果發現您只使用了 10% 的 CPU,它會建議您換成更小的機器類型以節省資金。
Q3. 我可以在非託管執行個體群組中使用自動擴展嗎?
不可以。自動擴展和自我修復僅適用於託管執行個體群組 (MIGs)。非託管群組只是現有 VM 的集合,不支援這些自動化功能。
Q4. 什麼是「活動遷移 (Live Migration)」?
活動遷移是 GCP 的一項功能,Google 會在維護期間自動將您正在運行的 VM 移至另一個宿主機,而無需重啟或中斷您的應用程式。
Q5. 什麼時候應該使用專屬節點 (Sole-tenant nodes)?
當您有物理隔離的監管要求,或者當您的舊版軟體授權與特定的物理核心或插槽綁定時,請使用它們。
最終架構師提示
在 PCA 考試中,請務必優先選擇託管服務和自動化。如果問題詢問如何管理 100 台 VM 的車隊,答案應該涉及 MIGs 和 執行個體範本,而不是手動腳本。此外,請記住 Spot VM 是省錢的好方法,但絕對不應該用於生產環境的資料庫層。