使用復原來復原變更 - 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. 前往網址 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台,然後從導覽窗格中選擇 Auto Scaling 群組

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

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

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

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

使用 AWS CLI 中的 rollback-instance-refresh 命令,並提供 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 指標。

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

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

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

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

Console
使用自動復原啟動執行個體重新整理 (主控台)
  1. 前往網址 https://console.aws.amazon.com/ec2/ 開啟 Amazon 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 命令,並為 Preferences 中的 AutoRollback 選項指定 true

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

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並提供警示名稱,如下列範例所示。以自訂值取代 italicized 參數值。

{ "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 地更新為最新版本。