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

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

Amazon ECS 集群 Auto Scaling

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

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

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

集群 Auto Scaling 注意事项

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

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

  • 群集自动扩展不可用于亚太地区(大阪)区域区域。

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

    重要

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

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

  • 使用Auto Scaling组,请将较大的实例类型放在优先级列表中,并且不指定权重。目前不支持指定权重。有关更多信息,请参阅 。Auto Scaling具有多种实例类型的组中的Amazon Auto Scaling 用户指南

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

  • 所需容量为Auto Scaling与容量提供程序关联的组不应由任何扩展策略进行更改或管理Amazon ECS管理。

托管的横向扩展行为

使用Auto Scaling已启用托管扩展的组容量提供商、Amazon ECS估计要添加到集群的最佳实例数的下限,并使用此值确定要请求的实例数。下面更详细地描述了向外扩展行为。

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

  2. 当使用多个实例类型时,Auto Scaling组按其属性(如 vCPU、内存、elastic network interface (ENI)、端口和 GPU)进行排序,并为每个属性选择最大的实例类型。

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

    注意

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

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

有关此逻辑如何工作的更详细的说明,请参阅。深度潜水Amazon ECS集群 Auto Scaling