Amazon ECS 容量提供程序 - Amazon ECS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Amazon ECS 容量提供程序

Amazon ECS容量提供程序用于管理集群中的任务使用的基础设施。每个集群可以有一个或多个容量提供程序和一个可选的默认容量提供程序策略。容量提供程序策略确定任务在集群的容量提供程序之间的分布方式。运行独立任务或创建服务时,您可以使用集群的默认容量提供程序策略,也可以指定容量提供程序策略来取代集群的默认策略。

容量提供程序概念

容量提供程序由以下组件组成。

容量提供程序

A容量提供程序与集群关联,并在容量提供程序策略中使用来确定运行任务的基础设施。

适用于Amazon ECS上的AWS Fargate用户,则有一个FARGATEFARGATE_SPOT容量提供程序。这些区域有:AWS Fargate容量提供程序已保留,无需创建,也无法删除它们。将它们与群集关联后,您可以将它们添加到容量提供商策略中。有关更多信息,请参阅 AWS Fargate 容量提供程序

默认容量提供程序策略

A默认容量提供程序策略关联到Amazon ECS集群。当未指定自定义容量提供程序策略或启动类型时,这将确定在集群中创建服务或运行独立任务的容量提供程序策略。为每个集群定义默认容量提供程序策略被认为是最佳实践。

容量提供程序策略

A容量提供程序策略当群集的默认容量提供程序策略不能满足您的需求时,创建服务或运行独立任务时指定。

只有已与集群关联状态为 ACTIVEUPDATING 的容量提供程序才能在容量提供程序策略中使用。容量提供程序可以在群集创建过程中与群集关联,也可以在创建集群后使用 PutCluster 容量提供程序 API。

容量提供程序策略由一个或多个容量提供程序组成。可选base权重值以更精细地控制容量提供程序。

基准值指明在指定的容量提供程序上至少运行多少个任务。在一个容量提供程序策略中,只能有一个容量提供程序策略定义了基准。

权重值指明应使用指定容量提供程序的已启动任务总数的相对百分比。例如,如果您的策略包含两个容量提供程序,并且两个容量提供程序的权重均为 1,那么当满足基准时,这些任务将在两个容量提供程序之间均匀分配。按照相同的逻辑,如果您为 capacityProviderA 指定权重 1,并为 capacityProviderB 指定权重 4,那么运行的每一个任务均使用 capacityProviderA,四个任务将使用 capacityProviderB

容量提供程序注意事项

使用容量提供程序时应考虑以下因素:

  • 容量提供程序必须与集群关联才能在容量提供程序策略中指定。

  • 指定容量提供程序策略时,可指定的容量提供程序数限制为六个。

  • 使用Auto Scaling 组容量提供程序无法更新为使用Fargate容量提供商,反之亦然。

  • 在容量提供程序策略中,如果没有weight值为控制台中的容量提供程序指定,则默认值为1使用。如果使用 API 或AWS CLI,默认值为0使用。

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

  • 在容量提供程序策略中,只有一个容量提供程序可以具有base值定义。如果未指定基本值,则默认值0使用。

  • 集群可能包含两种Auto Scaling组容量提供程序和Fargate容量提供程序,但容量提供程序策略只能包含其中一种容量提供程序,而不能同时包含两者。

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

  • 启用托管终止保护后,还必须启用托管调整,否则托管终止保护将不起作用。

  • 在对服务使用 传统负载均衡器 时,不支持使用容量提供程序。