

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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% 