Share via


設定消費防護措施的建議

適用於此 Azure Well-Architected 架構成本優化檢查清單建議:

CO:04 設定消費防護措施。 防護措施應包含發行網關、治理原則、資源限制和訪問控制。 將平臺自動化的優先順序設定為手動程式。

本指南說明設定消費防護措施的建議。 消費防護措施是控制和管理指定預算內成本的量值。 它們有助於防止非預期或過多的支出,並提升資源符合成本效益的使用率。 若沒有消費防護措施,您的工作負載成本可能會超過預算,導致非計劃性費用可能會造成財務資源負擔。

定義

詞彙 定義
治理原則 一組規則,可強制執行合規性,並啟用工作負載資源的稽核。
控管 一組原則、程式和控件,可協助確保工作負載受到有效、安全且符合組織和法規需求的管理。
基礎結構即程式碼 (IaC) 定義和部署基礎結構的描述性模型,包括網路、虛擬機、負載平衡器和聯機拓撲。
發行閘道 發行管線中必須滿足的條件或檢查點,才能繼續部署。 發行閘道有助於確保軟體發行前符合特定準則。

主要設計策略

藉由實作量值來控制和管理指定預算內的成本,來設定消費防護措施。 這些量值包括治理原則、訪問控制、發行閘道、預算閾值和警示。 自動化可降低人為錯誤的風險、改善效率,並協助一致地應用消費防護措施。 將平臺自動化的優先順序設定為手動程式。 平臺提供的自動化工具和服務可以簡化資源布建、設定和管理。

使用治理原則

治理原則可以做為各種資源層面的消費防護措施,例如資源類型、設定、標籤、位置和數據管理。 許多雲端平臺都有一項服務,可將治理原則的強制執行自動化。 使用自動化原則來控制資源使用量、強制執行責任,以及消除限制資源類型的費用。 以下是您應該考慮強制執行的一些原則:

  • 受限制的資源類型:原則可以指定組織內允許或不允許的資源類型。 例如,組織可能會有一個原則,可限制使用某些昂貴的資源類型來控制成本。

  • 資源限制:設定資源限制以控制成本,並防止過度布建。 包含可布建的資源數目、資源大小,以及原則中資源使用量持續時間的限制。 這些限制可協助您避免過度花費並優化資源使用率。 例如,資源限制可以將與密碼編譯採礦相關的未經授權的帳戶外泄影響降到最低。

  • 定義的資源組態:原則可以定義資源的特定組態。 您可以對提升成本優化的資源強制執行設定,例如自動調整和數據封存

  • 受限制的位置:您可以使用原則來限制資源部署至特定區域或位置。 請考慮限制位置以避免昂貴的數據傳輸費用,並維持數據主權法規的合規性。

  • 受控數據:使用原則來強制執行數據管理做法,以協助將成本優化。 例如,您可以實作原則,要求針對較不常存取的數據使用較低成本的儲存層,或定義數據保留到期規則的原則。

  • 強制執行的元數據:建立原則,以強制使用特定元數據,以提供更好的追蹤和成本配置。 您也可以在自動化或手動檢閱中使用元數據。 例如,使用元數據,使用備份標籤將資源備份自動化。 一致的元數據原則有助於將成本與消費防護措施保持一致。

  • 有限的閑置資源:使用原則來識別閑置資源,以便刪除或重新設定其用途。 請考慮設定在未使用時自動關閉實例的原則。

風險圖示 風險:如果您實作自動調整,請根據測試設定最大調整閾值。 臨界值上限可協助您避免造成成本超溢的大規模調整尖峰,但設定太低的臨界值可能會對效能造成負面影響。 如需詳細資訊,請參閱 優化調整成本的建議

設定存取控制

設定訪問控制來設定防止過度加長的限制,並協助確保只有獲授權的個人可以取用資源。 訪問控制有助於降低意外或不必要的變更對成本優化造成負面影響的風險。 若要實作成本優化訪問控制,請遵循下列步驟:

  1. 識別必要的控制件。 識別需要訪問控制的資源和服務。

  2. 定義存取原則。 根據最低許可權存取原則定義存取原則,只授與使用者執行其工作所需的許可權。 例如,有些使用者可能只需要讀取許可權,而其他使用者可能也需要寫入或刪除許可權。

  3. 實作驗證。 實作驗證方法,例如使用者名稱/密碼、多重要素驗證或與識別提供者整合,以協助確保只有授權的使用者可以存取資源。

  4. 使用角色型訪問控制 (RBAC) 。 設定 RBAC,根據其工作責任將角色和許可權指派給使用者。 使用 RBAC 可協助您有效地管理資源存取。

  5. 檢閱和更新控制件。 定期檢閱和更新訪問控制,以確保它們符合組織變更的需求。 拿掉不必要的訪問許可權,並視需要調整存取層級。

使用發行閘道

發行閘道是必須符合的檢查點或條件,才能繼續發行或部署。 使用發行閘道來協助確保發行符合成本效益,並符合優化目標。 發行閘道提供結構化方法來識別和實作節省成本的量值。 若要實作工作負載成本優化的版本閘道,請考慮下列步驟:

  1. 建立發行閘道準則。 建立在釋放或部署資源之前必須符合的條件或準則。 包含消費限制、資源使用率閾值或專案里程碑等因素。

  2. 併入發行閘道。 將發行閘道納入部署管線。 您可以使用自動化工具或自定義腳本,以確保資源部署受限於定義的準則。

  3. 監視消費。 根據定義的準則持續監視消費和資源使用量。 如果組織超過消費閾值,發行網關應該會防止進一步部署,直到問題解決為止。

設定成本警示

請務必設定預算、成本異常和承諾性方案使用率的警示,以將成本優化。 這些警示可讓您瞭解您的雲端費用,並啟用主動式成本管理。 請小心管理警示的通知收件者,並讓收件者清單保持在最新狀態,並具有目前的責任和存取權。 您可能會建立以優化成本的一些警示包括:

  • 預算警示:設定預算警示,以針對預先定義的閾值追蹤您的消費。 您可以藉由建立每月預算、計費帳戶或資源群組,來監視成本,並在接近或超過預算金額時收到通知。 預算警示可協助您隨時掌握費用,並採取預防動作來控制成本。

  • 成本異常警示:異常警示會通知您可能表示效率不佳或異常支出模式的非預期成本變化。 您可以設定這些警示,以識別實際或預測成本中的異常狀況。 使用成本異常警示來調查成本變化的基礎原因,並在必要時採取更正動作。

  • 承諾用量方案使用率警示:實作承諾式方案使用率警示,以監視您的方案使用量。 如果您有以承諾用量為基礎的方案,請設定計劃使用率的警示,可協助您有效地管理並最大化這些承諾的價值。 您可以設定這些警示,以在承諾用量型資源的使用率低於所需的臨界值時通知項目關係人。 將承諾用量型資源優化,並確定您使用承諾的優點。

使用 IaC

基礎結構即程式代碼是使用程式碼來管理和布建基礎結構資源的做法,通常是以組態檔的形式。 實作此策略,以使用程式代碼型範本來定義和自動化基礎結構資源的部署和設定,例如虛擬機、網路和記憶體。

IaC 策略提供結構化且可重複的方法來管理和控制基礎結構資源。 IaC 可協助您視需要部署資源、刪除資源而不持續執行資源,並確保根據預先定義的規則部署和設定資源,以優化成本。 請遵循下列步驟來使用 IaC 進行成本優化:

  1. Create IaC 範本。 Create 程式代碼型範本語言,以定義基礎結構資源和其設定。 這些範本可讓您以宣告方式指定基礎結構資源的預期狀態。 在基礎結構程式代碼中實作成本優化的最佳作法。 請考慮使用保留實例或節省方案來調整資源大小。 使用符合成本效益的記憶體選項,並套用資源元數據以進行成本配置和追蹤。

  2. 儲存範本。 將 IaC 範本儲存在版本控制系統中,以追蹤變更和管理不同的版本。 您可以使用版本控制來維護基礎結構設定的歷程記錄,並促進小組成員之間的共同作業。

  3. 使用參數。 在範本中使用參數,使其可重複使用且可設定。 藉由使用參數,您可以輕鬆地針對不同的環境或案例自定義基礎結構部署。

  4. 使用暫時環境。 使用暫時環境進行開發、測試和預備,以將成本優化。 暫時環境只應該在必要時執行。 使用 IaC 工具來 Create 這些環境,並在完成時刪除環境。

  5. 使用 IaC 工具。 使用 IaC 工具和架構,將基礎結構資源的部署和設定自動化。 使用自動化,根據您定義的原則,一致且可靠地部署資源。

  6. 監視已部署的資源。 定期監視您的資源及其成本,以確保符合您的消費原則。 使用監視和警示工具來識別與已定義防護措施的任何偏差,並視需要採取更正動作。 檢查未使用的資源並加以刪除,最好是自動化。

Azure 設施

使用治理原則:使用 Azure 原則 定義並強制執行符合成本優化目標的治理原則。 您可以使用 Azure 原則 來設定管理群組、訂用帳戶和資源群組的規則。 這些原則可以規範資源布建、使用量限制和成本配置。 使用原則來提升資源的許可權、識別並消除閑置或使用量過低的資源,並鼓勵使用符合成本效益的服務與架構。

Azure 可讓您設定限制或配額,以防止非預期的成本。 除了資源使用量的大小和持續時間之外,您還可以定義可布建的資源數目限制。 設定這些限制,以協助防止過度布建及控制成本。

  • 識別未使用或閑置的資源。 藉由識別閑置和使用量過低的資源,使用 Azure Advisor 來優化並降低整體 Azure 成本。 從建議程式儀錶板中的成本區段接收成本建議。

  • 新增資源元數據。 使用 Azure 治理來實作資源標記和分類。 使用相關的元數據標記資源,以追蹤和配置不同部門、專案或成本中心的成本。 瞭解成本屬性可協助您識別高支出的區域、將資源配置優化,以及提升成本管理。

設定訪問控制:使用 Azure RBAC 來管理資源的存取權。 您可以使用 RBAC 根據其角色,將許可權授與使用者、群組或應用程式。 實作 RBAC 以協助確保只有授權的使用者可以存取資源,降低未經授權的資源使用量風險和潛在的成本影響。

使用發行閘道:使用 Azure Pipelines 發行管理來定義並強制執行發行閘道。 您可以設定手動或自動化檢查點,以協助確保您符合特定準則,例如安全性檢查、合規性需求和成本閾值。

使用基礎結構即程序代碼。 您可以使用 Azure 工具和服務,使用程式碼來部署和管理基礎結構資源。 藉由使用 Azure Resource Manager (ARM) 範本、Azure Bicep 和 Azure DevOps 之類的工具,您可以以宣告式方式定義和部署基礎結構資源。 Azure 針對每個 Azure 資源都有 Bicep、Azure Resource Manager 和 Terraform 範本

使用 Azure Pipelines 或其他持續整合和其他持續傳遞 (CI/CD) 工具來自動化建置、測試和部署程式。 Teams 可以使用管線來定義一系列的步驟和動作,每當變更程式碼基底時,就會自動執行。 將這些程式自動化,以減少手動工作、確保一致性,以及加速軟體傳遞。

請考慮將成本較低的資源用於暫時或非生產環境,以將成本優化。 Azure 提供各種資源定價層。 Azure DevTest Labs 定價和 Azure 保留是您可以探索暫時環境的成本節省方法。

Git 存放庫,例如 Azure ReposGitHub,提供管理程式碼和基礎結構組態的版本控制功能。 Teams 和開發人員可以使用自動化存放庫來共同作業、追蹤變更,以及維護其程式代碼基底的歷程記錄。

Azure 部署環境 可讓開發小組使用專案型範本來快速且輕鬆地建立應用程式基礎結構,以建立一致性和最佳做法,同時將安全性最大化。 依需求存取安全環境可加速軟體開發生命周期的階段,以符合規範且符合成本效益的方式。

Azure Developer CLI 是開放原始碼工具,可加速將應用程式從本機開發環境移至 Azure 所需的時間。 不論您是在終端機中工作、集成開發環境 (IDE) 或 CI/CD,Azure Developer CLI 提供開發人員易記的命令,這些命令會對應至工作流程的主要階段。

設定成本警示:使用 Microsoft 成本管理 將成本優化,並強制執行消費防護措施。 您可以使用成本管理功能來設定預算和警示、使用 Power BI 之類的工具來可視化成本資訊,以及分析成本模式和效能瓶頸。

組織一致性

中央小組應該使用 雲端採用架構 指引來設定整個組織的消費防護措施,讓工作負載小組瞭解中央小組可以提供的內容。

我們鼓勵組織採用原則導向的防護措施。 如需範例實作,請參閱 採用原則驅動防護措施

成本優化檢查清單

請參閱一組完整的建議。