執行個體重新整理如何在 Auto Scaling 群組中運作 - Amazon EC2 Auto Scaling

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

執行個體重新整理如何在 Auto Scaling 群組中運作

本主題說明執行個體重新整理的運作方式,並介紹如何有效使用執行個體重新整理所需的重要概念。

運作方式

若要重新整理 Auto Scaling 群組中的執行個體,您可以定義新的組態,其中包含應用程式的最新版本以及您要進行的任何其他更新。然後,啟動執行個體重新整理,根據該設定以新執行個體取代現有執行個體。

執行執行處理重新整理:

  1. 建立新的啟動範本,或使用所需的組態變更來更新現有範本,例如新的 Amazon 機器映像 (AMI)。如需詳細資訊,請參閱 為 Auto Scaling 群組建立啟動範本

  2. 使用 Amazon EC2 Auto Scaling 主控台或開發套件開始重新整理執行個體: AWS CLI

    • 指定您建立的新啟動範本或啟動範本版本。這將用於啟動新的實例。

    • 設定偏好的最小和最大健康百分比。這可控制要同時取代多少個執行個體,以及是否在終止舊執行個體之前啟動新執行個體。

    • 設定任何選擇性設定,例如:

      • 檢查點 — 在特定百分比的取代後暫停執行個體重新整理,以驗證進度。

      • 略過比對 — 將舊執行個體與新設定進行比較,並僅取代不相符的執行個體。當您從主控台啟動執行個體重新整理時,略過比對功能預設為開啟。

      • 多個執行個體類型 — 套用新的或更新的混合執行個體原則,做為所需組態的一部分。

當執行個體重新整理開始時,Amazon EC2 Auto Scaling 將會:

  • 根據最小和最大運作狀況百分比,批次取代執行個體。

  • 如果運作狀態下限百分比設定為 100%,請先啟動新執行個體,再終止舊執行個體。這樣可確保您所需的容量始終保持不變。

  • 檢查執行個體的健全狀態,並在取代更多執行個體之前給予它們時間進行預熱。

  • 終止並取代發現健康狀態不佳的執行個體。

  • 執行個體重新整理成功後,自動以新的組態變更更新 Auto Scaling 群組設定。

  • 在溫暖集區中的執行個體之前取代InService執行個體。

下列流程圖說明當您將最小健全百分比設定為 100% 時,終止前的啟動行為。

顯示執行個體重新整理如何運作的圖表,當最低健全狀況百分比設定為 100% 時。
注意

只有在您尚未設定執行個體維護政策,或是需要覆寫現有政策時,才需要指定執行處理重新整理的最小和最大狀況百分比。如需詳細資訊,請參閱 執行個體維護政策

同樣地,如果您尚未啟用預設暖機,或需要覆寫預設值,則只需指定執行個體重新整理的執行個體暖機期間。如需詳細資訊,請參閱 設定 Auto Scaling 群組的預設執行個體暖機期

核心概念

在開始使用之前,請熟悉以下執行個體重新整理核心概念:

狀態良好最低百分比

健全狀況下限百分比是指在執行個體重新整理期間保持服務、運作狀態良好且可供使用的所需容量百分比,以便繼續重新整理。例如,如果狀態良好最低百分比為 90%,而狀態良好最高百分比為 100%,則一次會取代 10% 的容量。如果新執行個體未通過運作狀態檢查,Amazon EC2 Auto Scaling 會終止並取代執行個體。如果執行個體重新整理無法啟動任何運作狀態良好的執行個體,則執行個體重新整理最終會失敗,而不會影響其他 90% 的群組。如果新執行個體保持健康狀態並完成預熱期,Amazon EC2 Auto Scaling 可以繼續取代其他執行個體。

執行個體重新整理可以一次取代一個執行個體、一次取代多個執行個體,或一次取代所有執行個體。若要一次取代一個執行個體,請將狀態良好最低和最高百分比均設定為 100%。這會將執行個體重新整理的行為變更為在終止前啟動,以防止群組的容量降低至其所需容量的 100% 以下。若要一次取代所有執行個體,請將狀態良好最低百分比設為 0%。

狀態良好最高百分比

狀態良好最高百分比是 Auto Scaling 群組在取代執行個體時可增加的所需容量百分比。上下限之間的差異不能大於 100。範圍越大,可同時取代的執行個體數量便會越多。

執行個體暖機期

執行個體暖機期是指新執行個體的狀態變更為 InService 到視為已完成初始化經過的時間。在執行個體重新整理期間,如果執行個體通過其運作狀態檢查,Amazon EC2 Auto Scaling 在判斷新啟動的執行個體運作狀態良好之後,就不會立即繼續取代下一個執行個體。它會等待預熱期間,然後才會繼續取代下一個執行個體。如果您的應用程式仍需要一些初始化時間才能回應請求,這個功能會相當實用。

執行個體暖機期的運作方式與預設執行個體暖機期相同。因此適用相同的擴展考量。如需詳細資訊,請參閱 設定 Auto Scaling 群組的預設執行個體暖機期

所需組態

所需組態是您希望 Amazon EC2 Auto Scaling 在整個 Auto Scaling 群組中部署的新組態。例如,您可為執行個體指定新啟動範本和新執行個體類型。在執行個體重新整理期間,Amazon EC2 Auto Scaling 會將 Auto Scaling 群組更新為所需組態。如果在執行個體重新整理期間發生擴增事件,Amazon EC2 Auto Scaling 會以所需組態 (而不是群組的目前設定) 啟動新執行個體。執行個體重新整理成功後,Amazon EC2 Auto Scaling 會更新 Auto Scaling 群組設定,以便反映您在執行個體重新整理過程中指定的所需新組態。

略過相符項目

略過相符項目會讓 Amazon EC2 Auto Scaling 忽略已經有最新更新的執行個體。如此一來,您就不會取代超過需要的執行個體數量。當您想要確定 Auto Scaling 群組使用特定版本的啟動範本,並且僅取代使用不同版本的執行個體時,這會很有幫助。

檢查點

檢查點是執行個體重新整理暫停一段指定時間的時間點。執行個體重新整理可以包含多個檢查點。Amazon EC2 Auto Scaling 會為每個檢查點發出事件。因此,您可以新增 EventBridge 規則以將事件傳送至目標 (例如 Amazon SNS),以便在到達檢查點時收到通知。到達檢查點後,您就能夠驗證部署。如果發現任何問題,您可以取消執行個體重新整理或進行回復。分階段部署更新的能力是檢查點的主要優點。如果不使用檢查點,輪流取代將持續執行。

若要深入了解啟動執行個體重新整理時可設定的所有預設設定,請參閱 了解執行個體重新整理的預設值

運作狀態檢查寬限期

Amazon EC2 Auto Scaling 會根據您的 Auto Scaling 群組使用的運作狀態檢查狀態,判斷執行個體是否運作狀態良好。如需詳細資訊,請參閱 Auto Scaling 群組中的執行個體運作狀態檢查

為確保這些運作狀態檢查能夠盡快啟動,請勿將群組的運作狀態檢查寬限期設定得太高,但要足以讓您的 Elastic Load Balancing 運作狀態檢查來判斷目標是否可用來處理要求。如需詳細資訊,請參閱 設定 Auto Scaling 群組的運作狀態檢查寬限期。

執行個體類型相容性

在變更執行個體類型之前,最好先確認它可以與您的啟動範本搭配運作。這會確認與您指定的 AMI 的相容性。例如,假設您已從全虛擬化 (PV) AMI 啟動原始執行個體,但想要變更為只有硬體虛擬機器 (HVM) AMI 支援的目前世代執行個體類型。在這種情況下,您必須在啟動範本中使用 HVM AMI。

若要在不啟動執行個體的情況下確認執行個體類型相容性,請使用 run-instances 命令搭配 --dry-run 選項,如下列範例所示。

aws ec2 run-instances --launch-template LaunchTemplateName=my-template,Version='1' --dry-run

如需如何判斷相容性的詳細資訊,請參閱 Amazon EC2 使用者指南中的變更執行個體類型的相容性。

限制

  • Total duration (總持續時間):執行個體重新整理可持續主動取代執行個體的時間上限為 14 天。

  • 加權群組特有的行為差異:如果混合執行個體群組設定的執行個體權重大於或等於群組所需容量,Amazon EC2 Auto Scaling 可能會一次取代所有 InService 執行個體。若要避免這種情況,請遵循 設定 Auto Scaling 群組以使用執行個體權重 主題中的建議。當您將權重與 Auto Scaling 群組搭配使用時,請指定大於您最大權重的所需容量。

  • 一小時逾時:當執行個體重新整理因等待取代處於待命狀態或受縮減保護的執行個體而無法繼續進行取代,或新執行個體無法通過其運作狀態檢查時,Amazon EC2 Auto Scaling 會繼續重試一小時。它也會提供狀態訊息,以協助您解決問題。如果問題在一小時後仍然存在,操作會失敗。其目的是在發生暫時性問題時,給它時間恢復。

  • 透過使用者資料部署程式碼:略過比對不會檢查是否有從使用者資料指令碼部署的程式碼變更。如果您使用使用者資料提取新程式碼並在新執行個體上安裝這些更新,建議您關閉略過比對功能,以確保所有執行個體都能收到最新的程式碼,即使沒有啟動範本版本更新也是如此。

  • 更新限制:如果您嘗試更新 Auto Scaling 群組的啟動範本、啟動設定或混合執行個體原則,而使用所需組態的執行個體重新整理作用中時,請求將失敗,並出現下列驗證錯誤:An active instance refresh with a desired configuration exists. All configuration options derived from the desired configuration are not available for update while the instance refresh is active.