SUS02-BP01 動態擴展工作負載基礎架構
利用雲端的彈性動態擴展您的基礎架構,以達到雲端資源的供需平衡,避免工作負載出現過度佈建的容量。
常見的反模式:
您不隨著使用者負載擴展基礎架構。
您一律手動擴展基礎架構。
您在擴展事件之後維持增加容量,而不是縮減規模。
建立此最佳實務的優勢:設定並測試工作負載彈性有助於有效達到雲端資源的供需平衡,並避免過度佈建的容量。您可以利用雲端中的彈性,在需求尖峰期間或之後自動擴展容量,以確保您使用的資源數量正好足以滿足業務所需。
未建立此最佳實務時的風險暴露等級:中
實作指引
雲端提供的彈性可透過各種機制來動態擴展或減少資源,以滿足需求的變化。平衡供需關係可將工作負載受到的影響降到最低。
需求可為固定或可變,需要指標和自動化以確保該項管理不致成為繁重的工作。應用程式可藉由修改執行個體大小進行垂直調整 (縱向擴展或縮減規模)、藉由修改執行個體數目進行水平調整 (縮減或橫向擴展),或進行兩者的合併調整。
您可以使用多種不同的方法達到資源的供需平衡。
-
目標追蹤法:監控您的擴展指標,並視需要自動增加或減少容量。
-
預測擴展:縮減每日和每週趨勢的預期。
-
排程法:根據可預測的負載變化設定您自己的擴展排程。
-
服務擴展: 挑選按設計原本就會擴展的服務 (例如無伺服器),或提供自動擴展功能。
辨別使用率低或無使用率的時期,並調整資源規模以移除過剩容量、提高效率。
實作步驟
-
彈性會比對您擁有的資源供應與這些資源的需求。執行個體、容器和函數提供了彈性機制,可與自動擴展功能結合使用,或是作為服務功能提供。AWS 提供了多種自動擴展機制,以確保工作負載可在使用者負載較低時迅速輕易地縮減規模。以下是自動擴展機制的幾個範例:
Auto scaling mechanism Where to use 用來確認您擁有正確數量的 Amazon EC2 執行個體可處理應用程式的使用者負載。
用來自動將個別 AWS 服務的資源擴展到 Amazon EC2 以外,例如 Lambda 函數或 Amazon Elastic Container Service (Amazon ECS) 服務。
用來自動擴展 AWS 上的 Kubernetes 叢集。
-
擴展常與 Amazon EC2 執行個體或 AWS Lambda 函數等服務一起討論。請考慮設定非運算服務 (例如 Amazon DynamoDB
讀取和寫入容量單位或 Amazon Kinesis Data Streams 碎片) 以符合需求。 -
確認會對要部署的工作負載類型驗證擴充或縮減規模的指標。如果您要部署影片轉碼應用程式,則預期為 100% CPU 使用率,且不應做為您的主要指標。您可以將自訂指標
(例如記憶體使用率) 用於擴展政策 (如有必要)。若要選擇正確的指標,請考量 Amazon EC2 的下列指引: -
指標應為有效的使用率指標,並說明執行個體的忙碌程度。
-
指標值必須根據 Auto Scaling 群組中的執行個體數量按比例增加或減少。
-
-
確認工作負載部署可處理橫向擴展和縮減事件。建立縮減事件的測試案例,以確認工作負載的行為符合預期,且不會對使用者體驗造成影響 (例如失去黏性工作階段)。您可以使用活動歷史來驗證 Auto Scaling 群組的擴展活動。
-
評估工作負載以取得可預測模式,並在預計發生預測中的變化和隨需規劃變化時主動擴展。透過預測擴展,可以避免過度佈建容量的需求。如需詳細資訊,請參閱 Amazon EC2 Auto Scaling 的預測擴展
。
資源
相關文件:
相關影片:
相關範例: