ロールバックで変更の取り消し - Amazon EC2 Auto Scaling

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

ロールバックで変更の取り消し

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

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

Amazon EC2 Auto Scaling はロールバック方法として次のものを提供しています。

  • 手動ロールバック: ロールバックを手動で開始して、デプロイされた内容をロールバックポイントまで戻します。

  • 自動ロールバック: Amazon EC2 Auto Scaling は、何らかの理由でインスタンスの更新が失敗した場合、または指定した CloudWatch アラームが ALARM状態になった場合に、デプロイされた内容を自動的に元に戻します。

考慮事項

以下の考慮事項は、ロールバックを使用する場合に適用されます。

  • ロールバックオプションは、インスタンスの更新の開始の一部として必要な設定を指定した場合にのみ使用できます。

  • 以前のバージョンの起動テンプレートにロールバックできるのは、バージョンが特定の番号の付いたバージョンである場合のみです。Auto Scaling グループが $Latest または $Default の起動テンプレートバージョンを使用するように設定されている場合、ロールバックオプションは使用できません。

  • また、 AWS Systems Manager Parameter Store から AMI エイリアスを使用するように設定された起動テンプレートにロールバックすることはできません。

  • Auto Scaling グループに最後に保存した設定は、安定した状態である必要があります。安定していない状態でも、ロールバックのワークフローは実行されますが、最終的には失敗します。問題を解決するまで、Auto Scaling グループは失敗状態になり、インスタンスを正常に起動できなくなる可能性があります。これはサービスまたはアプリケーションの可用性に影響する可能性があります。

ロールバックを手動で開始する

Console
インスタンスの更新のロールバックを手動で開始するには (コンソール)
  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

  2. Auto Scaling グループの横にあるチェックボックスを選択します。

  3. [インスタンスの更新] タブの [アクティブインスタンスの更新] で、[アクション] および [ロールバック開始] を選択します。

  4. 確認を求められたら、[確認] を選択します。

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

自動ロールバックを有効にしていて、インスタンスの置き換え中にエラーが発生した場合、インスタンスの更新は失敗してロールバックされるまで 1 時間かけてすべての置換を完了しようとします。これらのエラーは通常、EC2 の起動失敗、ヘルスチェックの設定ミス、Standby 状態にあるインスタンスやスケールインから保護されているインスタンスの終了を無視または許可しないことなどが原因で発生します。

CloudWatch アラームの指定はオプションです。アラームを指定するには、まずアラームを作成する必要があります。メトリクスアラームと複合アラームを作成できます。アラームの作成については、「Amazon ユーザーガイド CloudWatch 」を参照してください。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

Console
自動ロールバックを使用してインスタンスの更新を開始するには (コンソール)
  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

  2. Auto Scaling グループの横にあるチェックボックスを選択します。

  3. [Instance refresh] (インスタンスの更新) タブの [Active instance refresh] (アクティブインスタンスの更新) で、[Start instance refresh] (インスタンスの更新を開始する) を選択します。

  4. インスタンスの更新の開始 (コンソール) の手順に従い、必要に応じてインスタンスの更新設定を行います。

  5. (オプション) 更新設定 で、CloudWatch アラーム に対してアラーム を有効にする を選択し、1 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 ローカルで最新バージョンに更新していることを確認してください。