Google Cloud Well-Architected Framework 成本最佳化支柱中的這項原則提供建議,協助您規劃及佈建資源,以符合雲端工作負載的需求和消耗模式。
原則總覽
如要最佳化雲端資源成本,您必須徹底瞭解工作負載的資源需求和負載模式。有了這項認知,您就能建立明確的成本模型,預測總持有成本 (TCO),並在採用雲端的過程中找出成本動因。主動分析及預測雲端支出,有助於做出明智的資源佈建、使用和成本最佳化決策。這種做法可讓您控管雲端支出、避免過度佈建,並確保雲端資源符合工作負載和環境的動態需求。
建議
如要有效最佳化雲端資源用量,請參考下列建議。
選擇環境專屬資源
每個部署環境對可用性、可靠性和擴充性都有不同的要求。舉例來說,開發人員可能偏好能快速部署及執行應用程式一段時間的環境,但可能不需要高可用性。另一方面,正式環境通常需要高可用性。為充分利用資源,請根據業務需求定義環境專屬要求。以下是環境專屬規定的範例:
- 正式環境:高可用性、可預測的效能、作業穩定性,以及具備強大資源的安全性。
- 開發與測試:成本效益、具備 burst 可用資源的彈性基礎架構,以及不需要資料持續性時的臨時基礎架構。
- 其他環境 (例如測試和品質確保):根據環境特定需求,量身打造資源分配。
選擇工作負載專屬資源
每項雲端工作負載對可用性、擴充性、安全性和效能的要求可能不同。如要盡可能提高成本效益,請根據各項工作負載的特定需求,選擇合適的資源。舉例來說,無狀態應用程式可能不需要與有狀態後端相同的可用性或可靠性。下列子節提供更多工作負載專屬需求的範例。
重要業務的工作負載
- 工作負載需求:持續可用、安全穩固、高效能。
- 資源選項:Spanner 等進階資源和代管服務,可確保資料的高可用性和全球一致性。
非重要工作負載
- 工作負載需求:具成本效益且可自動調度資源的基礎架構。
- 資源選項:具備基本功能的資源,以及 Spot VM 等臨時資源。
事件導向工作負載
- 工作負載需求:根據目前的容量和效能需求動態調整資源。
- 資源選項:Cloud Run 和 Cloud Run functions 等無伺服器服務。
實驗性工作負載
- 工作負載需求:低成本且彈性的環境,可快速開發、疊代、測試及創新。
- 資源選項:具備基本功能的資源、Spot VM 等臨時資源,以及設有支出上限的沙箱環境。
雲端的優點之一,是能針對特定工作負載,充分運用最合適的運算能力。有些工作負載是為了利用處理器指令集而開發,有些則可能不是。請據此對工作負載進行基準測試和剖析。將工作負載分類,並選擇特定工作負載的資源 (例如為 Compute Engine VM 選擇合適的機器家族)。這項做法有助於最佳化成本、推動創新,並維持工作負載所需的可用性和效能。
以下是實作這項建議的做法範例:
- 如果重要業務工作負載服務的使用者遍布全球,建議使用 Spanner。Spanner 可確保所有區域的資料可靠性和一致性,因此您不必進行複雜的資料庫部署作業。
- 如果工作負載的負載量會波動,請使用自動調度資源功能,確保在負載量較低時不會產生費用,同時維持足夠的容量來因應目前的負載。您可以為許多Google Cloud 服務設定自動調度資源,包括 Compute Engine VM、Google Kubernetes Engine (GKE) 叢集和 Cloud Run。設定自動調度資源時,您可以設定最大調度限制,確保費用不超出指定預算。
依據成本需求選取區域
請仔細評估可用的 Google Cloud區域,並選擇符合成本目標的區域,成本最低的區域可能無法提供最佳延遲時間,或不符合您的永續發展要求。請依據實際情況決定工作負載的部署位置,以達到理想的平衡。您可以使用 Google Cloud 區域挑選器,瞭解費用、永續性、延遲時間和其他因素之間的權衡。
使用內建的成本最佳化選項
Google Cloud 產品提供內建功能,可協助您最佳化資源用量及控管成本。以下列舉幾項可在部分 Google Cloud 產品中使用的成本最佳化功能:
- Compute Engine
- 使用自動調度資源功能,根據目前負載自動新增或移除 VM。
- 建立並使用符合工作負載需求的自訂機型,避免過度佈建。
- 如果是非關鍵或容錯工作負載,可以使用 Spot VM 降低成本。
- 在開發環境中,您可以限制 VM 的執行時間,或在不需要時暫停或停止 VM,藉此降低成本。
- GKE
- 使用叢集自動配置器,根據目前負載自動調整 GKE 叢集的大小。
- 使用自動佈建節點功能,根據工作負載需求自動建立及管理節點集區,確保資源使用率達到最佳狀態。
- Cloud Storage
- 使用物件生命週期管理功能,根據資料存在時間或存取模式,自動將資料轉換至費用較低的儲存空間級別。
- 使用自動調整級別功能,根據使用模式,動態將資料移至最具成本效益的儲存空間級別。
- BigQuery
- 使用依運算資源計價模式,降低穩定狀態工作負載的查詢處理費用。
- 使用分區和分群技術,盡可能提高查詢效能和成本效益。
- Google Cloud VMware Engine
- 採用成本最佳化策略 (例如 CUD、最佳化儲存空間用量,以及調整 ESXi 叢集大小),降低 VMware 成本。
最佳化資源共用
如要盡可能提高雲端資源的使用率,您可以在同一個基礎架構上部署多個應用程式或服務,同時仍能滿足應用程式的安全性和其他需求。舉例來說,在開發和測試環境中,您可以使用相同的雲端基礎架構,測試應用程式的所有元件。在正式環境中,您可以將各個元件部署至一組獨立資源,以便在發生事件時限制影響範圍。
以下是實作這項建議的做法範例:
- 使用單一 Cloud SQL 執行個體,處理多個非正式環境。
- 在 GKE 中使用機群團隊管理功能,並設定適當的存取控管機制,讓多個開發團隊共用 GKE 叢集。
- 使用 GKE Autopilot,即可運用 GKE 預設實作的成本最佳化技術,例如裝箱和自動調度資源。
- 針對 AI 和機器學習工作負載,您可以使用GPU 共用策略 (例如多執行個體 GPU、分時 GPU 和 NVIDIA MPS),節省 GPU 成本。
開發及維護參考架構
建立及維護參考架構存放區,並根據不同部署環境和工作負載類型的需求進行調整。為簡化個別專案的設計和實作程序,藍圖可由雲端卓越中心 (CCoE) 等團隊集中管理。專案團隊可以根據明確定義的條件選擇合適的藍圖,確保架構一致並採用最佳做法。如果專案有獨特需求,專案團隊和中央架構團隊應合作設計新的參考架構。您可以在整個組織內共用參考架構,促進知識分享,並擴充可用解決方案的存放區。這種做法可確保一致性、加快開發速度、簡化決策,並提高資源使用效率。
查看 Google 針對各種用途和技術提供的參考架構。這些參考架構整合了資源選取、大小調整、設定和部署的最佳做法。使用這些參考架構,可以加快開發程序,並從一開始就節省成本。
使用組織政策強制執行成本規範
建議您使用組織政策,限制團隊成員可使用的 Google Cloud 位置和產品。這些政策有助於確保團隊採用符合成本效益的解決方案,並在符合成本最佳化目標的位置佈建資源。
估算實際預算並設定財務界線
為每項專案、工作負載和部署環境制定詳細預算。確保預算涵蓋雲端作業的所有層面,包括基礎架構費用、軟體授權、人員和預期成長。為避免超支並確保符合財務目標,請為專案、服務或特定資源設定明確的支出上限或門檻。請定期監控雲端支出,確保不超出這些限制。您可以透過主動配額警告,及早發現可能超支的情況,並及時採取修正措施。
除了設定預算外,您也可以使用配額和限制,強制執行成本規範,並防止支出意外激增。您可以設定各種層級的配額 (包括專案、服務,甚至是特定資源類型),精細控管資源用量。
以下是實作這項建議的做法範例:
- 專案層級配額:在專案層級設定支出上限或資源配額,建立整體財務界線,並控管專案中所有服務的資源消耗量。
- 服務專屬配額:為 Compute Engine 或 BigQuery 等特定服務 Google Cloud設定配額,限制可佈建的執行個體、CPU 或儲存空間容量。
- 特定資源類型的配額:對個別資源類型 (例如 Compute Engine VM、Cloud Storage bucket、Cloud Run 執行個體或 GKE 節點) 套用配額,限制其用量,避免費用超出預期。
- 配額警告:當配額用量 (專案層級) 達到最大值的特定百分比時,您會收到通知。
搭配使用配額、限制、預算和監控功能,即可建立主動的多層式成本控管機制。這種做法有助於確保雲端支出維持在指定範圍內,並符合業務目標。請注意,這些成本控管措施並非永久或固定不變。為確保成本控管機制符合目前的業界標準,並反映不斷變化的業務需求,您必須定期檢查控管機制,並加以調整,納入新技術和最佳做法。