SUS02-BP01 動態擴展工作負載基礎設施 - AWS 建構良好的架構

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SUS02-BP01 動態擴展工作負載基礎設施

使用雲端的彈性並動態擴展您的基礎設施,以達到雲端資源的供需平衡,避免工作負載出現過度佈建的容量。

常見的反模式:

  • 您不隨著使用者負載擴展基礎設施。

  • 您一律手動擴展基礎設施。

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

建立此最佳實務的優勢:設定並測試工作負載彈性有助於有效達到雲端資源的供需平衡,並避免過度佈建的容量。您可以利用雲端中的彈性,在需求尖峰期間或之後自動擴展容量,以確保您使用的資源數量正好足以滿足業務所需。

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

實作指引

雲端提供的彈性可透過各種機制來動態擴展或減少資源,以滿足需求的變化。平衡供需關係可將工作負載受到的影響降到最低。

需求可為固定或可變,需要指標和自動化以確保該項管理不致成為繁重的工作。應用程式可藉由修改執行個體大小進行垂直調整 (縱向擴展或縮減規模)、藉由修改執行個體數目進行水平調整 (縮減或橫向擴展),或進行兩者的合併調整。

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

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

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

  • 排程法:根據可預測的負載變化設定您自己的擴展排程。

  • 服務擴展:挑選按設計原本就會擴展的服務 (例如無伺服器),或提供自動擴展功能。

辨別使用率低或無使用率的時期,並調整資源規模以移除過剩容量、提高效率。

實作步驟

  • 彈性會比對您擁有的資源供應與這些資源的需求。執行個體、容器和函數提供彈性機制,可結合自動擴展或作為 服務的功能。 AWS 提供各種自動擴展機制,以確保工作負載在低使用者負載期間可以快速輕鬆地擴展。以下是自動擴展機制的幾個範例:

    自動擴展機制 在哪裡使用

    Amazon EC2 Auto Scaling

    使用 來確認您有正確數量的 Amazon EC2執行個體,可用於處理應用程式的使用者負載。

    Application Auto Scaling

    使用 自動將個別 AWS 服務的資源擴展至 Amazon 之外EC2,例如 Lambda 函數或 Amazon Elastic Container Service (AmazonECS) 服務。

    Kubernetes Cluster Autoscaler

    使用 在 上自動擴展 Kubernetes 叢集 AWS。

  • 擴展通常與運算服務相關,例如 Amazon EC2執行個體或 AWS Lambda 函數。請考慮設定非運算服務 (例如 Amazon DynamoDB 讀取和寫入容量單位或 Amazon Kinesis Data Streams 碎片) 以符合需求。

  • 確認會對要部署的工作負載類型驗證擴充或縮減規模的指標。如果您正在部署影片轉碼應用程式,則預期 100% CPU使用率,且不應成為您的主要指標。您可以將自訂指標 (例如記憶體使用率) 用於擴展政策 (如有必要)。若要選擇正確的指標,請考慮下列 Amazon 指南EC2:

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

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

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

  • 確認工作負載部署可處理橫向擴展和縮減事件。建立縮減事件的測試案例,以確認工作負載的行為符合預期,且不會對使用者體驗造成影響 (例如失去黏性工作階段)。您可以使用活動歷史記錄來驗證 Auto Scaling 群組的擴展活動。

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

資源

相關文件:

相關影片:

相關範例: