Amazon ECS 服务参数的最佳实践 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon ECS 服务参数的最佳实践

为确保应用程序不会停机,按照如下部署过程操作:

  1. 启动新的应用程序容器,同时保持现有容器运行。

  2. 检查新容器是否正常运行。

  3. 停止旧容器。

根据您的部署配置和集群中空闲的未预留空间量,可能需要多轮操作完成此操作,才能将所有旧任务替换为新任务。

您可以使用两个 ECS 服务配置选项修改数字:

  • minimumHealthyPercent:100%(默认值)

    服务在部署期间必须保持在 RUNNING 状态的任务数下限。其表示为向上取整到最近整数的 desiredCount 的百分比。此参数使您不必使用额外的集群容量就能部署。

  • maximumPercent:200%(默认值)

    服务在部署期间允许处于 RUNNINGPENDING 状态的任务数上限。其表示为向下取整到最近整数的 desiredCount 的百分比。

考虑以下服务,它有 6 个棕褐色任务,部署在一个拥有总共可容纳 8 个任务的空间的集群中。默认的 Amazon ECS 服务配置选项不允许部署下降到低于六个所需任务的 100%。

该图显示了可容纳八个任务的集群中的六个任务。

部署过程如下:

  1. 目标是将棕褐色任务替换为蓝色任务。

  2. 计划程序会启动两个新的蓝色任务,因为默认设置要求有六个正在运行的任务。

  3. 计划程度会停止其中两个棕褐色任务,因为总共将有六个任务(四个棕褐色和两个蓝色)。

  4. 计划程序会启动另外两个蓝色任务。

  5. 计划程序关闭了两个棕褐色任务。

  6. 计划程序会启动另外两个蓝色任务。

  7. 计划程序关闭了最后两个棕褐色任务。

在上面的示例中,如果您使用选项的默认值,则每启动一个新任务都有 2.5 分钟的等待时间。此外,负载均衡器可能需要等待 5 分钟才能停止旧任务。

您可以通过将 minimumHealthyPercent 值设置为 50% 来加快部署速度。

考虑以下服务,它有 6 个棕褐色任务,部署在一个拥有总共可容纳 8 个任务的空间的集群中。

该图显示了可容纳八个任务的集群中的六个任务,且 minimumHealthyPercent 值为 50%。

部署过程如下:

  1. 目标是将棕褐色任务替换为蓝色任务。

  2. 计划程序会停止其中三个棕褐色任务。仍然有三个符合 minimumHealthyPercent 值的棕褐色任务在运行。

  3. 计划程序启动五个蓝色任务。

  4. 计划程序会停止剩余的三个棕褐色任务。

  5. 计划程序启动最后的蓝色任务。

您还可以添加额外的可用空间,以便可以运行额外的任务。

该图显示了可容纳八个任务的集群中的六个任务。

部署过程如下:

  1. 目标是将棕褐色任务替换为蓝色任务。

  2. 计划程序会停止其中三项棕褐色任务

  3. 计划程序启动六个蓝色任务

  4. 计划程序会停止三个棕褐色任务。

当您的任务闲置一段时间并且利用率不高时,请使用以下值作为 Amazon ECS 服务配置选项。

  • minimumHealthyPercent:50%

  • maximumPercent:200%