最佳化 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/記憶體設定、服務啟用時間長度等因素影響。超額佈建資源可能會增加費用。如要判斷哪種設定最適合您的服務,請按照下列步驟操作:
- 建立基準設定。
- 在 Cloud Monitoring 測試 CPU 和記憶體使用率指標時,請監控指標。
- 視需要調整設定。
如果 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 服務的摘要費用資料、使用率資料和費用最佳化建議。