

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

# EC2 工作負載的 Amazon ECS 容量提供者
<a name="asg-capacity-providers"></a>

當您針對容量使用 Amazon EC2 執行個體時，可使用 Auto Scaling 群組來管理註冊到其叢集的 Amazon EC2 執行個體。Auto Scaling 能確保您有正確的 Amazon EC2 執行個體數量來處理應用程式負載。

您可以使用受管擴展功能讓 Amazon ECS 管理 Auto Scaling 群組的縮減和橫向擴充動作，也可以自行管理擴展動作。如需詳細資訊，請參閱[使用叢集自動擴展自動管理 Amazon ECS 容量](cluster-auto-scaling.md)。

建議您建立新的空白 Auto Scaling 群組。如果您使用現有的 Auto Scaling 群組，則任何與執行中群組相關聯以及註冊至 Amazon ECS 叢集的 Amazon EC2 執行個體在使用 Auto Scaling 群組建立容量提供者之前，可能無法正確的註冊容量提供者。在容量提供者策略中使用容量提供者時，這可能會造成問題。使用 `DescribeContainerInstances` 可以確認容器執行個體是否與容量提供者建立關聯。

**注意**  
若要建立空白 Auto Scaling 群組，請將所需的計數設定為零。建立容量提供者並將其與叢集關聯後，您就可以進行橫向擴展。  
當您使用 Amazon ECS 主控台時，Amazon ECS 會代表您建立 Amazon EC2 啟動範本和 Auto Scaling 群組，做為 CloudFormation 堆疊的一部分。名稱字首皆為 `EC2ContainerService-<{{ClusterName}}>`。您可以使用 Auto Scaling 群組作為該叢集的容量提供者。

建議使用受管執行個體排空功能，允許優雅終止 Amazon EC2 執行個體，不會中斷工作負載。預設會啟用此功能。如需詳細資訊，請參閱[安全地停止在 EC2 執行個體上執行的 Amazon ECS 工作負載](managed-instance-draining.md)

在主控台中使用 Auto Scaling 群組容量提供者時應考慮以下事項：
+ Auto Scaling 群組的 `MaxSize` 必須大於零，才能水平擴展。
+ Auto Scaling 群組不能具有執行個體權重設定。
+ 如果 Auto Scaling 群組無法橫向擴展以容納執行的任務數目，則任務將無法轉換超出 `PROVISIONING` 狀態。
+ 不要修改與容量提供者管理的 Auto Scaling 群組關聯的擴展政策資源。
+ 如果在建立容量提供者時開啟受管擴展，則可將 Auto Scaling 群組所需的計數設定為 `0`。開啟受管擴展時，Amazon ECS 會管理 Auto Scaling 群組的縮減和橫向擴展動作。
+ 將容量提供者與容量提供者策略相關聯之前，必須先將容量提供者與叢集建立關聯。
+ 您最多可以為容量提供者策略指定 20 個容量提供者。
+ 您無法將使用 Auto Scaling 群組容量提供者的服務更新為使用 Fargate 容量提供者。反之亦然。
+ 在容量提供者策略中，如果沒有在主控台中對容量提供者指定 `weight` 值，則會使用預設值 `1`。如果使用 API 或 AWS CLI，`0`則會使用 的預設值。
+ 在容量提供者策略中指定多個容量提供者時，至少有一個容量提供者必須具有大於零的權重值。任何權重為零的容量提供者都不會用來置放任務。如果您在策略中指定多個容量提供者權重均為零，則使用容量提供者策略的任何 `RunTask` 或 `CreateService` 動作都會失敗。
+ 在容量提供者策略中，只有一個容量提供者已定義*基準*值。如果未指定基準值，則會使用預設值零。
+ 叢集可以同時包含 Auto Scaling 群組容量提供者以及 Fargate 容量提供者。不過，容量提供者策略只能包含 Auto Scaling 群組或 Fargate 容量提供者，不能同時包含兩者。
+ 叢集可以同時包含使用容量提供者和啟動類型的各種服務和獨立任務。服務可以更新為使用容量提供者策略，而非啟動類型。不過，若要執行此操作，您必須強制執行新部署。
+ Amazon ECS 支援 Amazon EC2 Auto Scaling 暖集區。暖集區是一組準備投入使用的預先初始化 Amazon EC2 執行個體。每當應用程式需要橫向擴充時，Amazon EC2 Auto Scaling 都會使用暖集區中的預初始化執行個體 (而不是啟動冷執行個體)。這可讓任何最終初始化程序執行，然後將執行個體投入使用。如需詳細資訊，請參閱[為 Amazon ECS Auto Scaling 群組設定預先初始化的執行個體](using-warm-pool.md)。

如需有關建立 Amazon EC2 Auto Scaling 啟動範本的詳細資訊，請參閱 *Amazon EC2 Auto Scaling User Guide* 中的 [Auto Scaling launch templates](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-templates.html)。如需有關建立 Amazon EC2 Auto Scaling 群組的詳細資訊，請參閱《Amazon EC2 Auto Scaling 使用者指南**》中的 [Auto Scaling 群組](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html)。