本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
最佳化 Amazon ECS叢集自動擴展
在 Amazon ECS上執行 Amazon 的客戶EC2可以利用叢集自動擴展來管理 Amazon EC2 Auto Scaling 群組的擴展。透過叢集自動擴展,您可以設定 Amazon 自動ECS擴展 Auto Scaling 群組,並專注於執行任務。Amazon ECS確保 Auto Scaling 群組可視需要縱向擴展和橫向擴展,而不需要進一步介入。Amazon ECS容量提供者可用來管理叢集中的基礎設施,確保有足夠的容器執行個體可滿足您的應用程式需求。若要了解叢集自動擴展如何在 下運作,請參閱 Amazon ECS Cluster Auto Scaling 上的深度分析
叢集自動擴展依賴於與 Auto Scaling 群組的 CloudWatch 型整合,以調整叢集容量。因此,它具有與 相關聯的固有延遲
-
發佈 CloudWatch 指標、
-
指標
CapacityProviderReservation
違反 CloudWatch 警示所需的時間 (高和低) -
新啟動的 Amazon EC2執行個體暖機所需的時間。您可以採取下列動作,讓叢集自動擴展更具回應性,以加快部署速度:
容量提供者步進擴展大小
Amazon ECS容量提供者將增加/縮減容器執行個體,以滿足應用程式的需求。Amazon ECS將啟動的執行個體數目下限預設為 1。如果需要多個執行個體來放置待定任務,這可能會為您的部署增加額外的時間。您可以透過 minimumScalingStepSize
Amazon 增加 ECSAPI,以增加 Amazon 一次向內擴展或向外ECS擴展的執行個體數量下限。太低maximumScalingStepSize
的 可以限制一次擴展或向外擴展的容器執行個體數量,這可能會減慢部署速度。
注意
此組態目前只能透過 CreateCapacityProvider
或 UpdateCapacityProvider
使用APIs。
執行個體暖機期
執行個體暖機期是新啟動的 Amazon EC2執行個體可以為 Auto Scaling 群組提供 CloudWatch 指標的期間。一旦指定的暖機期過期,執行個體會計入 Auto Scaling 群組的彙總指標,而叢集自動擴展會繼續進行其下一次的計算反覆運算,以估計所需的執行個體數量。
的預設值instanceWarmupPeriod
為 300 秒,您可以透過 CreateCapacityProvider
或 將 設定為較低的值UpdateCapacityProvider
APIs,以獲得更靈敏的擴展。
備用容量
如果您的容量提供者沒有容器執行個體可供放置任務,則它需要透過即時啟動 Amazon EC2執行個體來增加 (擴展) 叢集容量,並等待它們啟動,然後才能在其上啟動容器。這可以大幅降低任務啟動率。您在這裡有兩個選項。
在這種情況下,已啟動備用 Amazon EC2容量並準備好執行任務,將提高有效的任務啟動率。您可以使用 Target Capacity
組態來表示您想要在叢集中維護備用容量。例如,將 設定為 Target Capacity
80% 表示您的叢集隨時需要 20% 的備用容量。此備用容量可以允許立即啟動任何獨立任務,確保任務啟動不會受到調節。此方法的權衡是保留備用叢集容量的潛在增加成本。
您可以考慮的替代方法是將空間新增至服務,而不是容量提供者。這表示,您可以修改目標追蹤擴展指標或服務自動擴展的步進擴展閾值,來增加服務中的複本數量,而不是減少啟動備用容量的Target Capacity
組態。請注意,此方法只會對尖峰工作負載有所幫助,但當您第一次部署新服務並從 0 到 N 任務時,不會產生影響。如需相關擴展政策的詳細資訊,請參閱《Amazon Elastic Container Service 開發人員指南》中的目標追蹤擴展政策或步驟擴展政策。