擴展 Amazon EC2 Auto Scaling 冷卻時間 - Amazon EC2 Auto Scaling

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

擴展 Amazon EC2 Auto Scaling 冷卻時間

重要

依最佳實務,建議您不要使用簡易擴展政策和擴展冷卻時間。目標追蹤擴展政策或步進擴展政策的擴展效能更佳。針對隨擴展指標減少或增加而依比例變更您 Auto Scaling 群組大小的擴展政策,我們建議使用目標追蹤而非簡易擴展或步進擴展。

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

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

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

考量事項

下列考量適用於使用簡易擴展政策和擴展冷卻:

  • 目標追蹤和步進擴展政策可以立即啟動水平擴展活動,而無需等待冷卻時間結束。反之,每當 Auto Scaling 群組啟動執行個體時,個別執行個體都會有暖機期。如需詳細資訊,請參閱設定 Auto Scaling 群組的預設執行個體暖機期

  • 當橫向擴展活動正在進行時,會封鎖所有目標追蹤和步進擴展向內擴展活動,直到執行個體完成暖機。當 Auto Scaling 群組處於冷卻時間時,縮減活動也可能延遲。

  • 當已排定的動作在已排定的時間開始時,它還會立即啟動擴展活動,而無須等候冷卻時間結束。

  • 如果執行個體狀態不佳,Amazon EC2 Auto Scaling 不會等待冷卻時間結束,然後再取代此運作狀態不佳的執行個體。

  • 當啟動或終止多個執行個體時,冷卻時間 (預設冷卻時間或擴展政策特定冷卻時間) 會在最後一個執行個體完成啟動或終止時,開始生效。

  • 在手動擴展 Auto Scaling 群組時,預設並不會等待冷卻時間完成。不過,當您使用 AWS CLI 或 SDK 手動擴展時,您可以覆寫此行為並遵循預設冷卻時間。

  • 根據預設,ELB 會等待 300 秒來完成取消註冊 (連線耗盡) 程序。如果群組位於 ELB 負載平衡器後方,則會等待終止的執行個體取消註冊,再開始冷卻時間。

生命週期關聯可能會導致額外延遲

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

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

變更預設冷卻時間

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

變更預設冷卻時間 (主控台)

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

變更預設冷卻時間 (AWS CLI)

使用以下命令變更新的或現有 Auto Scaling 群組的預設冷卻時間。如果未定義預設冷卻時間,則使用預設值 300 秒。

要確認預設冷卻時間的值,請使用 describe-auto-scaling-groups 命令。

為特定的簡單擴展政策設定冷卻時間

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

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

要在主控台中建立或更新簡易擴展政策,請在建立群組後選擇 Automatic scaling (自動擴展) 索引標籤。若要使用 建立或更新簡單的擴展政策 AWS CLI,請使用 put-scaling-policy 命令。如需詳細資訊,請參閱步進和簡易擴展政策