PERF02-BP05 動態擴展您的運算資源 - AWS Well-Architected 架構

PERF02-BP05 動態擴展您的運算資源

為滿足需求,請使用雲端的彈性,來動態擴充或縮減運算資源,並避免為工作負載佈建過多或過少的容量。

常見的反模式:

  • 您可以手動增加容量,對警示做出反應。

  • 使用與內部部署相同的大小規模準則 (通常是靜態基礎設施)。

  • 您在擴展事件之後維持增加容量,而不是縮減規模。

建立此最佳實務的優勢:設定和測試運算資源的彈性可協助您節省成本、維持效能基準,並隨著流量變化提升可靠性。

未建立此最佳實務時的曝險等級:

實作指引

AWS 透過各種擴展機制,提供了動態擴展或縮減資源的彈性,以滿足需求的變化。結合與運算相關的指標,動態擴展允許工作負載自動回應變更,並使用最佳運算資源集來實現目標。

您可以使用多種不同的方法達到資源的供需平衡。

  • 目標追蹤法:監控您的擴展指標,並視需要自動增加或減少容量。

  • 預測擴展:縮減每日和每週趨勢的預期。

  • 基於排程的方法:按照排程來擴展可讓您根據可預測的負載變化來設定自己的擴展排程。

  • 服務擴展:選擇可根據設計自動擴展的服務 (例如無伺服器)。

您必須確保工作負載部署可以同時處理向上擴展和縮減規模事件。

實作步驟

  • 運算執行個體、容器和函數提供了彈性機制,可與自動擴展功能結合使用,或是作為服務功能提供。以下是自動擴展機制的幾個範例:

    自動擴展機制 在哪裡使用
    Amazon EC2 Auto Scaling 確保您有正確的 Amazon EC2 執行個體數量可應付應用程式的使用者負載。
    Application Auto Scaling 自動將個別 AWS 服務的資源擴展到 Amazon EC2 以外,例如 AWS Lambda 函數或 Amazon Elastic Container Service (Amazon ECS) 服務。
    Kubernetes Cluster Autoscaler/Karpenter 自動擴展 Kubernetes 叢集。
  • 我們常將擴展與 Amazon EC2 執行個體或 AWS Lambda 函數等運算服務一起討論。請務必同時考慮非運算服務的組態 (例如 AWS Glue) 以符合需求。

  • 確認用於擴展的指標符合要部署之工作負載的特性。如果您要部署影片轉碼應用程式,則預期為 100% CPU 使用率,且不應做為您的主要指標。請改用轉碼任務佇列的深度。您可以將自訂指標用於擴展政策 (如有必要)。若要選擇正確的指標,請考量 Amazon EC2 的下列指引:

    • 指標應為有效的使用率指標,並說明執行個體的忙碌程度。

    • 指標值必須與 Auto Scaling 群組中的執行個體數成比例增加或減少。

  • 對於 Auto Scaling 群組,確保使用動態擴展,而非手動擴展。我們也建議您在動態擴展中使用目標追蹤擴展政策

  • 確認工作負載部署可同時處理擴展事件 (擴充和縮減)。例如,您可以使用活動歷史記錄來驗證 Auto Scaling 群組的擴展活動。

  • 評估工作負載以取得可預測模式,並在預計發生預測中的變化和隨需規劃變化時主動擴展。透過預測性擴展,可以消除過度佈建容量的需求。如需詳細資訊,請參閱 Predictive Scaling with Amazon EC2 Auto Scaling

資源

相關文件:

相關影片:

相關範例: