Amazon ECS 集群自动扩展 - Amazon Elastic Container Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon ECS 集群自动扩展

Amazon ECS 可以管理注册到您的集群的 Amazon EC2 实例的扩展。这称为 Amazon ECS 集群自动扩缩。该操作通过使用启用了托管扩展的 Amazon ECS 自动扩缩组容量提供程序完成。当您使用启用托管扩展的自动扩缩组容量提供程序时,您可以为此自动扩缩组中的实例的利用率设置目标百分比(targetCapacity)。Amazon ECS 会创建两个自定义 CloudWatch 指标和一个附加到您的 Auto Scaling 组的目标跟踪扩展策略。然后,Amazon ECS 根据您的任务从容量提供程序使用的资源利用率来管理自动扩缩组的横向缩减和横向扩展操作。有关自动扩缩组容量提供程序的更多信息,请参阅 Amazon EC2 Auto Scaling 组容量提供程序

注意

仅当使用 自动扩缩组容量提供程序时才支持 Amazon ECS 集群自动扩缩。有关托管在上的 Amazon ECS 工作负载 AWS Fargate,请参阅AWS Fargate 容量提供者

以下是使用 Amazon ECS 集群自动扩缩的工作流程。有关更多信息,请参阅 开启集群自动扩缩

  1. 创建自动扩缩组。

  2. 创建使用该自动扩缩组的容量提供程序。

  3. 为容量提供程序开启托管扩展。

  4. 将容量提供程序与集群关联。

  5. 通过使用容量提供程序的容量提供程序策略运行任务或创建服务。

    容量提供程序策略确定任务在集群的容量提供程序之间的分布方式。运行独立任务或创建服务时,您可以使用集群的默认容量提供程序策略,也可以使用覆盖默认策略的容量提供程序策略。

  6. (可选)为集群创建默认容量提供程序策略。

自 2022 年 5 月 27 日起,Amazon ECS 不再为新创建的容量提供商制定 AWS Auto Scaling 扩展计划。相反,Amazon ECS 使用附加到自动扩缩组的目标跟踪扩展策略,来根据您的目标容量规格执行动态扩展。有关更多信息,请参阅 Amazon EC2 Auto Scaling 组容量提供程序

在此新版本中,您可以使用带扩缩策略的现有自动扩缩组,以便在创建新容量提供程序时使用。建议不要修改 ECS 托管的扩展策略或计划资源。但是,在创建新的容量提供商资源时,如果您的自定义工具对 AWS Auto Scaling 扩展计划进行了修改,请执行以下操作之一:

  • (推荐)更新容量提供程序以修改 Amazon ECS 托管的扩展设置。有关更多信息,请参阅UpdateCapacityProvider

  • 更新与自动扩缩组关联的扩展策略以修改使用的目标跟踪配置。有关更多信息,请参阅PutScalingPolicy

注意事项

使用集群自动扩缩时应考虑以下因素:

  • 请勿更改或管理与容量提供商关联的自动扩缩组的所需容量,该组具有除 Amazon ECS 管理的扩展策略之外的任何扩展策略。

  • Amazon ECS 使用AWSServiceRoleForECS服务相关的 IAM 角色来获得 AWS Auto Scaling 代表您调用所需的权限。有关使用和创建 Amazon ECS 服务相关 IAM 角色的更多信息,请参阅 对 Amazon ECS 使用服务相关角色

  • 将容量提供程序与自动扩缩组结合使用时,对于创建容量提供程序的用户、组或角色需要 autoscaling:CreateOrUpdateTags 权限。这是因为Amazon ECS在将 自动扩缩组与容量提供程序关联时会向其添加一个标签。

    重要

    确保您使用的任何工具都不会从自动扩缩组中删除 AmazonECSManaged 标签。如果移除此标签,Amazon ECS 将无法管理扩展。

  • 集群 auto Scaling 不会修改群组MaximumCapacityMinimumCapacity或。要向外扩展组,的值MaximumCapacity必须大于零。

  • 启用 Auto Scaling(托管式扩展)时,容量提供程序只能同时连接到一个集群。如果您的容量提供程序已关闭托管扩缩,则可以将其与多个集群关联。

  • 关闭托管式扩展后,容量提供程序不会横向缩减或横向扩展。您可以使用容量提供程序策略来平衡容量提供程序之间的任务。

  • binpack容量而言,该策略是最有效的策略。

  • 当目标容量低于 100% 时,放置策略需要使用该binpack策略,而spread策略的顺序不高于binpack策略。这样可以防止容量提供商在每个任务都有专用实例或达到限制之前向外扩展。

使用控制台时请考虑以下事项:

  • 默认情况下,Amazon ECS 托管式扩展功能处于启用状态。有关更多信息,请参阅 托管扩展行为

  • 默认情况下,托管终止保护处于关闭状态。有关更多信息,请参阅下一部分托管式终止保护

  • 默认情况下,Auto Scaling 实例横向缩减保护处于关闭状态。有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南 中的使用实例横向缩减保护

  • 您的容量提供程序使用的自动扩缩组不能使用实例权重设置。与 Amazon ECS 容量提供程序一起使用时,不支持实例权重。