將檢查點新增至執行個體重新整理 - Amazon EC2 Auto Scaling

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

將檢查點新增至執行個體重新整理

使用執行個體重新整理時,您可以選擇分階段取代執行個體,以便隨時對執行個體執行驗證。若要分階段執行取代,您可以新增檢查點,即執行個體重新整理暫停的時間點。使用檢查點可讓您更好地控制選擇更新 Auto Scaling 群組的方式。它可幫助您確認應用程式以可靠、可預測的方式運作。

運作方式

啟動執行個體重新整理時,您可以將檢查點指定為 Auto Scaling 群組中執行個體總數的百分比。這些檢查點指出 Auto Scaling 群組中必須是新執行個體的最小百分比,才能考慮到達檢查點。例如,如果您的檢查點是[20, 50, 100],則當 20% 的執行個體為新的執行個體時,就會到達第一個檢查點,第二個檢查點是新的,而在所有執行個體都是新的時候達到最後一個檢查點。

Amazon EC2 Auto Scaling 會加速執行個體更換作業,以遵循指定的檢查點百分比,同時維持群組的最低健康百分比。為了達到檢查點百分比,Amazon EC2 Auto Scaling 有時會取代較少的執行個體,但絕不會超過狀態良好最低百分比允許的比例。

請考慮下列具有 10 個執行個體的 Auto Scaling 群組。檢查點百分比為 [20,50,100],狀態良好最低百分比為 80%,狀態良好最高百分比為 100%。為了維持狀態良好最低百分比,一次只會取代兩個執行個體。下圖概括了到達檢查點之前取代執行個體的程序。

此圖表顯示檢查點如何影響執行個體重新整理的流程。

在上述範例中,每個啟動的新執行個體都有一個執行個體預熱期間。您也可能有一個 lifecycle hook,會使執行個體進入等待狀態,然後在啟動或終止時執行自訂動作。

Amazon EC2 Auto Scaling 會針對每個檢查點發出事件,但 100% 完整檢查點除外。您可以新增 EventBridge 規則,將事件傳送到目標 (例如 Amazon SNS)。如此一來,當您可以執行所需的驗證時,系統就會通知您。如需詳細資訊,請參閱 為執行個體重新整理事件建 EventBridge 立

考量事項

使用檢查點時,請謹記以下幾點考量:

  • 檢查點是以百分比為基礎,因此要取代的執行個體數量會隨著群組的大小而變更。當擴充活動發生且群組的大小增加時,進行中的作業可能會再次到達檢查點。如果發生這種情況,Amazon EC2 Auto Scaling 會傳送另一個通知,並在繼續之前重複檢查點之間的等待時間。

  • 在某些情況下,可以略過檢查點。例如,假設 Auto Scaling 群組有兩個執行個體,且檢查點百分比為 [10,40,100]。第一個執行個體遭取代後,Amazon EC2 Auto Scaling 會計算 50% 的群組已遭取代。因為 50% 高於前兩個檢查點,其會略過第一個檢查點 (10),並傳送第二個檢查點 (40) 的通知。

  • 取消操作會停止進行任何進一步的取代。如果取消操作或在到達最後一個檢查點前失敗,任何已遭取代的執行個體都不會回復至先前的組態。

  • 在部分重新整理的情況下,當您重新執行操作時,Amazon EC2 Auto Scaling 不會從最後一個檢查點重新啟動,也不會僅在較舊執行個體遭取代時停止。但是,在將目標鎖定於新的執行個體之前,其會先針對較舊執行個體進行取代。

  • 當檢查點的百分比相對於群組中的執行個體數目過低時,實際完成百分比可能會高於該檢查點的百分比。例如,假設檢查點的百分比為 20%,而群組有四個執行個體。如果 Amazon EC2 Auto Scaling 取代了四個執行個體中的其中一個,則取代的實際百分比 (25%) 將高於檢查點的百分比 (20%)。

  • 達到檢查點之後,顯示的整體完成百分比不會更新,直到執行個體完成完成後才會更新。例如,您的檢查點百分比[20,50]的檢查點延遲為 15 分鐘,最低健康百分比為 80%。您的「Auto Scaling」群組有 10 個執行個體,並進行下列取代:

    • 0:00:用兩個新執行個體取代兩個較舊執行個體。

    • 0:10:兩個新執行個體完成暖機。

    • 0:25:用兩個新執行個體取代兩個較舊執行個體。(為了維持狀態良好最低百分比,只會取代兩個執行個體。)

    • 0:35:兩個新執行個體完成暖機。

    • 0:35:用一個新執行個體取代一個較舊執行個體。

    • 0:45:一個新執行個體完成暖機。

    0:35 時,操作停止啟動新執行個體。由於新執行個體沒有完成暖機,完成百分比未準確反映已完成取代的數量 (50%)。新執行個體在 0:45 完成預熱期間之後,完成百分比會顯示 50%。