AWS CloudFormation スタックが UPDATE_ROLLBACK_FAILED 状態のままになっています。
簡単な説明
更新の失敗後にスタックが UPDATE_ROLLBACK_FAILED 状態のままになっている場合、そのスタックで実行できるアクションは ContinueUpdateRollback または DeleteStack のオペレーションのみになります。これは、CloudFormation がユーザーからの追加入力を必要とし、ロールバックしようとしているテンプレートとスタックが同期していないことを確認するためです。ロールバックを再試行してエラーを解決するには、ContinueUpdateRollback を使用します。
ヒント: このエラーを解決するには、上限の引き上げ、アクセス許可の変更、またはその他の設定変更が必要になる場合があります。更新のロールバック失敗の原因となる一般的なエラーの詳細については、「更新のロールバックの失敗」をご参照ください。
一部に、ロールバックを再試行してもエラーが解決されない場合があります。このような場合は、リソースをスキップする必要と共に、これらのリソースが CloudFormation テンプレートで望ましい状態を反映しなくなったことを承認する必要もあります。ロールバックが失敗する原因となったリソースをスキップするには、以下の解決方法セクションのステップを完了します。
解決方法
CloudFormation コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用して、スタックを作業状態にロールバックできます。
注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
CloudFormation コンソール
1. CloudFormation コンソールを開きます。
2. ナビゲーションペインで、[スタック] を選択します。
3. [Stack name (スタック名)] 列から、UPDATE_ROLLBACK_FAILED 状態で停止しているスタックを選択します。
4. リソースをスキップしない場合は、[Stack Actions (スタックアクション)]、[Continue update rollback (更新ロールバックを続ける)] の順に選択します。
ロールバック中に FAILED リソースをスキップする場合は、次の手順を実行します。
1. [Stack name (スタック名)] 列から、UPDATE_ROLLBACK_FAILED 状態で停止しているスタックを選択します。
2. [Stack Actions (スタックアクション)] を選択してから、[Continue update rollback (更新ロールバックを続ける)] を選択します。
3. [Continue update rollback (更新ロールバックを続ける)] ダイアログボックスで、[Advanced troubleshooting (高度なトラブルシューティング)] を展開します。
4. 次に、[Resources to skip - optional (スキップするリソース - オプション)] セクションで、スキップするリソースを選択します。
5. [Continue update rollback (更新ロールバックを続ける)] をクリックします。
AWS CLI
AWS CLI で continue-update-rollback コマンドを実行します。例:
$ aws cloudformation continue-update-rollback --stack-name awsstackname123 --resources-to-skip awsfaultyresource123
注意: awsstackname123 をスタックの名前に置き換えます。awsfaultyresource123 をリソースの論理 ID に置き換えます。
重要: CloudFormation は、指定されたリソースのステータスを UPDATE_COMPLETE に設定します。その後、CloudFormation はスタックのロールバックを継続します。ロールバックの完了後、スキップしたリソースの状態はスタックテンプレート内のリソースの状態と一致しません。別のスタック更新を実行する前に、お互いに矛盾しないようスタックまたはリソースを更新してください。これを行わない場合、その後のスタック更新が失敗し、スタックが回復不能になる可能性があります。
ネストされたスタックを、作業状態にロールバックする必要がある場合は、ResourcesToSkip を使用してネストされたスタックの階層を復元するの指示に従います。