

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 手動または自動ロールバックを使用して変更を元に戻す
<a name="instance-refresh-rollback"></a>

まだ進行中のインスタンスの更新をロールバックできます。終了後はロールバックできません。ただし、新しいインスタンスの更新を開始することによって Auto Scaling グループを再度更新できます。

ロールバックするとき、Amazon EC2 Auto Scaling はそれまでにデプロイされたインスタンスを置き換えます。新しいインスタンスは、インスタンスの更新を開始する前に Auto Scaling グループに最後に保存した設定と一致します。

Amazon EC2 Auto Scaling はロールバック方法として次のものを提供しています。
+ 手動ロールバック: ロールバックを手動で開始して、デプロイされた内容をロールバックポイントまで戻します。
+ 自動ロールバック: Amazon EC2 Auto Scaling は、何らかの理由でインスタンスの更新が失敗した場合、または指定した CloudWatch アラームが `ALARM` 状態になった場合に、デプロイされた内容を自動的に元に戻します。

**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 Parameter Store から 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. 確認を求められたら、[**確認**] を選択します。

------
#### [ 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` 状態になったりした場合など、インスタンスの更新が失敗したときに、インスタンスの更新を自動的にロールバックできます。

自動ロールバックを有効にしていて、インスタンスの置き換え中にエラーが発生した場合、インスタンスの更新は失敗してロールバックされるまで 1 時間かけてすべての置換を完了しようとします。これらのエラーは通常、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 ユーザーガイド*」の「[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]** (インスタンスの更新) タブの **[Active instance refresh]** (アクティブインスタンスの更新) で、**[Start instance refresh]** (インスタンスの更新を開始する) を選択します。

1. [インスタンスの更新の開始 (コンソール)](start-instance-refresh.md#start-instance-refresh-console) の手順に従い、必要に応じてインスタンスの更新設定を行います。

1. (オプション) **[設定の更新]** で、**[CloudWatch アラーム]** で** [CloudWatch アラームを有効にする]** を選択し、アラームが `ALARM` 状態になった場合に問題を特定し、操作を失敗させるために 1 つ以上のアラームを選択します。

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 ローカルで最新バージョンに更新していることを確認してください。

------