@shinyaz

EKS クラスター削除後の VPC 削除は VPC エンドポイントの ENI 解放を待つ必要がある

約1分

EKS クラスターを削除した後、VPC を削除しようとしたら DependencyViolation で失敗した。

出力結果
An error occurred (DependencyViolation) when calling the DeleteSubnet operation:
The subnet 'subnet-xxx' has dependencies and cannot be deleted.

原因は EKS が自動作成した VPC エンドポイントだ。クラスター削除後もエンドポイントと紐づく ENI が in-use のまま残り、サブネットや VPC の削除をブロックする。VPC エンドポイントを明示的に削除し、ENI が available になるまで 30〜60 秒待つ必要がある。

ターミナル
# VPC エンドポイントを削除
for vpce in $(aws ec2 describe-vpc-endpoints \
  --filters "Name=vpc-id,Values=$VPC_ID" --region us-east-1 \
  --query 'VpcEndpoints[].VpcEndpointId' --output text); do
  aws ec2 delete-vpc-endpoints --vpc-endpoint-ids $vpce --region us-east-1
done
 
# ENI 解放を待つ(30〜60 秒)
sleep 60
 
# 残った ENI を削除してから VPC を削除
for eni in $(aws ec2 describe-network-interfaces \
  --filters "Name=vpc-id,Values=$VPC_ID" --region us-east-1 \
  --query 'NetworkInterfaces[].NetworkInterfaceId' --output text); do
  aws ec2 delete-network-interface --network-interface-id $eni --region us-east-1
done

この後にセキュリティグループ → サブネット → IGW → VPC の順で削除すれば通る。Neuron DRA の検証記事のクリーンアップで遭遇した。

共有する

田原 慎也

田原 慎也

ソリューションアーキテクト @ AWS

AWS ソリューションアーキテクトとして金融業界のお客様を中心に技術支援を行っています。クラウドアーキテクチャや AI/ML に関する学びをこのサイトで発信しています。このサイトの内容は個人の見解であり、所属企業の公式な意見や見解を代表するものではありません。