本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Amazon EC2 Auto Scaling 的終止政策
終止政策提供 Amazon EC2 Auto Scaling 依特定順序終止執行個體時遵循的條件。根據預設,Amazon EC2 Auto Scaling 會使用終止政策,其設計旨在先終止使用過時組態的執行個體。您可以變更終止政策,以控制哪些執行個體最需要先終止。
當 Amazon EC2 Auto Scaling 終止執行個體時,它會嘗試在為 Auto Scaling 群組啟用的可用區域之間維持平衡。維持區域平衡優先於終止政策。如果某個可用區域具有比其他可用區域更多的執行個體,Amazon EC2 Auto Scaling 會先將終止政策套用至不平衡的區域。如果可用區域是平衡的,則會在所有區域套用終止政策。
預設終止政策的運作方式
當 Amazon EC2 Auto Scaling 需要終止執行個體時,它會先識別哪個可用區域 (或區域) 具有最多執行個體,以及至少一個未受到縮減保護的執行個體。然後,它會繼續評估已識別可用區域內未受保護的執行個體,如下所示:
使用過時組態的執行個體
-
對於使用啟動範本的群組 – 判斷是否有任何執行個體使用過時的組態,依此順序排定優先順序:
-
首先,檢查使用啟動組態啟動的執行個體。
-
然後,檢查使用不同啟動範本而非目前啟動範本啟動的執行個體。
-
最後,使用最新版本的啟動範本檢查執行個體。
-
-
對於使用啟動組態的群組 – 判斷是否有任何執行個體使用最舊的啟動組態。
如果找不到具有過時組態的執行個體,或者有多個執行個體可供選擇,Amazon EC2 Auto Scaling 會考慮下一個接近下一個帳單小時的執行個體條件。
接近下一個計費小時的執行個體
判斷符合先前條件的任何執行個體是否最接近下一個帳單小時。如果多個執行個體同等接近,請隨機終止一個執行個體。這可協助您最大限度地使用每小時計費的執行個體。不過,大多數 EC2 用量現在都是每秒計費,因此此最佳化可提供較少的好處。如需詳細資訊,請參閱 Amazon EC2 定價
下列流程圖說明預設終止政策如何適用於使用啟動範本的群組。

預設終止政策和混合執行個體群組
Amazon EC2 Auto Scaling 會在終止混合執行個體群組中的執行個體時套用其他條件。
當 Amazon EC2 Auto Scaling 需要終止執行個體時,它會先識別應該根據群組設定終止哪些購買選項 (Spot 或隨需)。這可確保群組隨著時間的推移,將 Spot 和隨需執行個體的指定比率趨向。
然後,它會在每個可用區域內獨立套用終止政策。它決定要在哪個 Spot 或隨需執行個體中終止可用區域,以保持可用區域平衡。相同的邏輯會套用至混合執行個體群組,並針對執行個體類型定義權重。
在每個區域中,預設終止政策的運作方式如下,以決定哪些未受保護的執行個體可在已識別的購買選項中終止:
-
判斷是否可以終止任何執行個體,以改善與 Auto Scaling 群組指定配置策略的一致性。如果未識別執行個體以進行最佳化,或者有多個執行個體可供選擇,則評估會繼續進行。
-
判斷是否有任何執行個體使用過時的組態,並依下列順序排定優先順序:
-
首先,檢查使用啟動組態啟動的執行個體。
-
然後,檢查使用不同啟動範本而非目前啟動範本啟動的執行個體。
-
最後,使用最新版本的啟動範本檢查執行個體。
如果找不到具有過時組態的執行個體,或者有多個執行個體可供選擇,則評估會繼續進行。
-
-
判斷是否有任何執行個體最接近下一個計費小時。如果多個執行個體同樣接近,請隨機選擇一個執行個體。
預先定義的終止政策
您可以選擇下列預先定義的終止政策:
-
Default
– 根據預設終止政策終止執行個體。 -
AllocationStrategy
– 終止 Auto Scaling 群組中的執行個體,以將剩餘的執行個體與正在終止之執行個體類型的配置策略 (Spot 執行個體或隨需執行個體) 保持一致。當您偏好使用的執行個體類型變更時,此政策非常有用。如果 Spot 配置策略是lowest-price
,您可以逐步重新平衡 Spot 執行個體在 N 個最低價 Spot 集區中的分佈。如果 Spot 配置策略是capacity-optimized
,您可以逐步重新平衡 Spot 執行個體在有更多可用 Spot 容量的 Spot 集區中的分佈。您也可以使用優先順序較高類型的隨需執行個體逐步取代優先順序較低類型的隨需執行個體。 -
OldestLaunchTemplate
– 終止具有最舊啟動範本的執行個體。使用此政策時,使用非最新啟動範本的執行個體會先被終止,然後是使用目前啟動範本最舊版本的執行個體。當您更新群組,並從先前的組態中淘汰執行個體時,此政策非常有用。 -
OldestLaunchConfiguration
– 終止具有最舊啟動組態的執行個體。當您更新群組,並從先前的組態中淘汰執行個體時,此政策非常有用。使用此政策時,使用非最新啟動組態的執行個體會先被終止。 -
ClosestToNextInstanceHour
– 終止最接近下一個計費小時的執行個體。此政策有助於充分利用您每小時計費的執行個體。 -
NewestInstance
– 終止群組中最新的執行個體。此政策非常實用,當您測試新的啟動組態時,但又不想讓在生產環境中。 -
OldestInstance
– 終止群組中最舊的執行個體。當您將 Auto Scaling 群組中的執行個體升級為新的 EC2 執行個體類型時,此選項非常實用。您可以逐步取代舊類型的執行個體,將它們換成新的類型。注意
不論使用何種終止政策,Amazon EC2 Auto Scaling 一律會先平衡可用區域之間的執行個體。因此,您可能會遇到某些較新的執行個體在較舊的執行個體之前終止的情況。例如,最近有新增的可用區域,或是某個可用區域的執行個體比另一個由群組使用的可用區域還要多等情況。