隨著愈來愈多企業擁抱雲端,雲端成本管理策略也日益重要。Google Cloud 平台提供許多優化 VM(Compute Engine)的計費方式,除了今天要介紹的 Spot VM 之外,還包括承諾使用折扣方案等方式。本文將會簡介 Spot VM、Spot VM 對於企業的益處、最佳實踐,並帶您手把手建立和使用 Spot VM。
聯絡我們
不論產業,我們擁有豐富的服務經驗
隨著愈來愈多企業擁抱雲端,雲端成本管理策略也日益重要。Google Cloud 平台提供許多優化 VM(Compute Engine)的計費方式,除了今天要介紹的 Spot VM 之外,還包括承諾使用折扣方案等方式。本文將會簡介 Spot VM、Spot VM 對於企業的益處、最佳實踐,並帶您手把手建立和使用 Spot VM。
Spot VM 非常適合批量計算、高性能計算(HPC)工作負載、ML 模型訓練和無狀態的 Web 應用程式。能夠處理 Instance 故障/終止的容器化工作負載也非常適合使用 Spot VM。Spot VM 可以和與 Google Kubernetes Engine(GKE)、GKE Autopilot、Batch、Dataproc 和 Dataflow VM 共同使用,極大化的降低成本。
由於 Spot VM 可能會被先占(或中斷),因此建議將 Spot VM 用於可容錯的工作負載,例如:3D 渲染、基因組處理和財務建模;反之,若是需要高可用性(例如有狀態或無法容錯)的工作負載則不太適合。
了解更多 Spot VM 適用場景:解析 Google Cloud Spot VM 之五大應用和最佳實踐
圖一:以 E2 機器類型為例之價格表格
實務上在使用 Spot VM 時,常常會搭配 Managed Instance Groups(MIG)來使用,當運行中的 Spot VM 因為 GCP 運算資源調度而被終止時,若是沒有使用 MIG 的話,就 只能等待 GCP 資源充裕時才可以「手動」重啟該 VM,而若是在 MIG 內的 Spot VM 被 GCP 終止的話,則該 MIG 會「自動」嘗試使用 Instance Template 來重新建立虛擬機,如此一來就可以大幅降低維運人員的負擔。
Managed Instance Groups(MIG)為客戶提供了一種確保其 VM 組能夠滿足應用和客戶需求的方式。MIG 類似於其他全托管的服務和功能,允許 Google Cloud 自動執行部分操作,從而減輕您手動管理的負擔。
MIG 可以處理滾動更新、藍/綠部署,而且可以根據配置的指標自動擴展或縮小實例組。當與 Spot VM 一起使用時,MIG 將在擴展或因先占而替換 VM 時提供相同的好處。如果 Spot VM 不可用,則 MIG 將持續請求額外的 Spot VM,直到其性能滿足要求。但請注意,如果所有的 Spot VM 都被先占,MIG 將無法防止停機,但是當 Spot VM 再次可用時,MIG 將在無需手動干預的情況下啟動新的 VM。
除此之外,Google Cloud 利用 Spot VM 提供了一個完全托管的批次作業,稱為 Google Batch。使用 Batch 不會產生額外的費用,它可以讓您創建和運行作業,每個作業都會自動配置和使用執行其任務所需的資源。現在讓我們來看看建立和管理 Spot VM 的不同方法。
現在我們對 Spot VM 的概念和適用場景有了更好的理解,接下來讓我們來一步一步地了解如何建立和管理它們:
圖二:Google Cloud 控制台首頁
您可以通過使用 gcloud Console、gcloud CLI、Compute Engine API 或 Terraform 的方式建立 Spot VM,本文以 Google Cloud 控制台為例:
1. 在 Google Cloud 控制台中,進入「建立執行個體」頁面。
圖三:建立執行個體畫面
2. 展開「網絡、磁碟、安全性、管理、單一用戶群」部分,然後執行以下操作:
圖四:建立執行個體畫面,展開「管理」項目
2-1 展開「管理」部分。
圖五:VM 佈建模型下拉選單
圖六:選擇標準模型時之選項介面
圖七:選擇 Spot 模型時之選項介面
2-2 在「可用性政策」部分,從 VM 佈建模型列表中選擇「Spot」。選擇 Spot 同時代表禁用 VM 的自動重新啟動和主機維護選項,並可選擇 VM 被終止時的操作選項。
圖八:「在 VM 終止時」下拉選單
2-3 選擇性操作:在「VM 終止時」下拉選單中,選擇當 Compute Engine 中斷 VM 時要執行的操作。
a. 要在先占期間停止 VM,請選擇「停止」(預設)。
b. 要在先占期間刪除 VM,請選擇「刪除」。
圖九:建立執行個體按鈕
3. 選擇性操作:指定其他 VM 選項。
4. 要建立和啟動 VM,請點擊「建立」。
IAM 與管理之配額頁面
與其他 VM 一樣,Spot VM 需要可用的 CPU 額度。如果您正在使用 Spot VM,但尚未申請可先占配額,則 Spot VM 將消耗您的標準配額。因此如果您打算使用 Spot VM,請考慮先為這些資源提前申請先占配額,以免 Spot VM 消耗您的標準額度。
當您使用 Spot VMs 建立集群或節點池(node pools)時,GKE 會幫您創建底層 Compute Engine Spot VMs,這些 VM 可以被視為一個受管理的實體組 (MIG)。使用 Spot VMs 的節點可以被視為標準的 GKE 節點,但無法保證可用性。當需要運行標準 VMs 所使用的資源時,Compute Engine 會終止這些 Spot VMs,將運算資源轉移到其他地方。本節將向您展示如何在 GKE 集群和節點池中使用 Spot VMs 和 Spot Pods 運行容錯、無狀態或批次的工作負載,以降低成本。
在您開始實作之前,請確認您已經啟用了 Google Kubernetes API。
與其他 VM 一樣,Spot VM 在建立後就開始運行。同樣的,如果您的 Spot VM 被停止了,您可以重新啟動 VM 來恢復運行狀態。只要有運算容量,您就可以一直停止和重新啟動被先占的 Spot VM 。
如果 Compute Engine 主動停止了一個或多個受自動縮放管理的實體組 (MIG) 或 Google Kubernetes Engine (GKE) 集群中的 Spot VM,則當資源再次可用時,該組內的VM將自動被重新啟動 。
以下是 Google Cloud 提供的一些最佳實踐,可幫助您充分利用 Spot VM。
總體而言,使用 Spot VM 是一種非常實用和節省成本的方法,可以大幅降低在 GCP 上運行虛擬機器的成本。但需要注意的是,它較適合用於非關鍵性工作負載,並且需要準備好當 VM 中斷時的應對措施。
確認並返回
確認並返回
確認並返回