VPC およびその関連リソースの削除
IBM Cloud® Virtual Private Cloud コンソールで IBM Cloud を削除する前に、その VPC のパブリック・ゲートウェイ、サブネット、および接続されたリソースをすべて削除する必要があります。
IBM Cloud コンソールを使用した VPC の削除
コンソールを使用して VPC を削除するには、以下のようにします。
-
VPC 内のすべてのサブネットを検索します。 ナビゲーション・ペインで**「VPC」**をクリックし、VPC を選択します。
-
VPC の詳細ページで、**「この VPC のサブネット (Subnets in this VPC)」**リストに移動し、サブネットを選択してその詳細を表示します。
-
サブネットに接続されているすべてのリソースを削除します。 ナビゲーション・ペインで、**「接続されているリソース (Attached resources)」**をクリックします。 アタッチされているインスタンス、ロードバランサー、VPNゲートウェイをそれぞれ選択して、その詳細ページを表示する。 Actions メニュー
Actions から Delete を選択します。 接続されているインスタンスは、停止してから削除する必要があります。
リソースの状況は即時に**「削除中」**に変わりますが、削除操作が完了するまで最大 30 分かかる場合があります。 接続されているすべてのリソースがコンソールに表示されなくなるまで、サブネットを削除することはできません。
-
アタッチされたリソースがすべて削除されたら、サブネットの詳細ページに戻り、削除アイコンをクリックします。
-
すべてのサブネットを削除したら、VPCの詳細ページに戻り、削除アイコンをクリックします。 VPC およびすべての公開ゲートウェイが削除されます。
IBM Cloud CLI を使用した VPC の削除
以下の例は、VPC リソースごとに、推奨される順序で IBM Cloud® Virtual Private Cloudからリソースを削除する方法を示しています。
以下の重要な事実は、削除について留意する必要があります。
- VPC は空になっていないと削除できません。
- 親リソースを削除する前に、含まれているリソースをすべて正常に削除する必要があります。
- リソースの削除が進行中の場合は、リスト照会を行うと
deleting
状況が表示されます。 - ほとんどの削除要求は_非同期_です。つまり、リソースの削除が完了するまで、リスト照会では**「削除中」**状況が表示される可能性があります。
- ポーリングしてリストに子リソースが表示されなくなったことを確認してから、親リソースを削除する必要があります。
リソースの状況が deleting
から failed
に変わった場合は、リソースの削除を再試行できます。 failed
状況のリソースを削除できない場合は、サポートにお問い合わせください。
ステップ1:削除したいVPC内のサブネットをすべて見つける
VPC を削除する前に、その VPC の各サブネットを削除する必要があります。 以下のコマンドを実行し、 ID
の値を見て、削除したい VPC の ID を取得します:
ibmcloud is vpcs
後で利用できるように、VPC の ID を変数に保存します。次に例を示します。
vpc="0738-3524fef5-da35-4622-bf9a-31614964649d"
アカウント内のすべてのサブネットのリストを取得するために、次のコマンドを実行します。
ibmcloud is subnets
VPC
値を参照して、削除する必要があるサブネットを確認します。 後で利用できるように、サブネットの ID を変数に保存します。次に例を示します。
subnet="0738-d31ce469-9b0f-44e1-87ce-0fc77d8b0e53"
削除する VPC に複数のサブネットがある場合は、すべてのサブネットを削除するために、この手順を繰り返してください。
手順 2: VPC 内の各サブネットを削除する
サブネット内のすべての VPN ゲートウェイを削除する (存在する場合)
アカウント内のすべての VPN ゲートウェイをリストするために、次のコマンドを実行します。
ibmcloud is vpn-gateways
削除するサブネット内の VPN ゲートウェイごとに、次のコマンドを実行します。$vpnid
は VPN ゲートウェイの ID です。
ibmcloud is vpn-gateway-delete $vpnid
すぐに VPN ゲートウェイの状況が deleting
に変わりますが、リスト照会結果にはまだ表示されます。 VPN ゲートウェイの削除には、最大で 30 分かかる場合があります。 VPN ゲートウェイの削除を待つ間に、他のサブネット・リソースの削除を並行して要求できます。 しかし、サブネットの削除は、リスト照会結果にそのサブネット内の VPN ゲートウェイとその他のすべてのリソースが表示されなくなるまで実行できません。
サブネット内にロード・バランサーがあればすべて削除する
アカウント内のすべてのロード・バランサーをリストするために、次のコマンドを実行します。
ibmcloud is load-balancers
削除するサブネット内のロード・バランサーごとに、次のコマンドを実行します。$lbid
はロード・バランサーの ID です。
ibmcloud is load-balancer-delete $lbid
すぐにロード・バランサーの状況が deleting
に変わりますが、リスト照会結果にはまだ表示されます。 ロード・バランサーの削除には、最大で 30 分かかる場合があります。 ロード・バランサーの削除を待つ間に、他のサブネット・リソースの削除を並行して要求できます。 しかし、サブネットの削除は、リスト照会結果にそのサブネット内のロード・バランサーとその他のすべてのリソースが表示されなくなるまで実行できません。
サブネット内のすべてのネットワーク・インターフェースを削除する (存在する場合)
インスタンスには、VPC の複数のサブネットに属する複数のネットワーク・インターフェースが含まれている場合があります。 サブネットを削除するには、その前に、サブネット内のすべてのネットワーク・インターフェースを削除する必要があります。
サブネット内のネットワーク・インターフェースを削除するには、そのインスタンスを削除するしかありません。
インスタンスのネットワーク・インターフェースをすべてリストするために、次のコマンドを実行します。
ibmcloud is instance-network-interfaces $vsi
アカウント内のすべてのインスタンスをリストするために、次のコマンドを実行します。
ibmcloud is instances
VPC 内のインスタンスをすべて削除する場合は、VPC 内のインスタンスごとに次のコマンドを実行します。$vsi
は削除するインスタンスの ID です。 インスタンスを削除すると、他のサブネットのネットワーク・インターフェースが (ある場合) すべて自動的に削除されます。
インスタンスは停止してから削除する必要があります。 インスタンスを停止するには、ibmcloud is instance-stop
コマンドを実行します。
ibmcloud is instance-delete $vsi
すぐにインスタンスの状況が deleting
に変わりますが、リスト照会結果にはまだ表示されます。 インスタンスの削除には、最大で 30 分かかる場合があります。
インスタンスの削除を待つ間に、他のサブネット・リソースの削除を並行して要求できます。 しかし、サブネットの削除は、リスト照会結果にそのサブネット内のインスタンスとその他のすべてのリソースが表示されなくなるまで実行できません。
削除するサブネット内に 2 次ネットワーク・インターフェースがある場合は、そのインスタンスを削除する必要があります。 インスタンスを削除せずにネットワーク・インターフェースをインスタンスから削除することはできません。
サブネットの削除
サブネット内のリソースがすべて削除され、リスト照会結果に戻されなくなったら、次のコマンドを実行してサブネットを削除します。
ibmcloud is subnet-delete $subnet
すぐにサブネットの状況が deleting
に変わりますが、サブネットが削除されてリスト照会結果に表示されなくなるまでは、数分かかる可能性があります。
手順 3: VPC 内のすべてのパブリック・ゲートウェイを削除する (存在する場合)
アカウント内のすべてのパブリック・ゲートウェイをリストするために、次のコマンドを実行します。
ibmcloud is public-gateways
削除する VPC 内のパブリック・ゲートウェイごとに、次のコマンドを実行してパブリック・ゲートウェイを削除します。$gateway
はパブリック・ゲートウェイの ID です。
ibmcloud is public-gateway-delete $gateway
手順 4: VPC を削除する
VPC 内のサブネットおよびパブリック・ゲートウェイをすべて削除したら、次のコマンドを実行して VPC を削除します。$vpc
は削除する VPC の ID です。
ibmcloud is vpc-delete $vpc
すぐに VPC の状況が deleting
に変わりますが、VPC が削除されてリスト照会結果に表示されなくなるまでは、数分かかる可能性があります。
REST API を使用した VPC の削除
以下のステップは、このプロセスの主な部分です。
- 削除したいVPC内のすべてのサブネットを検索します。
- VPC 内の各サブネットを削除します。つまり、以下を削除します。
- サブネット内の VPN ゲートウェイをすべて削除します。
- サブネット内のロード・バランサーをすべて削除します。
- サブネット内のインスタンスのネットワーク・インターフェースをすべて削除します。
- サブネットを削除します。
- VPC 内のパブリック・ゲートウェイをすべて削除します。
- VPC を削除します。
以下の各セクションに、VPC を削除するために実行できる API 呼び出しの例をいくつか示しています。
ステップ1:削除したいVPC内のサブネットをすべて見つける
VPC を削除する前に、その VPC の各サブネットを削除する必要があります。 以下のコマンドを実行し、 id
の値を見て、削除したい VPC の ID を取得します:
curl -X GET "$vpc_api_endpoint/v1/vpcs?version=$version&generation=2" \
-H "Authorization:$iam_token"
読み取り可能なJSON文字列を取得するには、curlコマンドの後に | json_pp
または | jq
を追加します。 jq
は、 MIT ライセンスの下でライセンスされているサードパーティツールです。 jq
は、インスタンスの作成時に利用可能なすべてのVPCイメージにプリインストールされているとは限りません。
json_pp
コマンドはJSONプリプロセッサで、ほとんどの Linux ディストリビューションにデフォルトでインストールされている。
後で利用できるように、VPC の ID を変数に保存します。次に例を示します。
vpc="0738-3524fef5-da35-4622-bf9a-31614964649d"
アカウント内のすべてのサブネットのリストを取得するために、次のコマンドを実行します。
curl -X GET "$vpc_api_endpoint/v1/subnets?version=$version&generation=2" \
-H "Authorization:$iam_token"
vpc
値を参照して、削除する必要があるサブネットを確認します。 後で利用するために、サブネットの ID を変数に保存します。次に例を示します。
subnet="0738-d31ce469-9b0f-44e1-87ce-0fc77d8b0e53"
削除する VPC に複数のサブネットがある場合は、すべてのサブネットを削除するために、この手順を繰り返してください。
手順 2: VPC 内の各サブネットを削除する
サブネット内のすべての VPN ゲートウェイを削除する (存在する場合)
アカウント内のすべての VPN ゲートウェイをリストするために、次のコマンドを実行します。
curl -X GET "$rias_endpoint/v1/vpn_gateways?version=$version&generation=2" \
-H "Authorization:$iam_token"
削除したいサブネット内の各VPNゲートウェイに対して、以下のコマンドを実行する。 $vpnid
は、VPNゲートウェイのIDである。
curl -X DELETE "$rias_endpoint/v1/vpn_gateways/$vpnid?version=$version&generation=2" \
-H "Authorization:$iam_token"
すぐに VPN ゲートウェイの状況が deleting
に変わりますが、リスト照会の実行結果にはまだ戻されます。 VPN ゲートウェイの削除には、最大で 30 分かかる場合があります。 VPN ゲートウェイの削除を待つ間に、他のサブネット・リソースの削除を並行して要求できます。 ただし、VPNゲートウェイとサブネット内の他のすべてのリソースがリストクエリに表示されなくなるまでは、サブネットを削除することはできません。
サブネット内にロード・バランサーがあればすべて削除する
アカウント内のすべてのロード・バランサーをリストするために、次のコマンドを実行します。
curl -X GET "$rias_endpoint/v1/load_balancers?version=$version&generation=2" \
-H "Authorization:$iam_token"
削除したいサブネットの各ロードバランサーについて、次のコマンドを実行します。 $lbid
はロードバランサーのIDです。
curl -X DELETE "$rias_endpoint/v1/load_balancers/$lbid?version=$version&generation=2" \
-H "Authorization:$iam_token"
すぐにロード・バランサーの状況が deleting
に変わりますが、リスト照会の実行結果にはまだ戻されます。 ロード・バランサーの削除には、最大で 30 分かかる場合があります。 ロード・バランサーの削除を待つ間に、他のサブネット・リソースの削除を並行して要求できます。 しかし、ロードバランサとサブネット内の他のすべてのリソースがリストクエリに表示されなくなるまでは、サブネットを削除することはできません。
サブネット内のすべてのネットワーク・インターフェースを削除する (存在する場合)
インスタンスには、VPC の複数のサブネットに属する複数のネットワーク・インターフェースが含まれている場合があります。 サブネットを削除するには、先に、そのサブネット内のすべてのネットワーク・インターフェースを削除しておく必要があります。 サブネット内のネットワーク・インターフェースを削除するには、そのインスタンスを削除するしかありません。
インスタンスのネットワーク・インターフェースをすべてリストするために、次のコマンドを実行します。
curl -X GET "$vpc_api_endpoint/v1/instances/$vsi/network_interfaces?version=$version&generation=2" \
-H "Authorization:$iam_token"
削除するサブネット内に 2 次ネットワーク・インターフェースがある場合は、そのインスタンスを削除する必要があります。 インスタンスを削除せずにネットワーク・インターフェースをインスタンスから削除することはできません。
アカウント内のすべてのインスタンスをリストするために、次のコマンドを実行します。
curl -X GET "$vpc_api_endpoint/v1/instances?version=$version&generation=2" \
-H "Authorization:$iam_token"
VPC 内のインスタンスをすべて削除する場合は、VPC 内のインスタンスごとに次のコマンドを実行します。$vsi
は削除するインスタンスの ID です。 インスタンスを削除すると、他のサブネットのネットワーク・インターフェースが (ある場合) すべて自動的に削除されます。
インスタンスは停止してから削除する必要があります。 詳しくは、Create an instance action を参照して、type
要求と stop
アクションを使用してください。
curl -X DELETE "$vpc_api_endpoint/v1/instances/$vsi?version=$version&generation=2" \
-H "Authorization:$iam_token"
インスタンスのステータスは即座に deleting
に変わりますが、リストクエリの結果にはまだ表示されるかもしれません。 インスタンスの削除には、最大で 30 分かかる場合があります。 インスタンスの削除を待つ間に、他のサブネット・リソースの削除を並行して要求できます。 ただし、インスタンスとサブネット内の他のすべてのリソースがリスト・クエリに表示されなくなるまでは、サブネットを削除することはできません。
サブネットの削除
サブネット内のリソースがすべて削除され、リスト照会を実行しても戻されなくなったら、次のコマンドを実行してサブネットを削除します。
curl -X DELETE "$vpc_api_endpoint/v1/subnets/$subnet?version=$version&generation=2" \
-H "Authorization:$iam_token"
すぐにサブネットの状況が deleting
に変わりますが、サブネットが削除されてリスト照会で戻されなくなるまでは、数分かかる可能性があります。
手順 3: VPC 内のすべてのパブリック・ゲートウェイを削除する (存在する場合)
アカウント内のすべてのパブリック・ゲートウェイをリストするために、次のコマンドを実行します。
curl -X GET "$vpc_api_endpoint/v1/public_gateways?version=$version&generation=2" \
-H "Authorization:$iam_token"
削除する VPC 内のパブリック・ゲートウェイごとに、次のコマンドを実行してパブリック・ゲートウェイを削除します。$gateway
はパブリック・ゲートウェイの ID です。
curl -X DELETE "$vpc_api_endpoint/v1/public_gateways/$gateway?version=$version&generation=2" \
-H "Authorization:$iam_token"
手順 4: VPC を削除する
VPC 内のサブネットおよびパブリック・ゲートウェイをすべて削除したら、次のコマンドを実行して VPC を削除します。$vpc
は削除する VPC の ID です。
curl -X DELETE "$vpc_api_endpoint/v1/vpcs/$vpc?version=$version&generation=2" \
-H "Authorization:$iam_token"
すぐに VPC の状況が deleting
に変わりますが、VPC が削除されてリスト照会で表示されなくなるまでは、数分かかる可能性があります。