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_PROGRESS 状態のままになります。
- CloudFormation はまだ古いリソースを削除中であるか、依存関係の問題のためにそれらのリソースを削除できない。
- ネストされたスタックの兄弟スタックが更新またはロールバックに失敗するため、リソースのクリーンアップが一時停止される。
解決方法
スタックのステータスを確認する
- CloudFormation コンソールを開きます。
- ナビゲーションペインで、[Stacks (スタック)] をクリックします。
- UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS または UPDATE_COMPLETE_CLEANUP_IN_PROGRESS 状態のままになっているスタックを選択します。
- スタックの名前の横に NESTED ラベルが付いているかどうかを確認します。
- スタックの [Resources (リソース)] タブを選択してから、DELETE_IN_PROGRESS 状態のリソースがあるかどうかを確認します。
注: [Status] (ステータス) 列には、リソースの状態が表示されます。
スタックの名前の横に NESTESTED ラベルがある場合は、ネストされたスタックのトラブルシューティングセクションの手順を実行します。
スタックの名前の横にラベルが付いていない場合は、ネストされていないスタックのトラブルシューティングセクションの手順を実行します。
ネストされたスタックのトラブルシューティング
スタックに DELETE_IN_PROGRESS 状態のリソースが 1 つ以上ある場合は、リソースのステータスを確認します。または、「CloudFormation スタックが CREATE_IN_PROGRESS、UPDATE_IN_PROGRESS、UPDATE_ROLLBACK_IN_PROGRESS、または DELETE_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 コンソールを開きます。
- ナビゲーションペインで [Stacks (スタック)] を選択してから、使用しているスタックを選択します。
- スタックの [概要] タブで、[ルートスタック] セクションにあるスタックを選択します。
- [ステータス] セクションでルートスタックのステータスを確認します 。
ルートスタックが UPDATE_IN_PROGRESS または UPDATE_ROLLBACK_IN_PROGRESS 状態である場合、スタックに依存する他のリソースは引き続き更新されています。依存するすべてのリソース (ネストされたスタック内のリソースを含む) が更新されると、CloudFormation はクリーンアッププロセスを開始します。
ルートスタックが UPDATE_ROLLBACK_FAILED 状態になっている場合は、スタックが UPDATE_ROLLBACK_IN_PROGRESS 状態になった後にロールバックに失敗した最初のリソースを特定します。このリソースを特定するには、CloudFormation コンソールでルートスタックの [Events (イベント)] タブを確認します。
ロールバックに失敗したリソースがネストされたスタックでない場合は、AWS CloudFormation スタックが UPDATE_ROLLBACK_FAILED 状態のままになっている場合に、このスタックを更新するにはどうすればよいですか? の手順を完了してください。
ロールバックに失敗したリソースがネストされたスタックである場合は、次の手順を実行します。
- ネストされたスタックが UPDATE_ROLLBACK_IN_PROGRESS 状態になった後にロールバックに失敗した最初のリソースを特定します。このリソースを特定するには、CloudFormation コンソールでネストされたスタックの [Events (イベント)] タブを確認します。リソースがまだネストされたスタックである場合は、ネストされたスタックではない、ロールバックに失敗したリソースを特定するまで、ネストされたスタックに対してこの手順を繰り返します。
- ロールバックプロセスを続行して、スタックを安定した状態にします。
重要: ContinueUpdateRollback オペレーション中にリソースをスキップすると、CloudFormation は指定されたリソースのステータスを UPDATE_COMPLETE にします。その後、CloudFormation はスタックのロールバックを継続します。ロールバックの完了後、スキップしたリソースの状態はスタックテンプレート内のリソースの状態と一致しません。スタックを再度更新する前に、リソースを更新して、相互に整合性を保ちます。これを行わないと、その後のスタック更新が失敗し、スタックが回復不能になる可能性があります。
ネストされていないスタックのトラブルシューティング
スタックに DELETE_IN_PROGRESS 状態のリソースが 1 つ以上ある場合は、AWS マネジメントコンソールを使用してリソースのステータスを確認します。または、「CloudFormation スタックが CREATE_IN_PROGRESS、UPDATE_IN_PROGRESS、UPDATE_ROLLBACK_IN_PROGRESS、または DELETE_IN_PROGRESS の状態のままなのはなぜですか?」の「AWS CloudTrail ログを確認する」セクションの手順に従います
注: [Status] (ステータス) 列には、リソースの状態が表示されます。
DELETE_IN_PROGRESS 状態のリソースがない場合は、CloudFormation の AWS サービスヘルスダッシュボードを使って運用上の問題を探します 。
関連情報
ネストされたスタックの使用
更新のロールバックに失敗しました