LoginSignup
0
0

More than 1 year has passed since last update.

デフォルトVPCを削除するAWS CLI

Last updated at Posted at 2022-08-09

■全体の流れ

  1. デフォルトVPCの情報を取得
  2. デフォルトVPCに関連付けられているInternet Gatewayの削除
  3. デフォルトVPCに関連付けられているSubnetの削除
  4. デフォルトVPCの削除

■備考

  • DHCPオプションセットは残る
  • 全リージョン分削除する場合は適宜修正
  • デフォルトVPCの状態がデフォルトである前提

■詳細

① デフォルトVPCの情報を取得

# デフォルトVPCのIDを取得
default_vpc_id=$(aws ec2 describe-vpcs --region ap-northeast-1 | jq -r '.Vpcs[] | select(.IsDefault == true) | .VpcId')

② デフォルトVPCに関連付けられているInternet Gatewayの削除

# デフォルトVPCに関連付けられているInternet GatewayのIDを取得
default_igw_id=$(aws ec2 describe-internet-gateways --region ap-northeast-1 | jq -r --arg default_vpc_id $default_vpc_id '.InternetGateways[] | select(.Attachments[].VpcId == $default_vpc_id) | .InternetGatewayId')
# デフォルトVPCに関連付けられているInternet Gatewayの関連付けを解除
aws ec2 detach-internet-gateway --vpc-id $default_vpc_id --internet-gateway-id $default_igw_id --region ap-northeast-1
# デフォルトVPCに関連付けられているInternet Gatewayを削除
aws ec2 delete-internet-gateway --internet-gateway-id $default_igw_id --region ap-northeast-1

③ デフォルトVPCに関連付けられているSubnetの削除

# デフォルトVPCのIDに関連付けられているサブネットIDのリストを取得し、サブネットを削除する
for i in $(aws ec2 describe-subnets --region ap-northeast-1 | jq -r --arg default_vpc_id $default_vpc_id '.Subnets[] | select(.VpcId == $default_vpc_id) | .SubnetId');do aws ec2 delete-subnet --subnet-id $i --region ap-northeast-1;done

④ デフォルトVPCの削除

# デフォルトVPCの削除
aws ec2 delete-vpc --vpc-id $default_vpc_id --region ap-northeast-1

■補足

(デフォルトで有効化されている)リージョン一覧取得

 aws ec2 describe-regions | jq -r '.Regions[] | select(.OptInStatus == "opt-in-not-required") | .RegionName'
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0