Amazon ECS 集群 Auto Scaling - Amazon Elastic Container Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Amazon ECS 集群 Auto Scaling

Amazon ECS 集群 Auto Scaling 使您能够更好地控制集群内的 Amazon EC2 实例调整方式。在创建 Auto Scaling 组容量提供程序并启用托管调整时,Amazon ECS 会管理在创建容量提供程序时使用的 Auto Scaling 组的缩减和扩展操作。根据您指定的目标容量值,Amazon ECS 代表您创建具有目标跟踪调整策略的 AWS Auto Scaling 调整计划。然后,Amazon ECS 将此调整计划与您的 Auto Scaling 组关联。

对于已启用托管调整的每个 Auto Scaling 组容量提供程序,都会创建带有前缀 Amazon ECS 的 CloudWatch 托管 AWS/ECS/ManagedScaling 指标以及两个 CloudWatch 警报。CloudWatch 指标和警报用于监控 Amazon EC2 组中的 Auto Scaling 实例容量,并将触发 Auto Scaling 组以根据需要进行缩减和扩展。

每个集群都有一个或多个 Auto Scaling 组容量提供程序和一个可选的默认容量提供程序策略。容量提供程序确定要用于任务的基础设施,容量提供程序策略确定任务在容量提供程序之间的分布方式。运行任务或创建服务时,您可以使用集群的默认容量提供程序策略,也可以指定容量提供程序策略来取代集群的默认策略。有关容量提供程序的更多信息,请参阅Amazon ECS 容量提供程序.

集群 Auto Scaling 注意事项

使用集群 Auto Scaling 时应考虑以下因素:

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

  • 集群 Auto Scaling 在亚太地区(大阪)区域区域中不可用。

  • 在将容量提供程序与 Auto Scaling 组结合使用时,创建容量提供程序IAM的用户需要 autoscaling:CreateOrUpdateTags 权限。这是因为当 Amazon ECS 将 Auto Scaling 组与容量提供程序关联时,它会将标签添加到组中。

    重要

    确保您使用的任何工具都不会从 AmazonECSManaged 组中删除 Auto Scaling 标签。如果删除此标签,则 Amazon ECS 无法在扩展集群时对其进行管理。

  • 如果您的 Auto Scaling 组使用相同或类似的实例类型,则托管扩展的效果最佳。有关更多信息,请参阅托管横向扩展行为.

  • 在将 Auto Scaling 组与按需实例和多个实例类型一起使用时,请将较大实例类型放在优先级列表中的较高位置,并且不指定权重。目前不支持指定权重。有关更多信息,请参阅 中具有多个实例类型的 Auto Scaling 组AWS Auto Scaling 用户指南

  • 在创建服务时,指定跨可用区分布的任务放置策略或基于 CPU 或内存的装填策略效果最佳。不要使用实例分布策略,因为扩展与该策略类型一起运行较慢。

托管横向扩展行为

当使用启用了托管调整的Auto Scaling组容量提供程序时, Amazon ECS 会估计要添加到集群的最佳实例数的下限,并使用此值来确定要请求的实例数。下面将更详细地介绍扩展行为。

  1. 对所有预置任务进行分组,以便每个组具有相同的确切的资源要求。

  2. 当使用多个实例类型时Auto Scaling,组中的 实例按其属性(如 vCPU、内存、弹性网络接口 (ENI)、端口GPUs和每个属性的最大实例类型)排序。

  3. 对于每组任务,将计算运行未放置任务所需的实例数。此计算使用一项策略,该binpack策略考虑到了任务的 vCPU、内存、弹性网络接口 (ENI)、端口和GPUs要求以及Amazon EC2实例的资源可用性。此值将被视为计算的最大实例计数。

    注意

    此计算考虑到了定义的任何任务放置约束,但我们建议仅使用distinctInstance任务放置约束。

  4. Amazon ECS 然后minimumScalingStepSize,如果计算的最大实例数小于最小扩展步骤大小,或者是 maximumScalingStepSize 或计算的最大实例数值中的较小者, 将启动 。

有关此逻辑工作原理的更详细说明,请参阅集群 Auto Scaling Amazon ECS的深入探究。