Amazon Elastic Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

服务

利用 Amazon ECS,您可在 Amazon ECS 集群中同时运行和管理指定数量 (以下简称“预期数量”) 的任务定义实例。这称为服务。如果您的任何任务应该出于任何原因失败或停止,Amazon ECS 服务计划程序将启动另一个任务定义实例来替换它并在服务中保留预期数量的任务。

除了在服务中保留预期数量的任务之外,您还可选择借助负载均衡器运行您的服务。负载均衡器将在与服务关联的各个任务间分配流量。

服务概念

  • 如果服务中的某个任务停止,表明该任务已终止,一个新的任务已启动。此过程将持续到您的服务达到预期的运行任务的数量。

  • 服务计划程序包括用来限制任务反复启动失败时重启任务的频率的逻辑。如果一个任务尚未进入 RUNNING 状态便停止 (取决于具有 startedAt 时间戳的任务),则服务计划程序开始以增量方式减缓启动尝试,并会发出一条服务事件消息。此行为可防止不必要的资源用于失败的任务上,从而让您有机会解决问题。服务更新后,服务计划程序恢复正常行为。有关更多信息,请参阅 服务限制逻辑服务事件消息

  • 您可选择借助负载均衡器运行您的服务。有关更多信息,请参阅 服务负载均衡

  • 您可选择为您的服务指定部署配置。在部署(通过更新任务定义或预期数量的服务触发)期间,服务计划程序将使用最小和最大正常运行百分比参数确定部署策略。有关更多信息,请参阅 服务定义参数

  • 服务计划程序启动新任务或停止运行使用 Fargate 启动类型的任务时,它会尝试在您的服务中的可用区之间保持平衡。

  • 当服务计划程序使用 EC2 启动类型启动新任务时,计划程序使用以下逻辑:

    • 确定您的集群中可支持您的服务的任务定义的容器实例(例如,它们有必需的 CPU、内存、端口和容器实例属性)。

    • 确定哪些容器实例满足为该服务定义的任何放置约束。

    • 如果已定义放置策略,请使用该策略来从剩余候选项中选择一个实例。

    • 如果尚未定义放置策略,请使用以下逻辑对群集中各个可用区的任务进行均衡:

      • 按此服务在与实例相同的可用区中的运行任务的数量从小到大的顺序对有效容器实例进行排序。例如,如果 A 区有一个正在运行的服务任务,B 区和 C 区都没有正在运行的服务任务,则认为在 B 区或 C 区中的有效容器实例中最适合放置任务。

      • 将新的服务任务放在最佳可用区中的有效容器实例上(基于之前的步骤),并优先使用具有此服务的最小数量的运行任务的容器实例。

  • 当服务计划程序停止运行任务时,它将尝试在您的群集的可用区之间保持平衡。对于使用 EC2 启动类型的任务,计划程序使用以下逻辑:

    • 如果已定义放置策略,请使用该策略来选择要终止的任务。例如,如果某服务已定义了可用区分布策略,则选择一项任务终止,以让剩下的任务保持最佳分布。

    • 如果尚未定义放置策略,请使用以下逻辑来为群集中的各个可用区保持均衡:

      • 根据此服务在与实例相同的可用区中的运行任务的数量,按从大到小的顺序对容器实例进行排序。例如,如果 A 区有 1 个正在运行的服务任务,B 区和 C 区各有 2 个正在运行的服务任务,则认为 B 区或 C 区中的容器实例最适合终止任务。

      • 在最佳可用区中的容器实例上停止任务(基于之前的步骤),并优先使用具有此服务的最大数量的运行任务的容器实例。

本页内容: