Amazon ECS 受管執行個體自動擴展與任務置放 - Amazon Elastic Container Service

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

Amazon ECS 受管執行個體自動擴展與任務置放

Amazon ECS 受管執行個體使用智慧型演算法自動擴展叢集容量,並在整個基礎結構中有效率地置放任務。了解這些演算法的運作方式可協助您最佳化服務組態,並對置放行為進行疑難排解。

任務置放演算法

Amazon ECS 受管執行個體使用複雜的置放演算法,在排程任務時平衡可用性、資源使用率與網路需求。

可用區域分佈

依預設,Amazon ECS 受管執行個體會將任務分佈到多個可用區域,以便優先考慮可用性:

  • 對於具有多項任務的服務,Amazon ECS 受管執行個體會盡可能確保分佈在不同可用區域中的至少 3 個執行個體

  • 此行為提供了容錯能力,但可能導致每個執行個體的資源使用率降低

  • 優先考慮可用區域分佈,而非裝箱最佳化

裝箱行為

雖然 Amazon ECS 受管執行個體可以執行裝箱以最大化資源使用率,但此行為會受到網路組態影響:

  • 若要實現裝箱,請將服務設定為使用單一子網路

  • 多子網路組態會優先考慮可用區域分佈,而非資源密度

  • 裝箱更可能發生在初始服務啟動期間,而非事件擴展期間

ENI 密度考量

對於使用 awsvpc 網路模式的服務,Amazon ECS 受管執行個體在作出置放決策時會考慮彈性網路介面 (ENI) 密度:

  • awsvpc 模式中的每項任務都需要專用的 ENI

  • 執行個體類型具有影響任務密度的不同 ENI 限制

  • 選取目標執行個體時,Amazon ECS 受管執行個體會考量 ENI 可用性

注意

為最佳化置放決策,我們正在持續改進 ENI 密度計算。

容量提供者決策邏輯

Amazon ECS 受管執行個體容量提供者會基於多種因素作出擴展與置放決策:

資源需求

待定任務的 CPU、記憶體與網路需求

執行個體可用性

現有執行個體的目前容量與使用率

網路限制條件

子網路組態與 ENI 可用性

可用區域分佈

跨多個可用區域維持容錯能力

組態選項

子網路選取策略

子網路組態會顯著影響任務置放行為:

多個子網路 (預設)

優先考慮可用區域分佈以實現高可用性

可能會導致每個執行個體的資源使用率降低

建議用於需要容錯能力的生產工作負載

單一子網路

啟用裝箱以提高資源使用率

將任務集中在一個可用區域,以降低容錯能力

適用於開發或成本最佳化工作負載

網路模式考量

您選擇的網路模式會影響置放決策:

  • awsvpc 模式 – 每項任務都需要專用 ENI,用於限制每個執行個體的任務密度

  • host 模式 – 任務會直接使用主機的網路,置放主要由資源可用性驅動

CPU 架構考量事項

cpuArchitecture 您在任務定義中指定的 用於在特定架構上放置任務。如果您未指定 cpuArchitecture,Amazon ECS 會根據容量提供者組態,嘗試在任何可用的 CPU 架構上放置任務。您可指定為 X86_64ARM64

對任務置放進行疑難排解

常見置放模式

了解預期的置放模式有助於區分正常行為與潛在問題:

分散式分佈

在部分利用的多個執行個體上分佈任務

使用多個子網路時的正常行為

表示優先考慮可用性而非資源效率

集中式置放

在使用率較高的較少執行個體上置放多項任務

使用單一子網路組態時的預期行為

可能在初始服務啟動期間發生

不均勻分佈

某些執行個體使用率很高,而某些執行個體未得到充分利用

可能表示 ENI 限制或資源限制條件

建議檢閱執行個體類型與網路組態

最佳化置放行為

若要針對特定需求最佳化任務置放:

  1. 評估可用性需求與成本最佳化需求

  2. 根據優先順序選擇適當的子網路組態

  3. 為網路模式選取具有足夠 ENI 容量的執行個體類型

  4. 監控置放模式並視需要調整組態

最佳實務

  • 對於生產工作負載 – 跨不同可用區域使用多個子網路以確保高可用性,接受資源使用率方面的權衡

  • 對於開發或測試 – 考慮使用單一子網路組態,最大化資源使用率並降低成本

  • 對於 awsvpc 模式 – 選擇具有足夠 ENI 容量的執行個體類型,避免出現置放限制條件

  • 對於成本最佳化 – 監控使用率模式並調整服務組態,平衡可用性與效率

  • 對於疑難排解 – 調查意外置放模式時,請檢閱子網路組態與網路模式