成本最佳化的 Cloud Run 服務最佳做法

最佳化 Cloud Run 服務,可根據實際需求分配資源,降低費用。實施符合成本效益的設定,可避免過度佈建,同時維持服務可靠性和效能。成本最佳化沒有一體適用的解決方案。請務必監控需求、預算和資源,判斷最適合的做法。

本文概述的最佳做法僅適用於 Cloud Run。不包含其他 Google Cloud 產品。

資源設定

如要將服務成本最佳化,必須考量許多不同的設定。您可以根據需求調整這些設定,建立可靠且符合成本效益的服務。

選取適當的區域

服務的部署位置會影響總費用。Cloud Run 採用兩級區域定價模式。與第 2 級區域相比,第 1 級區域的每個 vCPU 和記憶體費用較低,因此建議您部署至第 1 級區域。

需要驗證

設定 Cloud Run 服務時,您可以選擇下列其中一種驗證選項:

  • 允許公開存取:不需進行驗證檢查。
  • 「Require authentication」(需要驗證):只有通過驗證的使用者才能存取 Cloud Run 服務。

除非您有特定需求,必須允許公開存取,否則建議您要求驗證。這可避免不必要的要求,以免產生費用。

如果您使用 Identity-Aware Proxy (IAP) 管理使用者,IAP 可能會產生相關費用。

比較「以執行個體為依據」和「以要求為依據」的計費模式

Cloud Run 服務有兩種計費設定:

  • 以要求為依據的計費模式 (預設):系統會按照個別要求收費,並針對處理要求期間使用的 vCPU 和記憶體,收取較高的每秒費率。
  • 以執行個體為依據計費:系統會向您收取執行個體完整生命週期的費用。不收取單次要求費用,且 vCPU 和記憶體的每秒費率較低。

如果服務的流量穩定且變化緩慢,建議採用以執行個體為基礎的計費方式。運算費率較低且不收取單次要求費用,因此省下的費用會高於要求之間的閒置時間費用。如果服務的流量不穩定、突發或不時出現高峰,建議使用要求計費模式。如果仍不確定要使用哪種計費設定,請參閱建議工具。建議工具會查看 Cloud Run 服務在過去一個月內收到的流量,並在依執行個體計費較便宜時,建議從依要求計費改為依執行個體計費。

在服務層級設定服務資源調度

如要建立成本安全基準,請為服務設定執行個體數量上限。如果設定較高的上限,系統會優先考量可用性,但如果流量意外激增或設定錯誤,可能會產生潛在的帳單風險。初次部署服務時,請在服務層級調整這項設定,建立費用基準。如需其他費用控管工具,請參閱資源分配配額或帳單預算和快訊。

最佳化 CPU 和記憶體使用率

Cloud Run 服務的費用會受到 CPU/記憶體設定、服務啟用時間長度等因素影響。超額佈建資源可能會增加費用。如要判斷哪種設定最適合您的服務,請按照下列步驟操作:

  1. 建立基準設定。
  2. 在 Cloud Monitoring 測試 CPU 和記憶體使用率指標時,請監控指標。
  3. 視需要調整設定。

如果 CPU 使用率在尖峰負載下持續偏低,建議減少 vCPU 分配量。如果延遲時間過長,建議增加分配的 vCPU。

如果記憶體使用率持續偏低,建議減少分配的記憶體。如果延遲時間過長,且記憶體使用率接近 100%,建議您增加分配的記憶體。如果發生記憶體不足 (OOM) 錯誤,請增加分配的記憶體,或修改應用程式,避免記憶體流失或減少記憶體用量。請參閱 Cloud Monitoring 資訊主頁,進一步瞭解記憶體使用率。

設定 GPU

所有使用 GPU 的 Cloud Run 服務都必須設定按執行個體計費。也就是說,Cloud Run 執行個體會針對執行個體的整個生命週期收費,即使沒有傳入要求也一樣。GPU 所需的最低 CPU 和記憶體設定,也會影響 Cloud Run 服務的費用。根據預設,GPU 可用區備援功能會啟用。關閉 GPU 可用區備援功能後,每秒 GPU 的費用會降低,但無法保證容錯移轉時有預留運算資源。

盡可能降低網路費用

為服務設定網路選項時,請考量下列事項:

  • 將資源放在相同位置:盡量將 Cloud Run 服務部署在與後端資料庫 (例如 Cloud SQL 或 Firestore) 和 Cloud Storage bucket 相同的區域。在同一區域內的 Google Cloud 資源之間移轉資料不收費。
  • 改用直連虛擬私有雲輸出:如要安全地將流量轉送至內部虛擬私有雲網路資源,建議您從無伺服器 VPC 存取連接器改用直連虛擬私有雲輸出。直連虛擬私有雲輸出可將資源調度率降至零,消除與連接器執行個體相關的基本運算負擔和閒置成本。
  • 使用 Cloud CDN:在 Cloud Run 服務前方放置 Cloud CDN,卸載靜態資產和高度可快取的內容。從邊緣提供資料,比直接從 Cloud Run 支付標準網際網路輸出費用便宜得多。
  • 監控網際網路 egress:傳入流量 (ingress) 一律免費,且每月可享有 1 GiB 的北美地區免費傳出網際網路資料移轉量。監控重點應放在跨區域界線或超出免費方案的傳出流量。

調整並行設定

當更多執行個體處理要求時,Cloud Run 會分配更多 CPU 和記憶體,費用也會提高。並行設定越高,處理相同要求量所需的執行個體就越少,進而降低成本。不過,應用程式程式碼必須能有效率地處理平行要求。詳情請參閱「調整並行設定,以便自動調度資源及提高資源使用率」。

承諾使用折扣

承諾使用折扣 (CUD) 是指您承諾在指定期間內持續使用 Cloud Run,即可享有折扣價。CUD 適用於 Cloud Billing 帳戶層級。您可以購買 Cloud Run 資源的 Compute 彈性 CUD。Compute 彈性 CUD 不適用於 GPU 或網路。詳情請參閱「Compute 彈性承諾使用折扣」。

實用工具

您可以使用下列工具,進一步瞭解費用,並避免費用超支。

Cloud Run 總覽:帳單面板

Cloud Run 總覽頁面的「Billing」(帳單) 面板會顯示各資源名稱的費用。這些數字反映各項資源在所選日期範圍內的總費用。這項工具可協助您進一步瞭解資源費用。

預算快訊

在 Cloud Billing 中建立預算快訊,追蹤實際費用與預估費用的差異。預算快訊是一種快訊機制,會在支出超過門檻時觸發通知,而非硬性支出上限。帳單資料延遲可能會影響您收到快訊的時間。

預算支出上限

在 Cloud Billing 控制台設定 Cloud Billing 預算支出上限,或使用 Cloud Billing Budget API 以程式輔助方式設定,這些上限會自動套用至專案中的所有 Cloud Run 資源類型。

您可以直接在 Cloud Run 控制台總覽頁面,監控支出上限進度。達到支出上限時, Google Cloud 會暫停所有 Cloud Run 工作負載,避免下列 Cloud Run 資源產生更多費用:

  • 服務:任何現有服務都無法提供流量,並會傳回 5xx 錯誤。
  • 工作:無法開始執行新工作,且進行中的工作無法完成。
  • worker 集區:任何現有執行個體都會停止處理工作。
  • 執行個體:所有執行中的執行個體都會關閉、新的執行個體或重新啟動作業無法啟動,且對執行個體網址的要求會傳回 5xx 錯誤。

如果超過支出上限,您會收到快訊通知,並在 Cloud Run 控制台看到違規處置橫幅。強制執行的支出上限會在每個月初 (即下一個帳單週期的第一天) 重設,解除工作負載封鎖狀態,並將支出金額設為零。如果超出支出上限,但想在每月重設前恢復作業,請在 Cloud Run 控制台總覽頁面手動調整或取消上限。

Cloud Billing

Cloud Billing 匯總了多項工具,可協助您追蹤及瞭解 Google Cloud 支出。這些工具可協助您監控用量成本、預測支出,並找出節省成本的機會。

費用探索工具

Cost Explorer 可讓您瞭解資源的成本和使用率。使用費用探索工具,您可以:

  • 依費用篩選資源,查看哪些資源的費用最高。
  • 瞭解各項設定 (例如 vCPU、GPU、網路等) 的費用占比。
  • 追蹤資源設定變更對每月帳單的影響。

Google Cloud Pricing Calculator

Google Cloud 定價總覽包含相關資訊,可協助您進一步瞭解 Google Cloud 定價模式。您也可以在這裡找到詳細價目表。您可以使用 Pricing Calculator 新增及設定產品,藉此估算費用。

建議工具

建議工具可提供 Cloud 產品的使用建議和深入分析。

建議工具會自動查看 Cloud Run 服務在過去一個月內收到的流量,如果依執行個體計費較便宜,就會建議從依要求計費改為依執行個體計費。

Cloud Hub 最佳化

您可以在 Cloud Hub 的最佳化頁面,查看 Google Cloud 服務的摘要費用資料、使用率資料和費用最佳化建議。