AWS re:Postを使用することにより、以下に同意したことになります 利用規約

Amazon VPC を削除しようとしましたが、依存関係によるエラーが発生しました。Amazon VPC を削除するにはどうすればよいですか?

所要時間3分
0

Amazon Virtual Private Cloud (Amazon VPC) を削除しようとすると、依存関係エラーが発生します。

簡単な説明

Amazon VPC を削除すると、そのコンポーネントもすべて削除されます。これらのコンポーネントには、サブネット、セキュリティグループ、ネットワークアクセスコントロールリスト (ネットワーク ACL)、ルートテーブル、インターネットゲートウェイ、DHCP オプションが含まれています。ただし、Amazon VPC を削除する前に、まずすべての依存リソースを削除するか、関連付けを解除する必要があります。依存関係エラーを回避するには、それらの作業をここに記載されている順序で実行してください。

解決方法

Amazon VPC を削除する前に、依存リソースを削除する必要があります。

AWS コマンドラインインターフェイス (AWS CLI) delete-vpc コマンドまたは Amazon VPC コンソールを使用して Amazon VPC を削除することができます。

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

AWS CLI を使用して Amazon VPC を削除しようとしたときに表示されるエラーを解決する

次のエラーは、Amazon VPC を削除する前に削除しなければならない依存関係があることを示します。

「An error occurred (DependencyViolation) when calling the DeleteVpc operation: The vpc 'vpc-id' has dependencies and cannot be deleted.」(DeleteVpc オペレーションの呼び出し時にエラーが発生しました (DependencyViolation)。vpc 'vpc-id' には依存関係があり、削除できません。)

このエラーを解決するには、次のステップを実行してください。

1.    次のスクリプトを実行して、残りの依存関係を見つけます。

#!/bin/bash
vpc="vpc-xxxxxxxxxxxxx"
region="yy-yyyy-y"
aws ec2 describe-internet-gateways --region $region --filters 'Name=attachment.vpc-id,Values='$vpc | grep InternetGatewayId
aws ec2 describe-subnets --region $region --filters 'Name=vpc-id,Values='$vpc | grep SubnetId
aws ec2 describe-route-tables --region $region --filters 'Name=vpc-id,Values='$vpc | grep RouteTableId
aws ec2 describe-network-acls --region $region --filters 'Name=vpc-id,Values='$vpc | grep NetworkAclId
aws ec2 describe-vpc-peering-connections --region $region --filters 'Name=requester-vpc-info.vpc-id,Values='$vpc | grep VpcPeeringConnectionId
aws ec2 describe-vpc-endpoints --region $region --filters 'Name=vpc-id,Values='$vpc | grep VpcEndpointId
aws ec2 describe-nat-gateways --region $region --filter 'Name=vpc-id,Values='$vpc | grep NatGatewayId
aws ec2 describe-security-groups --region $region --filters 'Name=vpc-id,Values='$vpc | grep GroupId
aws ec2 describe-instances --region $region --filters 'Name=vpc-id,Values='$vpc | grep InstanceId
aws ec2 describe-vpn-connections --region $region --filters 'Name=vpc-id,Values='$vpc | grep VpnConnectionId
aws ec2 describe-vpn-gateways --region $region --filters 'Name=attachment.vpc-id,Values='$vpc | grep VpnGatewayId
aws ec2 describe-network-interfaces --region $region --filters 'Name=vpc-id,Values='$vpc | grep NetworkInterfaceId
aws ec2 describe-carrier-gateways --region $region --filters Name=vpc-id,Values=$vpc | grep CarrierGatewayId
aws ec2 describe-local-gateway-route-table-vpc-associations --region $region --filters Name=vpc-id,Values=$vpc | grep LocalGatewayRouteTableVpcAssociationId

注: 前述のスクリプトでは、[vpc] フィールドに VPC ID を入力し、[Region] (リージョン) フィールドに [AWS リージョン] (us-east-1 など) を入力します。また、Describe API コールを実行するために、適切な許可を持つ認証情報を使用していることを確認してください。

2.    ステップ 1 で特定した残りの依存関係を削除し、Amazon VPC の削除を再試行します。

Amazon VPC コンソールから Amazon VPC を削除しようとしたときに表示されるエラーを解決する

「VPC contains one or more instances, and cannot be deleted until those instances have been terminated.」 (VPC には 1 つ以上のインスタンスが含まれており、それらのインスタンスが終了するまで削除できません。)

このエラーは、Amazon VPC 上で Amazon Elastic Compute Cloud (Amazon EC2) インスタンスが実行されていることを示しています。このエラーを解決するには、インスタンスを終了します。

「VPC contains one or more in-use network interfaces, and cannot be deleted until those network interfaces have been deleted.」 (VPCには使用中のネットワークインターフェースが1つ以上含まれており、それらのネットワークインターフェースが削除されるまで削除できません。)

このエラーは、Amazon VPC のネットワークインターフェイスが使用中または使用可能であることを示しています。

「An error occurred (InvalidParameterValue) when calling the DeleteNetworkInterface operation: Network interface 'eni-aabbccdd' is currently in use.」 (DeleteNetworkInterface オペレーションを呼び出すときにエラーが発生しました (InvalidParameterValue)。ネットワークインターフェイス 'eni-aabbccdd' が現在使用されています。)

このエラーは、削除できないリクエスタマネージド型ネットワークインターフェイスがあることを示しています。リクエスタマネージド型ネットワークインターフェイスを削除するには、そのネットワークインターフェイスを作成した AWS のサービスを削除する必要があります。

依存するサービスを削除するには、次のステップに従います。

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

2.    Amazon VPC がある AWS リージョンを選択します。

3.    ナビゲーションペインの [ネットワークインターフェイス] で、削除している Amazon VPC の VPC ID を検索します。

4.    ネットワークインターフェイスを選択して、[Details] (詳細) タブを選択します。

5.    [Description] (説明) で、ネットワークインターフェイスがアタッチされているリソースを確認します。

6.    関連付けられたリソースを削除します。例えば、ネットワークインターフェースを削除していて、リクエスター ID が「amazon-elb」だとします。Elastic Network Interface の Description フィールドの値を使用して、ロードバランサーを識別します。次に、Amazon EC2 コンソールの [Load Balancer] (ロードバランサー) セクションに移動し、ロードバランサーを見つけて削除します。 注: ネットワークインターフェイスがプライマリであれば、インスタンスを削除すると削除されます。

「VPC has one or more attached NAT gateways or virtual private gateways, and cannot be deleted until they are detached or deleted. 」 (VPC には 1 つ以上のインターネットゲートウェイまたは仮想プライベートゲートウェイがアタッチされており、デタッチまたは削除されるまで削除できません。)

このエラーは、Amazon VPC に依存関係があることを示しています。それらを削除するには、「NAT ゲートウェイの削除」および「仮想プライベートゲートウェイのデタッチと削除」のステップに従います。

「The VPC is peered as a requester with at least one other VPC through peering connections.」 (VPCは、ピアリング接続を介して少なくとも1つの他のVPCとリクエスタとしてピアリングされます。)

このエラーは、Amazon VPC にアクティブな VPC ピアリング接続があることを示しています。それらを削除するには、「VPC ピアリング接続を削除する」の手順に従います。

Amazon VPC の削除を妨げている依存関係がまだ残っている場合は、以下の手順に従ってください。

キャリアゲートウェイの削除

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

2.    ナビゲーションペインで、[Carrier Gateways] (キャリアゲートウェイ) を選択します。

3.    キャリアゲートウェイを選択し、[Actions] (アクション) を選択します。次に、[Delete carrier gateway] (キャリアゲートウェイの削除) を選択します。

4.    [Delete carrier gateway] (キャリアゲートウェイの削除) のダイアログボックスで、「Delete」(削除) と入力し、[削除] をクリックします。

VPC のローカルゲートウェイルートテーブルとの関連付けの解除

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

2.    ナビゲーションペインで、[Local gateway route tables] ( ローカルゲートウェイのルートテーブル) をクリックします。

3.    [Route table] (ルートテーブル) を選択します。

4.    [Actions] (アクション)、[View details] (詳細を表示) の順にクリックします。

5.    [VPC associations] (VPC の関連付け) で、関連付けを解除する VPC を選択し、[Disassociate] (関連付け解除) を選択します。

6.    [Disassociate] (関連付け解除) をクリックします。


関連情報

AWS Lambda が作成した Elastic Network Interface のデタッチまたは削除ができないのはなぜですか?

別の AWS アカウントと共有されている VPC を削除するにはどうすればよいですか。

リクエスタマネージド型 VPC エンドポイントを削除できないのはなぜですか。

AWS公式
AWS公式更新しました 7ヶ月前