Amazon ECS 服务参数的最佳实践
为确保应用程序不会停机,按照如下部署过程操作:
-
启动新的应用程序容器,同时保持现有容器运行。
-
检查新容器是否正常运行。
-
停止旧容器。
根据您的部署配置和集群中空闲的未预留空间量,可能需要多轮操作完成此操作,才能将所有旧任务替换为新任务。
您可以使用两个 ECS 服务配置选项修改数字:
-
minimumHealthyPercent
:100%(默认值)服务在部署期间必须保持在
RUNNING
状态的任务数下限。其表示为向上取整到最近整数的desiredCount
的百分比。此参数使您不必使用额外的集群容量就能部署。 -
maximumPercent
:200%(默认值)服务在部署期间允许处于
RUNNING
或PENDING
状态的任务数上限。其表示为向下取整到最近整数的desiredCount
的百分比。
考虑以下服务,它有 6 个棕褐色任务,部署在一个拥有总共可容纳 8 个任务的空间的集群中。默认的 Amazon ECS 服务配置选项不允许部署下降到低于六个所需任务的 100%。
![该图显示了可容纳八个任务的集群中的六个任务。](images/deployment-1.png)
部署过程如下:
-
目标是将棕褐色任务替换为蓝色任务。
-
计划程序会启动两个新的蓝色任务,因为默认设置要求有六个正在运行的任务。
-
计划程度会停止其中两个棕褐色任务,因为总共将有六个任务(四个棕褐色和两个蓝色)。
-
计划程序会启动另外两个蓝色任务。
-
计划程序关闭了两个棕褐色任务。
-
计划程序会启动另外两个蓝色任务。
-
计划程序关闭了最后两个棕褐色任务。
在上面的示例中,如果您使用选项的默认值,则每启动一个新任务都有 2.5 分钟的等待时间。此外,负载均衡器可能需要等待 5 分钟才能停止旧任务。
您可以通过将 minimumHealthyPercent
值设置为 50% 来加快部署速度。
考虑以下服务,它有 6 个棕褐色任务,部署在一个拥有总共可容纳 8 个任务的空间的集群中。
![该图显示了可容纳八个任务的集群中的六个任务,且 minimumHealthyPercent 值为 50%。](images/deployment-2.png)
部署过程如下:
-
目标是将棕褐色任务替换为蓝色任务。
-
计划程序会停止其中三个棕褐色任务。仍然有三个符合
minimumHealthyPercent
值的棕褐色任务在运行。 -
计划程序启动五个蓝色任务。
-
计划程序会停止剩余的三个棕褐色任务。
-
计划程序启动最后的蓝色任务。
您还可以添加额外的可用空间,以便可以运行额外的任务。
![该图显示了可容纳八个任务的集群中的六个任务。](images/deployment-3.png)
部署过程如下:
-
目标是将棕褐色任务替换为蓝色任务。
-
计划程序会停止其中三项棕褐色任务
-
计划程序启动六个蓝色任务
-
计划程序会停止三个棕褐色任务。
当您的任务闲置一段时间并且利用率不高时,请使用以下值作为 Amazon ECS 服务配置选项。
-
minimumHealthyPercent
:50% -
maximumPercent
:200%