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

最終更新日: 2022 年 7 月 26 日

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

簡単な説明

Amazon VPC を削除すると、そのコンポーネントもすべて削除されます。これらのコンポーネントには、サブネット、セキュリティグループ、ネットワークアクセスコントロールリスト (ネットワーク ACL)、ルートテーブル、インターネットゲートウェイ、DHCP オプションが含まれる場合があります。ただし、Amazon VPC を削除する前に依存リソースを削除しない場合には、依存関係エラーが発生します。

解決方法

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-vpc-peering-connections --region $region --filters 'Name=requester-vpc-info.vpc-id,Values='$vpc | grep VpcPeeringConnectionId
aws ec2 describe-nat-gateways --region $region --filter 'Name=vpc-id,Values='$vpc | grep NatGatewayId
aws ec2 describe-instances --region $region --filters 'Name=vpc-id,Values='$vpc | grep InstanceId
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

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

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

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

次のエラーは、Amazon VPC で実行中の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスがあることを示します。 「VPC contains one or more instances, and cannot be deleted until those instances have been terminated. (VPC に 1 つ以上のインスタンスが含まれており、それらのインスタンスが終了されるまで削除できません。)」 このエラーを解決するには、インスタンスを終了します。

次のエラーは、Amazon VPC に利用中または利用可能なネットワークインターフェイスがアタッチされていることを示します。「VPC contains one or more in-use network interfaces, and cannot be deleted until those network interfaces have been deleted. (VPC には使用中のネットワークインターフェイスが 1 つ以上含まれており、それらのネットワークインターフェイスが削除されるまで削除できません。) 」

次のエラーは、削除できないリクエスタマネージドネットワークインターフェイスがあることを示します。「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. ナビゲーションペインの [Network Interfaces] (ネットワークインターフェイス) で、削除している Amazon VPC の VPC ID を検索します。
  4. ネットワークインターフェイスを選択して、[Details] (詳細) タブを選択します。
  5. [Description] (説明) で、ネットワークインターフェイスがアタッチされているリソースを確認します。
  6. 関連付けられたリソースを削除します。例えば、ネットワークインターフェイスを削除していて、リクエスタ ID が「amazon-elb」の場合、Elastic Network Interface の [説明] フィールドの値を使用して、Elastic Load Balancer を識別します。次に、Amazon EC2 マネジメントコンソールの [Load Balancer] セクションに移動し、ロードバランサーを見つけて削除します。

注意: ネットワークインターフェイスがプライマリであれば、インスタンスを削除すると削除されます。

次のエラーは、Amazon VPC に依存関係があること示します。「VPC has one or more attached NAT gateways or virtual private gateways, and cannot be deleted until they are detached or deleted.」(VPC には 1 つ以上の NAT ゲートウェイまたは仮想プライベートゲートウェイがアタッチされており、それらがデタッチまたは削除されるまでこの VPC を削除できません。) それらを削除するには、「NAT ゲートウェイの削除」および「仮想プライベートゲートウェイのデタッチと削除」のステップに従います。

次のエラーは、Amazon VPC にアクティブな VPC ピアリング接続があることを示します。「The VPC is peered as a requester with at least one other VPC through peering connections」(VPC は、ピアリング接続を通じて少なくとも 1 つの他の VPC とリクエスタとしてピアリングされています) 削除するには、「VPC ピアリング接続を削除する」の手順に従います。