本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 服務參數最佳實務
為確保應用程式零停機時間,部署程序如下:
-
啟動新的應用程式容器,同時讓現有容器保持執行狀態。
-
檢查新容器是否正常運作。
-
停止舊容器。
根據部署組態與叢集中可用、未預留的空間量,可能需要多次重複此程序才能完成以新任務取代所有舊任務的工作。
可以使用下列兩種服務組態選項來修改任務數量:
-
minimumHealthyPercent:100% (預設)服務在部署期間必須保持在
RUNNING狀態的任務數量下限。此值是無條件進位到最接近整數的desiredCount的百分比。此參數可讓您不使用額外的叢集容量進行部署。 -
maximumPercent:200% (預設)服務在部署期間允許保持在
RUNNING或PENDING狀態的任務數量上限。此值是無條件捨去到最接近整數的desiredCount的百分比。
範例:預設組態選項
假設下列服務具有六項任務,部署在總共可容納八項任務的叢集中。預設服務組態選項不允許部署低於六個所需任務的 100%。
部署程序如下:
-
目標是取代六項任務。
-
排程器會啟動兩項新任務,因為預設設定要求必須有六項執行中任務。
現在有六項現有任務與兩項新任務。
-
排程器會停止兩項現有任務。
現在有四項現有任務與兩項新任務。
-
排程器會再啟動兩項新任務。
現在有四項現有任務與四項新任務。
-
排程器會關閉兩項現有任務。
現在有兩項現有任務與四項新任務。
-
排程器會再啟動兩項新任務。
現在有兩項現有任務與六項新任務
-
排程器會關閉最後兩項現有任務。
現在有六項新任務。
在上述範例中,如果使用選項的預設值,則需要等待 2.5 分鐘,才能啟動每項新任務。此外,負載平衡器可能必須等待 5 分鐘,舊任務才能停止。
範例:修改 minimumHealthyPercent
您可以將 minimumHealthyPercent 值設定為 50%,以加速部署。
假設下列服務具有六項任務,部署在總共可容納八項任務的叢集中。部署程序如下:
-
目標是取代六項任務。
-
排程器會停止三項現有任務。
仍有三項現有任務在執行中,符合
minimumHealthyPercent值。 -
排程器會啟動五項新任務。
現在有三項現有任務與五項新任務。
-
排程器會停止剩餘的三項現有任務。
現在有五項新任務
-
排程器會啟動最後一項新任務。
現在有六項新任務。
範例:修改叢集可用空間
您也可以新增額外的可用空間,以便執行更多任務。
假設下列服務具有六項任務,部署在總共可容納十項任務的叢集中。部署程序如下:
-
目標是取代現有任務。
-
排程器會停止三項現有任務,
現在有三項現有任務。
-
排程器會啟動六項新任務。
現在有三項現有任務與六項新任務
-
排程器會停止三項現有任務。
現在有六項新任務。
建議
如果任務閒置一段時間且使用率不高,請針對服務組態選項使用下列值。
-
minimumHealthyPercent:50% -
maximumPercent:200%