AWS CloudFormation スタックが UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS または UPDATE_COMPLETE_CLEANUP_IN_PROGRESS 状態のままになっています。スタックを UPDATE_ROLLBACK_COMPLETE または UPDATE_COMPLETE 状態にしたいと考えています。
簡単な説明
CloudFormation スタックは、次の場合に UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS または UPDATE_COMPLETE_CLEANUP_IN_PROGRES 状態のままになります。
- CloudFormation はまだ古いリソースを削除中であるか、依存関係の問題のためにそれらのリソースを削除できない。
- ネストされたスタックの兄弟スタックが更新またはロールバックに失敗するため、リソースのクリーンアップが一時停止になる。
解決策
スタックのステータスを確認する
- CloudFormation コンソールを開きます。
- ナビゲーションペインで、[スタック] を選択します。
- UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS または UPDATE_COMPLETE_CLEANUP_IN_PROGRESS 状態のままになっているスタックを選択します。
- スタックの名前の横に NESTED ラベルが付いているかどうかを確認します。
- スタックの [リソース] タブを選択し、DELETE_IN_PROGRESS 状態のリソースがあるかどうかを確認します。
注: Status 列にはリソースの状態が表示されます。
スタックの名前の横に NESTED ラベルがある場合は、ネストされたスタックのトラブルシューティングセクションの手順を完了してください。
スタックの名前の横にラベルがない場合は、ネストされていないスタックのトラブルシューティングセクションの手順を完了してください。
ネストされたスタックのトラブルシューティング
スタックに DELETE_IN_PROGRESS 状態のリソースが 1 つ以上ある場合は、リソースのステータスを確認します。または、「CloudFormatio スタックが IN_PROGRESS 状態でスタックする理由を教えてください。」の「AWS CloudTrail のログを確認する」セクションの手順に従います。
次の理由により、リソースが DELETE_IN_PROGRESS 状態のままになっている可能性があります。
- リソースを削除するためにさらに時間がかかる。例えば、AWS::RDS::DBInstance や AWS::CloudFront::Distribution などのリソースは、他のリソースよりも削除に時間がかかります。
- 他のリソースがユーザーのリソースに依存している。例えば、Amazon Elastic Compute Cloud (Amazon EC2) セキュリティグループは、お使いの CloudFormation スタックの外部にある他のリソースで使用できます。AWS マネジメントコンソールを使用して、リソースに対して手動で作成された依存関係がないことを確認してください。
注: CloudFormation は、リソースをスキップしてクリーンアッププロセスを続行する前に、リソースを 3 回削除しようとします。
スタックに DELETE_IN_PROGRESS 状態のリソースがない場合は、次の手順を実行してください。
- CloudFormation コンソールを開きます。
- ナビゲーションペインで [スタック] を選択してから、使用しているスタックを選択します。
- スタックの **[概要]**タブの [ルートスタック] セクションでスタックを選択します。
- [ステータス] セクションでルートスタックのステータスを確認します 。
ルートスタックが UPDATE_IN_PROGRESS または UPDATE_ROLLBACK_IN_PROGRESS 状態にある場合、スタックに依存する他のリソースはまだ更新中です。依存するすべてのリソース (ネストされたスタック内のリソースを含む) が更新されると、CloudFormation はクリーンアッププロセスを開始します。
ルートスタックが UPDATE_ROLLBACK_FAILED 状態になっている場合は、スタックが UPDATE_ROLLBACK_IN_PROGRESS 状態になった後にロールバックに失敗した最初のリソースを特定します。このリソースを特定するには、CloudFormation コンソールでルートスタックの [イベント] タブを確認します。
ロールバックに失敗したリソースがネストされたスタックでない場合は、「AWS CloudFormation スタックが UPDATE_ROLLBACK_FAILED 状態のままになっている場合に、このスタックを更新するにはどうすればよいですか?」の手順を完了してください。
ロールバックに失敗したリソースがネストされたスタックの場合は、次の手順を完了します。
- ネストされたスタックが UPDATE_ROLLBACK_IN\ _PROGRESS 状態になった後にロールバックに失敗した最初のリソースを特定します。このリソースを特定するには、CloudFormation コンソールでネストされたスタックの [イベント] タブを確認します。リソースがまだネストされたスタックである場合は、ロールバックに失敗したリソースでネストされたスタックではないことを確認するまで、ネストされたスタックに対してこの手順を繰り返します。
- ロールバックプロセスを続行して、スタックを安定した状態にします。
**重要:**ContinueUpdateRollback オペレーション中にリソースをスキップすると、CloudFormation は指定されたリソースのステータスを UPDATE_COMPLETE にします。その後、CloudFormation はスタックのロールバックを継続します。ロールバックが完了すると、スキップされたリソースの状態は、スタックテンプレート内のリソースの状態と矛盾します。スタックを再度更新する前に、相互に一貫性があるようにリソースを更新してください。そうしないと、以降のスタックの更新が失敗し、スタックが回復不能になる可能性があります。
ネストされていないスタックのトラブルシューティング
スタックに DELETE_IN_PROGRESS 状態のリソースが 1 つ以上ある場合は、AWS マネジメントコンソールを使用してリソースのステータスを確認します。または、「CloudFormatio スタックが IN_PROGRESS 状態でスタックする理由を教えてください。」の「AWS CloudTrail のログを確認する」セクションの手順に従います。
注: Status 列にはリソースの状態が表示されます。
DELETE_IN_PROGRESS 状態のリソースがない場合は、CloudFormation の AWS サービスヘルスダッシュボードを使用して運用上の問題を確認してください。
関連情報
ネストされたスタックの操作
更新のロールバックの失敗