DELETE_FAILED ステータスのままになっている AWS CloudFormation スタックを削除するにはどうすればよいですか?
最終更新日: 2022 年 4 月 5 日
AWS CloudFormation スタックを削除したいのですが、スタックが DELETE_FAILED ステータスのままになっています。
簡単な説明
以下の理由により、スタックは DELETE_FAILED ステータスのままになっている可能性があります。
- スタックリソースに、依存オブジェクト、または削除できないその他の依存関係がある。この問題を解決するには、Delete a stack with a dependent object or other dependencies that can't be deleted セクションにある手順を完了してください。
- 使用されているサービスロールが有効でない、または引き受けられない。この問題を解決するには、「無効なロールを持つスタックを削除する」セクションにある手順を実行してください。
- カスタムリソースが想定時間内に安定しなかった。この問題を解決するには、「安定化に失敗したカスタムリソースのスタックを削除する」セクションにある手順を完了してください。
解決方法
依存オブジェクト、または削除できないその他の依存関係を持つスタックを削除する
依存関係の問題は通常、帯域外の変更を加えると発生します。たとえば、スタックの一部であるセキュリティグループがスタックの一部ではない Elastic Network Interface に添付されている場合、スタックは失敗します。スタックが失敗するのは、セキュリティグループリソースを削除できないためです。スタックを削除するには、その依存リソースを保持する必要があります。
リソースの保持中にスタックを削除するには、以下の手順を実行します。
AWS CloudFormation コンソール
- AWS CloudFormation コンソールを開きます。
- DELETE_FAILED ステータスのままになっているスタックを選択します。
- [Delete] (削除) を選択します。
注意: ポップアップウィンドウが開き、削除に失敗したリソースが一覧表示されます。 - ウィンドウで、保持するリソースをすべて選択し、[Delete stack] (スタックの削除) を選択します。
AWS コマンドラインインターフェイス
注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
次の delete-stack コマンドを実行します。
$ aws cloudformation delete-stack --stack-name my-stack --retain-resources myresource1 myresource2
注: my-stack は、ご使用のスタックの名前に置き換えてください。myresource1 と myresource2 は、削除に失敗したリソースの論理 ID に置き換えてください。
CloudFormation スタックはスタックの削除を再試行しますが、保持することを選択したリソースは削除しません。スタックのステータスが DELETE_COMPLETE に変わります。
重要: 不要な課金を避けるために、スタックを削除するときに保持しているリソースを手動で削除する必要があります。
無効なロールを持つスタックを削除する
現在存在しないサービスロールを使用して作成されたスタックを削除しようとすると、「An error occurred (ValidationError) when calling the DeleteStack operation: Role
このエラーを解決するには、次のステップを実行してください。
- AWS CloudFormation コンソールを開きます。
- 削除するスタックを選択して、その詳細を確認します。
- [Stack info] (スタックの情報) タブで、スタックに割り当てられた IAM ロールの名前を書き留めます。
- ステップ 3 の IAM ロールと同じ名前を使用して、AWS Identity and Access Management (IAM) ロールを作成します。
重要: IAM ロールの作成時に、スタックのリソースを削除するための適切な許可がその IAM ロールに付与されていることを確認してください。 - AWS CloudFormation コンソールで、スタックの削除を再試行します。
安定化に失敗したカスタムリソースのスタックを削除する
想定時間内に安定化できなかったカスタムリソースのスタックを削除するには、How do I troubleshoot an AWS Lambda backed custom resource that's stuck in DELETE_FAILED status or DELETE_IN_PROGRESS status in AWS CloudFormation? を参照してください。