Amazon ECS クラスターが AWS CloudFormation スタックの一部として削除に失敗した場合、どうすればよいですか?

最終更新日: 2020 年 12 月 14 日

Amazon Elastic Container Service (Amazon ECS) クラスターを削除できません。クラスターを削除するにはどうしたら良いですか?

簡単な説明

基礎となるリソースの依存関係に問題があるため、Amazon ECS クラスターを削除できない場合があります。Amazon ECS クラスターが作成されると、AWS CloudFormation は Auto Scaling グループ、Virtual Private Cloud (VPC)、ロードバランサーなどのリソースを作成します。これらのリソースはクラスターに関連付けられており、リソースが存在するとクラスターを削除できません。AWS CloudFormation のその他の問題がある場合も、Amazon ECS クラスターを削除できないことがあります。

注: コンソールの初回実行エクスペリエンス (2015 年 11 月 24 日以降) またはクラスター作成ウィザードを使用して作成されたクラスターには、基となる AWS CloudFormation スタックがあります。クラスターの削除プロセス中に、スタック EC2ContainerService-yourClusterName で次のエラーが発生する可能性があります。

  • 「vpc 'vpc-1234567' には依存関係があり、削除できません」
  • 「セキュリティグループ sg-123456 は、"リソース sg-123456 に依存オブジェクトがあります" というエラーのため、削除できませんでした」

クラスターの削除に失敗しました。AWS CloudFormation スタックは DELETE_FAILED 状態に移行します。

ECS クラスターを削除できない場合は、次のステップを実行します。

解決方法

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください

依存関係のあるリソースをスキップしてクラスターを削除する

1.    AWS CloudFormation コンソールを開きます。

2.    失敗したスタックを見つけるには、フィルターで [アクティブ] を選択してから [失敗] を選択します。

3.    削除されない失敗したスタックを選択します。

4.    [アクション] を選択してから、[スタックを削除] を選択します。

5.    削除に失敗したリソースの横にあるチェックボックスをオンにします。

6.    [はい、削除します] を選択します。

重要: リソースを削除できないが、それでもスタックを削除したい場合は、そのリソースを保持することを選択します。AWS コマンドラインインターフェイス (AWS CLI) delete-stack コマンドを使用してリソースを保持することもできます。--retain-resources フラグを使用して、リソースの論理 ID を指定します。

7.    Amazon ECS クラスターを削除します

保持されているリソースを削除する

次の例では、基となる AWS CloudFormation スタックに一般的に関連付けられているリソースを削除する方法を示しています。

セキュリティグループの依存関係の例

この例では、あるセキュリティグループのインバウンドルールまたはアウトバウンドルールが別のセキュリティグループを参照しています。この依存関係により、クラスターを削除できなくなります。

1.    削除するセキュリティグループに関連付けられているセキュリティグループを見つけるには、次の AWS CLI コマンドを実行します。

aws ec2 describe-security-groups --filters Name=ip-permission.group-id,Values=[sg-xxxxxxxxx] --region us-east-1 | jq '.SecurityGroups[] .GroupId'

注: jq はコマンドライン JSON プロセッサです。

2.    削除するセキュリティグループの依存関係をクリアします。

3.    セキュリティグループのリソースを削除します。

VPC 依存関係の例

注意: 一般的な VPC 依存関係には、InternetGatewayIdSubnetId、または InstanceId が含まれます。

1.    VPC の依存リソースを特定するには、次の AWS CLI コマンドを実行します。vpc-xxxxxxxx を VPC の値に置き換え、RegionIDAWS リージョンコードに置き換えます。

aws ec2 describe-subnets --filters "Name=vpc-id,Values=vpc-xxxxxxxx" --region RegionId | grep SubnetId

注: 他の依存関係に対して同様の describe_* コマンドを実行できます。

2.    削除する VPC の依存関係をクリアします。

3.    VPC を削除します


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?