适用于 EC2 工作负载的 Amazon ECS 容量提供程序 - Amazon Elastic Container Service

适用于 EC2 工作负载的 Amazon ECS 容量提供程序

当您将 Amazon EC2 实例用于容量时,可以使用 Amazon EC2 Auto Scaling 组来管理注册到其集群的 Amazon EC2 实例。Amazon EC2 Auto Scaling 可帮助确保具有正确数量的 Amazon EC2 实例以处理应用程序负载。

您可以使用托管式扩缩功能来让 Amazon ECS 管理 Amazon EC2 Auto Scaling 组的横向缩减和横向扩展操作,您也可以自行管理扩缩操作。有关更多信息,请参阅 通过集群自动扩缩功能自动管理 Amazon ECS 容量

建议您创建新的空 Amazon EC2 Auto Scaling 组。如果您使用现有 Amazon EC2 Auto Scaling 组,则在 Amazon EC2 Auto Scaling 组用于创建容量提供程序之前,与已在运行并注册到 Amazon ECS 集群的组关联的任何 Amazon EC2 实例都可能无法正确注册到该容量提供程序。使用容量提供程序策略中的容量提供程序时,这可能会引发问题。使用 DescribeContainerInstances 可以确认容器实例是否与容量提供程序关联。

注意

要创建空的 Amazon EC2 Auto Scaling 组,请将所需计数设置为零。创建容量提供程序并将其与集群关联后,可以扩展它。

当您使用 Amazon ECS 控制台时,Amazon ECS 将代表您创建一个 Amazon EC2 启动模板和 Amazon EC2 Auto Scaling 组,作为 CloudFormation 堆栈的一部分。它们的前缀为 EC2ContainerService-<ClusterName>。您可以将 Amazon EC2 Auto Scaling 组用作该集群的容量提供程序。

建议您使用托管式实例耗尽功能,以便在不中断工作负载的情况下平稳终止 Amazon EC2 实例。此功能默认启用。有关更多信息,请参阅 安全停止在 EC2 实例上运行的 Amazon ECS 工作负载

在控制台中使用 Amazon EC2 Auto Scaling 组容量提供程序时,请考虑以下事项:

  • Amazon EC2 Auto Scaling 组必须具有大于零的 MaxSize 才能横向扩展。

  • Amazon EC2 Auto Scaling 组不能有实例权重设置。

  • 如果 Amazon EC2 Auto Scaling 组无法横向扩展以适应运行的任务数,则任务将无法转换到 PROVISIONING 状态之外。

  • 请勿修改与由容量提供程序管理的 Amazon EC2 Auto Scaling 组关联的扩展策略资源。

  • 如果在创建容量提供程序时启用了托管式扩展,则可将 Amazon EC2 Auto Scaling 组所需计数设置为 0。启用托管式扩展后,Amazon ECS 管理 Amazon EC2 Auto Scaling 组的横向缩减和横向扩展操作。

  • 您必须将容量提供程序与集群关联,然后才能将其与容量提供程序策略关联。

  • 您最多可以为容量提供程序策略指定 20 个容量提供程序。

  • 使用 Amazon EC2 Auto Scaling 组容量提供程序的服务无法更新为使用 Fargate 容量提供程序。反之亦然。

  • 在容量提供程序策略中,如果未在控制台中为容量提供程序指定 weight 值,则使用原定设置值 1。如果使用 API或 AWS CLI,则使用原定设置值 0

  • 如果在容量提供程序策略中指定了多个容量提供程序,则至少有一个容量提供程序的权重值必须大于零。任何权重为 0 的容量提供程序都不能用于放置任务。如果您在策略中指定的多个容量提供程序的权重全部为 0,则使用该容量提供程序策略的任何 RunTaskCreateService 操作都将失败。

  • 在容量提供程序策略中,只能有一个容量提供程序定义了基准值。如果未指定基准值,则使用默认设置值零。

  • 集群可能同时包含 Amazon EC2 Auto Scaling 组容量提供程序和 Fargate 容量提供程序。但是,容量提供程序策略只能包含 Amazon EC2 Auto Scaling 组或 Fargate 容量提供程序,而不能同时包含两者。

  • 集群可能包含使用两个容量提供程序和两种启动类型的服务和独立任务的组合。服务可以更新为使用容量提供程序策略而不是启动类型。但是在执行此操作时必须强制实施新部署。

  • Amazon ECS 支持 Amazon EC2 Auto Scaling 暖池。暖池是一组准备投入使用的预初始化 Amazon EC2 实例。每当您的应用程序需要横向扩展时,Amazon EC2 Auto Scaling 都会使用暖池中的预初始化实例,而不是启动冷实例,这允许运行任何最终初始化过程,然后将实例投入使用。有关更多信息,请参阅 为 Amazon ECS Amazon EC2 Auto Scaling 组配置预初始化的实例

有关创建 Amazon EC2 Auto Scaling 启动模板的更多信息,请参阅《Amazon EC2 Auto Scaling 用户指南》中的 Amazon EC2 Auto Scaling 启动模板。有关创建 Amazon EC2 Auto Scaling 组的更多信息,请参阅《Amazon EC2 Auto Scaling 用户指南》中的 Amazon EC2 Auto Scaling 组