優化 Amazon ECS 群集 auto 擴展 - Amazon Elastic Container Service

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

優化 Amazon ECS 群集 auto 擴展

ECS在 Amazon 上執行 Amazon 的客戶EC2可以利用叢集 auto 擴展來管理 Amazon EC2 自動擴展群組的擴展。透過叢集 auto 動擴展,您可以ECS將 Amazon 設定為自動擴展 Auto Scaling 群組,並專注於執行任務。Amazon ECS 確保 Auto Scaling 群組可根據需要進行擴展和擴展,無需進一步介入。Amazon ECS 容量提供者可透過確保有足夠的容器執行個體來滿足應用程式的需求,來管理叢集中的基礎設施。若要了解叢集 auto 擴展如何運作,請參閱 Amazon ECS 叢集自動擴展的深入瞭解。

叢集 auto 擴展依賴 CloudWatch 於與 Auto Scaling 群組的整合來調整叢集容量。因此,它具有與之相關的固有延遲

  • 發布指 CloudWatch 標,

  • 指標CapacityProviderReservation違反 CloudWatch 警報(高和低)所花費的時間

  • 新啟動的 Amazon EC2 執行個體預熱所花費的時間。您可以採取下列動作,使叢集 auto 調整更快的回應速度,以加快部署速度:

容量提供者步驟擴展大小

Amazon ECS 容量供應商將擴大/縮小容器執行個體,以滿足應用程式的需求。Amazon ECS 將啟動的執行個體數量下限預設為 1。如果需要數個執行個體來放置擱置的工作,這可能會增加部署的時間。您可以minimumScalingStepSize通過 Amazon 增加,ECSAPI以增加 Amazon 一次擴展或ECS擴展出的最小實例數量。太低maximumScalingStepSize的容器執行個體可以限制一次擴展或擴展多少個容器執行個體,這可能會降低部署速度。

注意

此組態目前僅可透過CreateCapacityProvider或使用UpdateCapacityProviderAPIs。

執行個體預熱期

執行個體預熱期是指新啟動的 Amazon EC2 執行個體可以貢獻 Auto Scaling 群組 CloudWatch 指標的一段時間。指定的預熱期到期後,執行個體會計入 Auto Scaling 群組的彙總指標,叢集自動調整規模會繼續進行下一次計算,以估計所需的執行個體數量。

的預設值instanceWarmupPeriod為 300 秒,您可以透過CreateCapacityProvider或將其設定為較低的值,以UpdateCapacityProviderAPIs獲得更快的回應速度。

備用容量

如果您的容量提供者沒有可用於放置任務的容器執行個體,則需要透過即時啟動 Amazon EC2 執行個體來增加 (向外擴展) 叢集容量,並等待它們開機,然後才能在其上啟動容器。這可以顯著降低任務啟動率。您在這裡有兩個選擇。

在這種情況下,已啟動備用 Amazon EC2 容量並準備好執行任務將提高有效任務啟動率。您可以使用Target Capacity配置來指示您希望在叢集中維持備用容量。例如,若設定Target Capacity為 80%,即表示叢集始終需要 20% 的備用容量。此備用容量可讓任何獨立工作立即啟動,確保工作啟動不受限制。這種方法的權衡是保持備用叢集容量的潛在成本增加。

您可以考慮的另一種方法是為您的服務增加預留空間,而不是容量提供者。這表示您可以修改目標追蹤擴展測量結果或服務自動調整Target Capacity規模的步驟調整閾值,來增加服務中的複本數目,而不是減少啟 auto 備用容量的組態。請注意,此方法僅對尖峰的工作負載有幫助,但是當您部署新服務並首次從 0 到 N 個任務時不會產生影響。如需相關擴展政策的詳細資訊,請參閱 Amazon Elastic 容器服務開發人員指南中的目標追蹤擴展政策或步驟擴展政策