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