

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

# 使用手動或自動轉返復原變更
<a name="instance-refresh-rollback"></a>

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

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

Amazon EC2 Auto Scaling 提供下列復原方式：
+ 手動復原：您可以手動啟動復原，以撤銷已部署到復原點的內容。
+ 自動復原：如果執行個體重新整理因某些原因而失敗，或您指定的任何 CloudWatch 警示進入 `ALARM` 狀態，Amazon EC2 Auto Scaling 會自動撤銷已部署的內容。

**Topics**
+ [考量事項](#instance-refresh-rollback-considerations)
+ [手動啟動復原](#instance-refresh-manual-rollback)
+ [使用自動復原啟動執行個體重新整理](#instance-refresh-using-auto-rollback)

## 考量事項
<a name="instance-refresh-rollback-considerations"></a>

使用復原時需要注意以下事項：
+ 只有在您指定了所需的組態作為啟動執行處理重新整理的一部分時，才能使用復原選項。
+ 如果啟動範本的版本為特定編號版本，您只能復原至一個先前版本。如果將 Auto Scaling 群組設定為使用 `$Latest` 或 `$Default` 啟動範本版本，則無法使用復原選項。
+ 您也無法轉返至設定為使用 AWS Systems Manager 參數存放區的 AMI 別名的啟動範本。
+ 您上次儲存在 Auto Scaling 群組中的組態必須處於穩定狀態。如果它未處於穩定狀態，仍會進行復原工作流程，但會以失敗告終。在您解決此問題之前，Auto Scaling 群組可能處於失敗狀態，無法再成功啟動執行個體。這可能會影響服務或應用程式的可用性。

## 手動啟動復原
<a name="instance-refresh-manual-rollback"></a>

------
#### [ Console ]

**手動啟動執行個體重新整理的復原 (主控台)**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

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

1. 在**執行個體重新整理**索引標籤的**作用中執行個體重新整理**中，選擇**動作** > **啟動復原**。

1. 出現確認提示時，選擇 **Confirm (確認)**。

------
#### [ AWS CLI ]

**手動啟動執行個體重新整理的復原 (AWS CLI)**  
使用 AWS CLI 中的 [rollback-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/rollback-instance-refresh.html) 命令，並提供 Auto Scaling 群組名稱。

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

輸出範例：

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

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

------

## 使用自動復原啟動執行個體重新整理
<a name="instance-refresh-using-auto-rollback"></a>

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

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

您可以選擇是否要指定 CloudWatch 警示。若要指定警示，您需要先建立警示。您可以指定指標警示和複合警示。如需建立警示的詳細資訊，請參閱《[Amazon CloudWatch 使用者指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)》。以 Elastic Load Balancing 指標為例，如果您使用 Application Load Balancer，便可以使用 `HTTPCode_ELB_5XX_Count` 和 `HTTPCode_ELB_4XX_Count` 指標。

**考量事項**
+ 如果您指定 CloudWatch 警示，但未啟用自動復原，且警示狀態進入 `ALARM`，則執行個體重新整理會失敗而不會復原。
+ 啟動執行個體重新整理時，您最多可以選擇 10 個警示。
+ 選擇 CloudWatch 警示時，警示必須處於相容狀態。如果警示狀態為 `INSUFFICIENT_DATA` 或 `ALARM`，您會在嘗試啟動執行個體重新整理時收到錯誤訊息。
+ 建立要使用的 Amazon EC2 Auto Scaling 警示時，警示應包括如何處理遺失的資料點。如果指標本來就會經常遺失資料點，則警示的狀態在這些期間為 `INSUFFICIENT_DATA`。發生這種情況時，Amazon EC2 Auto Scaling 無法取代執行個體，直到找到新的資料點為止。為了強制警示維持先前的 `ALARM` 或 `OK` 狀態，您可以選擇忽略遺失的資料。如需詳細資訊，請參閱《*Amazon CloudWatch 使用者指南*》中的[設定警示如何處理遺失資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data)。

------
#### [ Console ]

**使用自動復原啟動執行個體重新整理 (主控台)**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

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

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

1. 遵循 [啟動執行個體重新整理 (主控台)](start-instance-refresh.md#start-instance-refresh-console) 的程序操作，並視需要設定執行個體重新整理。

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

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

1. 檢視您的選擇，然後選擇**啟動執行個體重新整理**。

------
#### [ AWS CLI ]

**使用自動復原啟動執行個體重新整理 (AWS CLI)**  
使用 [start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html) 命令，並為 `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` 狀態時自動復原，請在 `Preferences` 中指定 `AlarmSpecification` 選項並提供警示名稱，如以下範例所示。以自訂值取代 *`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 本機將 更新為最新版本。

------