

# Amazon ECS 服务参数的最佳实践
<a name="service-options"></a>

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

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

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

1. 停止旧容器。

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

您可以使用两个服务配置选项修改数字：
+ `minimumHealthyPercent`：100%（默认值）

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

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

**示例：默认配置选项**

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

部署过程如下：

1. 目标是替换这六个任务。

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

   现在有六个现有任务和两个新任务。

1. 计划程序停止两个现有任务。

   现在有四个现有任务和两个新任务。

1. 计划程序启动另外两个新任务。

   现在有四项现有任务和四项新任务。

1. 计划程序关闭两个现有任务。

   现在有两个现有任务和四个新任务。

1. 计划程序启动另外两个新任务。

   现在有两个现有任务和六个新任务

1. 计划程序关闭最后两个现有任务。

   现在有六个新任务。

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

**示例：修改 `minimumHealthyPercent`**

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

考虑以下服务：它有六个任务，部署在一个拥有总共可容纳八个任务的空间的集群中。部署过程如下：

1. 目标是替换这六个任务。

1. 计划程序停止三个现有任务。

   仍然有三个符合 `minimumHealthyPercent` 值的现有任务在运行。

1. 计划程序启动五个新任务。

   现在有三个现有任务和五个新任务。

1. 计划程序停止剩余的三个任务。

   现在有五个新任务

1. 计划程序启动最后一个新任务。

   现在有六个新任务。

**示例：修改集群可用空间**

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

考虑以下服务：它有六个任务，部署在一个拥有总共可容纳十个任务的空间的集群中。部署过程如下：

1. 目标是替换现有任务。

1. 计划程序停止三个现有任务。

   现在有三个现有任务。

1. 计划程序启动六个新任务。

   有三个现有任务和六个新任务

1. 计划程序停止三个现有任务。

   现在有六个新任务。

**建议**

当您的任务闲置一段时间并且利用率不高时，请使用以下值作为服务配置选项。
+ `minimumHealthyPercent`：50%
+ `maximumPercent`：200% 