

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

# 擴展 Amazon EC2 Auto Scaling 冷卻時間
<a name="ec2-auto-scaling-scaling-cooldowns"></a>

**重要**  
依最佳實務，建議您不要使用簡易擴展政策和擴展冷卻時間。目標追蹤擴展政策或步進擴展政策的擴展效能更佳。針對隨擴展指標減少或增加而依比例變更您 Auto Scaling 群組大小的擴展政策，我們建議使用[目標追蹤](as-scaling-target-tracking.md)而非簡易擴展或步進擴展。

當您為 Auto Scaling 群組建立簡易擴展政策時，我們建議您同時設定擴展冷卻時間。

在 Auto Scaling 群組啟動或終止執行個體後，其會先等待冷卻時間結束，然後才能啟動簡易擴展政策啟動的任何進一步擴展活動。冷卻時間的目的是讓您的 Auto Scaling 群組穩定，並防止它在先前擴展活動的效果顯示之前啟動或終止其他執行個體。

例如，假設 CPU 使用率的簡易擴展政策建議啟動兩個執行個體。Amazon EC2 Auto Scaling 會啟動兩個執行個體，然後暫停擴展活動，直到冷卻時間結束。在冷卻時間結束後，任何簡易擴展政策啟動的擴展活動都可以繼續。如果 CPU 使用率再次違反高警示閾值，Auto Scaling 群組會再次水平擴展，且冷卻時間也會再次作用。但是，如果兩個執行個體已足夠降低指標值，群組便會維持目前的大小。

**Topics**
+ [考量事項](#cooldown-considerations)
+ [生命週期關聯可能會導致額外延遲](#cooldowns-lifecycle-hooks)
+ [變更預設冷卻時間](#set-default-cooldown)
+ [為特定的簡單擴展政策設定冷卻時間](#cooldowns-scaling-specific)

## 考量事項
<a name="cooldown-considerations"></a>

下列考量適用於使用簡易擴展政策和擴展冷卻：
+ 目標追蹤和步進擴展政策可以立即啟動水平擴展活動，而無需等待冷卻時間結束。反之，每當 Auto Scaling 群組啟動執行個體時，個別執行個體都會有暖機期。如需詳細資訊，請參閱[設定 Auto Scaling 群組的預設執行個體暖機期](ec2-auto-scaling-default-instance-warmup.md)。
+ 當橫向擴展活動正在進行時，會封鎖所有目標追蹤和步進擴展向內擴展活動，直到執行個體完成暖機。當 Auto Scaling 群組處於冷卻時間時，縮減活動也可能延遲。
+ 當已排定的動作在已排定的時間開始時，它還會立即啟動擴展活動，而無須等候冷卻時間結束。
+ 如果執行個體狀態不佳，Amazon EC2 Auto Scaling 不會等待冷卻時間結束，然後再取代此運作狀態不佳的執行個體。
+ 當啟動或終止多個執行個體時，冷卻時間 (預設冷卻時間或擴展政策特定冷卻時間) 會在最後一個執行個體完成啟動或終止時，開始生效。
+ 在手動擴展 Auto Scaling 群組時，預設並不會等待冷卻時間完成。不過，當您使用 AWS CLI 或 SDK 手動擴展時，您可以覆寫此行為並遵循預設冷卻時間。
+ 依預設，Elastic Load Balancing 會等待 300 秒以完成取消註冊 (連接耗盡) 程序。如果該群組在 Elastic Load Balancing 負載平衡器之後，其會等待終止執行個體取消註冊，再開始冷卻時間。

## 生命週期關聯可能會導致額外延遲
<a name="cooldowns-lifecycle-hooks"></a>

如果叫用 [lifecycle hook](lifecycle-hooks.md)，冷卻時間會在您完成生命週期動作後或逾時期間結束後開始。例如，假設有一個 Auto Scaling 群組，其具備可用於執行個體啟動的 lifecycle hook 的。當應用程式提高需求，群組啟動執行個體以增加容量。由於具備一個 lifecycle hook，執行個體進入等待狀態，且擴展活動會由於簡易擴展政策而暫停。當執行個體進入 `InService` 狀態時，冷卻時間開始。在冷卻時間結束後，會繼續簡易擴展政策活動。

啟用 Elastic Load Balancing 時，為了縮減規模，當為終止選取的執行個體開始連線耗盡 （取消註冊延遲） 時，冷卻時間就會開始。冷卻時間不會等待連線耗盡完成，也不會等待生命週期掛鉤完成其動作。這表示只要縮減事件的結果反映在 群組的容量中，任何因簡單擴展政策而導致的擴展活動都可以繼續。否則，等待完成所有三個活動 (連接耗盡、lifecycle hook 和冷卻時間) 會大幅增加 Auto Scaling 群組暫停擴展所需的時間。

## 變更預設冷卻時間
<a name="set-default-cooldown"></a>

一開始在 Amazon EC2 Auto Scaling 主控台中建立 Auto Scaling 群組時，您無法設定預設冷卻時間。依預設，此冷卻時間期間設為 300 秒 (5 分鐘)。如有需要，您可以在建立群組後進行更新。

**變更預設冷卻時間 (主控台)**  
建立 Auto Scaling 群組後，在 **Details** (詳細資訊) 索引標籤上，依次選取 **Advanced configurations** (進階組態)、**Edit** (編輯)。對於 **Default cooldown** (預設冷卻時間)，根據您的執行個體啟動時間或其他應用程式需求來選擇時間量。

**變更預設冷卻時間 (AWS CLI)**  
使用以下命令變更新的或現有 Auto Scaling 群組的預設冷卻時間。如果未定義預設冷卻時間，則使用預設值 300 秒。
+ [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)
+ [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)

要確認預設冷卻時間的值，請使用 [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) 命令。

## 為特定的簡單擴展政策設定冷卻時間
<a name="cooldowns-scaling-specific"></a>

依預設，所有簡易擴展政策都會使用為 Auto Scaling 群組定義的預設冷卻時間。如要設定特定簡易擴展政策的冷卻時間，請在建立或更新政策時使用選用的冷卻參數。在為政策指定冷卻時間時，它會覆寫預設冷卻時間。

擴展政策特定冷卻時間的常見用途之一是擴展政策。由於該政策終止執行個體，Amazon EC2 Auto Scaling 需要更少的時間來確定是否要終止額外的執行個體。終止執行個體的操作應會比啟動執行個體更快。因此，預設的 300 秒冷卻時間過長。在這種情況下，擴展政策特定的冷卻時間，其縮減政策的值較低，可以透過允許 群組更快地縮減規模，協助您降低成本。

要在主控台中建立或更新簡易擴展政策，請在建立群組後選擇 **Automatic scaling** (自動擴展) 索引標籤。若要使用 建立或更新簡單的擴展政策 AWS CLI，請使用 [put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scaling-policy.html) 命令。如需詳細資訊，請參閱[步進和簡易擴展政策](as-scaling-simple-step.md)。