スタックオペレーションをモニタリングおよびロールバックする - AWS CloudFormation

スタックオペレーションをモニタリングおよびロールバックする

ロールバックトリガーを使用すると、スタックの作成および更新中にアプリケーションの状態を AWS CloudFormation でモニタリングし、指定したアラームのしきい値をアプリケーションが超過した場合に、そのオペレーションをロールバックできます。作成したロールバックトリガーごとに、CloudFormation がモニタリングする CloudWatch アラームを指定します。CloudFormation は、スタックの作成または更新オペレーション時、およびすべてのリソースがデプロイされてから指定された時間、指定されたアラームをモニタリングします。スタックオペレーションまたはモニタリング期間中にいずれかのアラームが ALARM 状態になった場合、CloudFormation はスタックオペレーション全体をロールバックします。

モニタリング時間は、デフォルト値の 0 から最大 180 分まで設定できます。この時間中、CloudFormation はスタックの作成、または更新オペレーションによってすべての必要なリソースがデプロイされた後、すべてのロールバックトリガーをモニタリングします。スタックオペレーションまたはこのモニタリング期間中にいずれかのアラームが ALARM 状態になった場合、CloudFormation はスタックオペレーション全体をロールバックします。更新オペレーションの場合、その後アラームが ALARM 状態にならずにモニタリング期間が切れると、CloudFormation は通常どおり古いリソースの破棄に進みます。モニタリング時間を設定したがどのロールバックトリガーも指定しない場合でも、CloudFormation は更新オペレーション用に古いリソースがクリーンアップされるまで指定された時間待機します。このモニタリング期間を使用して必要な手動スタック検証を実行し、必要に応じてスタックの作成または更新を手動でキャンセルできます。モニタリング時間を 0 分に設定した場合でも、CloudFormation はスタックの作成および更新オペレーション時にロールバックトリガーをモニタリングし、アラームが ALARM 状態になった場合にオペレーションをロールバックします。アラームを超過しない更新オペレーションの場合、オペレーションが完了するとすぐに古いリソースの破棄が開始されます。

デフォルトでは、CloudFormation は、アラームが INSUFFICIENT_DATA 状態ではなく ALARM 状態になった場合にのみ、スタックオペレーションをロールバックします。アラームが INSUFFICIENT_DATA 状態になった場合も CloudFormation にスタックオペレーションをロールバックさせるには、欠落データを breaching として処理するように CloudWatch アラームを編集します。詳細については、『Amazon CloudWatch ユーザーガイド』の「CloudWatch アラームが欠落データを処理する方法の設定」を参照してください。

更新オペレーション中にスタックをロールバックしている時は、CloudFormation はロールバックトリガーをモニタリングしません。

最大 5 個のロールバックトリガーを追加できます。ロールバックトリガーを追加するには、CloudWatch アラームの Amazon リソースネーム (ARN) を指定します。現在、AWS::CloudWatch::Alarm タイプと AWS::CloudWatch::CompositeAlarm タイプをロールバックトリガーとして使用できます。CloudWatch アラームの使用の詳細については、「Amazon CloudWatch ユーザーガイド」の「Using Amazon CloudWatch alarms」(Amazon CloudWatch アラームの使用) を参照してください。

指定された CloudWatch アラームが欠落している場合、スタックオペレーション全体が失敗してロールバックします。

Amazon CloudWatch へのアクセスには認証情報が必要な点に注意してください。これらの認証情報は、リソースに関する CloudWatch メトリクスデータの取得などの AWS リソースへの許可が必要です。詳細については、『Amazon CloudWatch ユーザーガイド』の「Amazon CloudWatch に対する認証とアクセスコントロール」を参照してください。

スタックの作成または更新時にロールバックトリガーを追加するには

ロールバックトリガーをスタックの作成または更新に追加するには、「ロールバック構成」セクションで Amazon CloudWatch アラームを指定します。

  1. スタックの [creating] (作成) または [updating] (更新中) に、[Configure stack options (スタックオプションの構成) ページの [Advanced options] (詳細オプション) にある [Rollback configuration] (ロールバック構成) セクションを展開します。

  2. 0180 分の監視時間を入力します。デフォルト値は、「0」です。

  3. ロールバックトリガーとして使用する CloudWatch アラームまたは複合アラームの ARN を指定し、[Add CloudWatch alarm ARN] (CloudWatch アラームの ARN を追加) を選択します。

    例えば、以下は CloudWatch アラームまたは複合アラーム arn:aws:cloudwatch:us-east-1:123456789012:alarm:MyAlarmName の ARN です。

  4. [Next] (次へ) を選択して、スタックの詳細を確認します。

  5. スタックの作成の設定と推定コストを確認したら、[Create stack] (スタックの作成) を選択してスタックを起動します。

結果: Amazon CloudWatch アラームがスタックに正常に追加されました。

変更セットにロールバックトリガーを追加するには

ロールバックトリガーを変更セットに追加するには、スタックテンプレートを選択して変更セットを作成し、「ロールバック構成」セクションで Amazon CloudWatch アラームを指定します。

  1. スタックの [creating] (作成) または更新中に、[Configure stack options (スタックオプションの構成) ページの [Advanced options] (詳細オプション) にある [Rollback configuration] (ロールバック構成) セクションを展開します。

  2. 0180 分の監視時間を入力します。デフォルト値は、「0」です。

  3. ロールバックトリガーとして使用する CloudWatch アラームまたは複合アラームの ARN を指定し、[Add CloudWatch alarm ARN] (CloudWatch アラームの ARN を追加) を選択します。

    例えば、以下は CloudWatch アラームまたは複合アラーム arn:aws:cloudwatch:us-east-1:123456789012:alarm:MyAlarmName の ARN です。

  4. [Next] (次へ) を選択して、スタックの詳細を確認します。

  5. スタックの作成の設定と推定コストを確認したら、[Create stack set] (スタックセットの作成) を選択します。

  6. [Create change set] (変更セットの作成) モジュールを確認して、[Create change set] (変更セットの作成) を選択します。

  7. (オプション) 変更セットに基づいて新しいスタックの作成を完了するには、[Execute] (実行) を選択し、ロールバック構成を指定して、[Execute change set] (変更セットの実行) を選択します。

結果: Amazon CloudWatch アラームが変更セットに正常に追加されました。

スタックのロールバックトリガーを表示するには

スタックのロールバックトリガーを表示するには、「ロールバック構成」セクションを参照してください。

  1. [Stacks] (スタック) ページで、表示するスタックを左側のリストから選択します。

  2. [Stack info] (スタック情報) タブで、[Rollback configuration] (ロールバック構成) セクションを展開します。

結果: ロールバックトリガーが指定されている場合、ロールバックトリガーは [Rollback configuration] (ロールバック構成) セクションに表示されます。

変更セットのロールバックトリガーを表示するには

変更セットのロールバックトリガーを表示するには、「Rollback configuration」(ロールバック構成) セクションを参照してください。

  1. [Stacks] (スタック) ページで、表示するスタックを左側のリストから選択します。

  2. [Change sets] (変更セット) タブを選択し、表示する変更セットを選択します。

  3. [Input] (入力) タブを選択し、[Rollback configuration] (ロールバック構成) セクションを表示します。

結果: ロールバックトリガーが指定されている場合、ロールバックトリガーは [Rollback configuration] (ロールバック構成) セクションに表示されます。