設定 Amazon EC2 Auto Scaling 的終止政策 - Amazon EC2 Auto Scaling

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

設定 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 需要終止執行個體時,首先識別哪個可用區域 (或區域) 具有最多的執行個體,以及至少一個未受擴展保護的執行個體。然後,它會繼續評估已識別可用區域內未受保護的執行個體,如下所示:

使用過期組態的執行個體
  • 針對使用啟動範本的群組 — 判斷是否有任何執行個體使用過期的組態,並依下列順序排列優先順序:

    1. 首先,檢查使用啟動設定啟動的執行個體。

    2. 然後,檢查使用不同的啟動範本而非目前啟動範本啟動的執行個體。

    3. 最後,請使用目前啟動範本的最舊版本來檢查執行個體。

  • 針對使用啟動設定的群組 — 判斷是否有任何執行個體使用最舊的啟動設定。

如果找不到具有過期組態的執行個體,或者有多個執行個體可供選擇,Amazon EC2 Auto Scaling 會將接近下一個帳單小時的執行個體考慮下一個準則。

執行個體接近下一個帳單

判斷符合先前條件的執行個體是否最接近下一個帳單小時。如果多個實例同樣接近,則隨機終止一個實例。這可協助您充分利用每小時計費的執行個體。但是,大多數EC2用量現在都是以每秒計費,因此此優化提供的好處較少。如需詳細資訊,請參閱 Amazon EC2 定價

下列流程圖說明預設終止原則如何在使用啟動範本的群組中運作。

顯示 Auto Scaling 群組如何使用預設終止原則終止執行個體的流程圖。

預設終止政策和混合執行個體群組

Amazon EC2 Auto Scaling 會在終止混合執行個體群組中的執行個體時套用其他準則

當 Amazon EC2 Auto Scaling 需要終止執行個體時,會先根據群組的設定識別應終止哪個購買選項 (競價型或隨需)。這可確保群組會隨著時間的推移向 Spot 和隨需執行個體的指定比例趨勢。

然後,它會在每個可用區域內獨立套用終止原則。它決定要在哪個可用區域終止哪個 Spot 或隨需執行個體,以保持可用區域的平衡。同樣的邏輯也適用於具有針對執行個體類型定義權數的混合執行個體群組。

在每個區域內,預設終止政策的運作方式如下,以確定哪些未受保護的執行個體可以終止所識別的購買選項:

  1. 判斷是否可終止任何執行個體,以改善與 Auto Scaling 群組指定配置策略的一致性。如果沒有識別出要進行最佳化的執行個體,或有多個執行個體可供選擇,則評估會繼續進行。

  2. 判斷是否有任何執行個體使用過期的組態,並依下列順序排列優先順序:

    1. 首先,檢查使用啟動設定啟動的執行個體。

    2. 然後,檢查使用不同的啟動範本而非目前啟動範本啟動的執行個體。

    3. 最後,請使用目前啟動範本的最舊版本來檢查執行個體。

    如果找不到具有過期組態的執行個體,或有多個執行個體可供選擇,評估會繼續進行。

  3. 判斷是否有任何執行個體最接近下一個帳單小時。如果多個實例同樣接近,請隨機選擇一個實例。

預定義終止政策

您可以從下列預先定義的終止原則中選擇:

  • 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 始終會先平衡跨可用區域的執行個體。因此,您可能會遇到某些較新的執行個體在較舊的執行個體之前終止的情況。例如,最近有新增的可用區域,或是某個可用區域的執行個體比另一個由群組使用的可用區域還要多等情況。