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

所要時間2分
0

Amazon Elastic Container Service (Amazon ECS) クラスターを削除できません。

簡単な説明

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

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

  • 「vpc 'vpc-1234567' には依存関係があり、削除できません」
  • 「セキュリティグループ sg-123456 は、"リソース sg-123456 に依存オブジェクトがあります" というエラーのため、削除できませんでした」
  • 「ユーザー: arn:aws:sts::1111222233334444:assumed-role/example-role/example-user には、リソース: arn:aws:ecs:Region:1111222233334444:cluster/example-cluster の実行: ecs:DeleteCluster の権限がありません 」

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

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

解決方法

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

AWS Identity and Access Management (IAM) アクセス許可の確認

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

2.    ナビゲーションペインで [Roles] を選択します。

3.    [ロール] ページで、エラーメッセージで指定されている IAM ロールを入力します。CloudTrail イベントからのエラーメッセージを確認するには、DeleteCluster API 呼び出しをフィルタリングします。
注: これは Amazon ECS クラスターを削除しようとしている IAM ロールまたはユーザーです。

4.    IAM ロールまたはユーザーを選択します。

5.    [Permissions] タブをクリックします。

アクセス権限ポリシーに ecs:Delete* 権限が含まれているかどうかを確認します。このアクセス許可は、IAM ロールまたはユーザーが ECS クラスターを削除するために必要です。
アクセス権限がない場合は、IAM ユーザーまたはロールに必要なアクセス権を付与します。詳細については、AmazonECS_FullAccess を参照してください。

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

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

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

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

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

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

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

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

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 の依存関係には、escribe-internet-gatewaysdescribe-subnets、または describe-instances などがあります。

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 を削除します

詳細については、「Amazon VPC を削除しようとしましたが、依存関係によるエラーが発生しました」を参照ください。どのように Amazon VPC を削除すればよいですか?


関連情報

スタックの削除に失敗する

AWS公式
AWS公式更新しました 1年前