使用手動或自動復原來復原變更 - Amazon EC2 Auto Scaling

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

使用手動或自動復原來復原變更

您可以復原仍在進行中的執行個體重新整理。該作業完成後即無法復原。不過,您可以透過啟動新的執行個體重新整理,再次更新 Auto Scaling 群組。

復原時,Amazon EC2 Auto Scaling 會取代目前已部署的執行個體。新執行個體會與您在啟動執行個體重新整理之前,上次儲存在 Auto Scaling 群組中的組態相符。

Amazon EC2 Auto Scaling 提供下列復原方法:

  • 手動復原:您可以手動啟動復原,以撤銷已部署到復原點的內容。

  • 自動復原:如果執行個體重新整理因某種原因而失敗,或您指定的任何 CloudWatch 警示進入 ALARM 狀態,Amazon EC2 Auto Scaling 會自動反轉部署的內容。

考量事項

使用復原時需要注意以下事項:

  • 只有在您指定了所需的組態作為啟動執行處理重新整理的一部分時,才能使用復原選項。

  • 如果啟動範本的版本為特定編號版本,您只能復原至一個先前版本。如果將 Auto Scaling 群組設定為使用 $Latest$Default 啟動範本版本,則無法使用復原選項。

  • 您也無法復原至設定為使用 AWS Systems Manager 參數存放區的 AMI 別名的啟動範本。

  • 您上次儲存在 Auto Scaling 群組中的組態必須處於穩定狀態。如果它未處於穩定狀態,仍會進行復原工作流程,但會以失敗告終。在您解決此問題之前,Auto Scaling 群組可能處於失敗狀態,無法再成功啟動執行個體。這可能會影響服務或應用程式的可用性。

手動啟動復原

Console
手動啟動執行個體重新整理的復原 (主控台)
  1. 在 Word 開啟 Amazon EC2 主控台,然後從導覽窗格中選擇 Auto Scaling 群組https://console.aws.amazon.com/ec2/

  2. 選取 Auto Scaling 群組旁的核取方塊。

  3. 執行個體重新整理索引標籤的作用中執行個體重新整理中,選擇動作 > 啟動復原

  4. 出現確認提示時,選擇 Confirm (確認)

AWS CLI
手動啟動執行個體重新整理的復原 (AWS CLI)

使用 中的 rollback-instance-refresh AWS CLI 命令,並提供 Auto Scaling 群組名稱。

aws autoscaling rollback-instance-refresh --auto-scaling-group-name my-asg

輸出範例:

{ "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }
提示

如果此命令擲回錯誤,請確定您已在 AWS CLI 本機將 更新為最新版本。

使用自動復原啟動執行個體重新整理

使用自動復原功能,您可以在執行個體重新整理失敗時自動復原執行個體重新整理,例如發生錯誤或指定的 Amazon CloudWatch 警示進入 ALARM 狀態時。

如果您啟用自動復原功能,且在取代執行個體時發生錯誤,則執行個體重新整理會在失敗前一小時內嘗試完成所有取代作業,然後復原。這些錯誤通常是由 EC2 啟動失敗、設定錯誤的運作狀態檢查,或未忽略或允許終止處於Standby狀態或受保護的執行個體。

指定 CloudWatch 警示是選用的。若要指定警示,您需要先建立警示。您可以指定指標警示和複合警示。如需有關建立警示的資訊,請參閱 Amazon CloudWatch 使用者指南。以 Elastic Load Balancing 指標為例,如果您使用 Application Load Balancer,便可以使用 HTTPCode_ELB_5XX_CountHTTPCode_ELB_4XX_Count 指標。

考量事項
  • 如果您指定 a CloudWatch 警示,但未啟用自動復原,且警示狀態為 ALARM,則執行個體重新整理會失敗,而不會復原。

  • 啟動執行個體重新整理時,您最多可以選擇 10 個警示。

  • 選擇 a CloudWatch 警示時,警示必須處於相容狀態。如果警示狀態為 INSUFFICIENT_DATAALARM,您會在嘗試啟動執行個體重新整理時收到錯誤訊息。

  • 為要使用的 Amazon EC2 Auto Scaling 建立警示時,警示應包含如何處理遺失的資料點。如果指標本來就會經常遺失資料點,則警示的狀態在這些期間為 INSUFFICIENT_DATA。發生這種情況時,Amazon EC2 Auto Scaling 無法在找到新資料點之前取代執行個體。為了強制警示維持先前的 ALARMOK 狀態,您可以選擇忽略遺失的資料。如需詳細資訊,請參閱 Amazon CloudWatch 使用者指南中的設定警示處理遺失資料的方式

Console
使用自動復原啟動執行個體重新整理 (主控台)
  1. 在 EC2 開啟 Amazon https://console.aws.amazon.com/ec2/ 主控台,然後從導覽窗格中選擇 Auto Scaling 群組

  2. 選取 Auto Scaling 群組旁的核取方塊。

  3. Instance refresh (執行個體重新整理) 索引標籤的 Instance refreshes (執行個體重新整理) 中,選擇 Start instance refresh (啟動執行個體重新整理)。

  4. 遵循 啟動執行個體重新整理 (主控台) 的程序操作,並視需要設定執行個體重新整理。

  5. (選用) 在重新整理設定下,針對 CloudWatch 警示,選擇啟用 CloudWatch 警示,然後選擇一或多個警示以識別任何問題,並在警示進入 ALARM 狀態時失敗操作。

  6. 復原設定下,選擇啟用自動復原,以便在開始執行個體重新整理之前,自動將失敗的執行個體重新整理復原至您上次儲存在 Auto Scaling 群組的設定。

  7. 檢視您的選擇,然後選擇啟動執行個體重新整理

AWS CLI
使用自動復原啟動執行個體重新整理 (AWS CLI)

使用 start-instance-refresh 命令,並在 中true指定 AutoRollback選項Preferences

下列範例示範如何在啟動執行個體重新整理時一旦發生失敗就會自動復原。取代 斜體 參數值。

aws autoscaling start-instance-refresh --cli-input-json file://config.json

config.json 的內容。

{ "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1" } }, "Preferences": { "AutoRollback": true } }

或者,若要在執行個體重新整理失敗或指定的 CloudWatch 警示處於 ALARM 狀態時自動復原,請在 中指定 AlarmSpecification選項Preferences並提供警示名稱,如下列範例所示。取代 斜體 參數值。

{ "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1" } }, "Preferences": { "AutoRollback": true, "AlarmSpecification": { "Alarms": [ "my-alarm" ] } } }

如果成功,此命令傳回的輸出會類似如下。

{ "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }
提示

如果此命令擲回錯誤,請確定您已在 AWS CLI 本機將 更新為最新版本。