0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

デフォルトVPCは消しておいたほうがいい!

  • デフォルトVPCはCIDRの変更ができない
  • 意図せずデフォルトVPCを利用した場合、パブリック公開になる
  • 万が一デフォルトVPCが必要になった場合は、復活させることも可能

という訳で、消さない理由がない。

またAWS CLIを利用することで、全リージョンのデフォルトVPCをまとめて削除することが可能みたいなので、やってみよう。

1.AWS CloudShell を起動する

image.png

2.下記コマンドを実行する

全リージョンのデフォルトVPCを削除するCLI
aws --output text ec2 describe-regions --query "Regions[].[RegionName]" \
| while read region; do
  aws --region ${region} --output text \
    ec2 describe-vpcs --query "Vpcs[?IsDefault].[VpcId]" \
  | while read vpc; do
    echo "# deleting vpc: ${vpc} in ${region}"
   
    ### IGW
    aws --region ${region} --output text \
      ec2 describe-internet-gateways --filters Name=attachment.vpc-id,Values=${vpc} \
      --query "InternetGateways[].[InternetGatewayId]" \
    | while read igw; do
      echo "## deleting igw: ${igw} in ${vpc}, ${region}"
      echo "--> detatching"
      aws --region ${region} --output json \
        ec2 detach-internet-gateway --internet-gateway-id ${igw} --vpc-id ${vpc}
      echo "--> deleteing"
      aws --region ${region} --output json \
        ec2 delete-internet-gateway --internet-gateway-id ${igw}
    done
   
    ### Subnet
    aws --region ${region} --output text \
      ec2 describe-subnets  --filters Name=vpc-id,Values=${vpc} \
      --query "Subnets[].[SubnetId]" \
    | while read subnet; do
      echo "## deleting subnet: ${subnet} in ${vpc}, ${region}"
      aws --region ${region} --output json \
        ec2 delete-subnet --subnet-id ${subnet}
    done
   
    ### VPC
    echo "## finally, deleting vpc: ${vpc} in ${region}"
    aws --region ${region} --output json \
      ec2 delete-vpc --vpc-id ${vpc}  
  done
done

image.png

上記スクショのように複数行のペーストで警告文が出ても続行してOKです。

image.png

ペースト後Enterキーを押下すると、削除が実行されます。
※削除対象が多いため、少々時間がかかります。

3. 確認方法

EC2 Global View へアクセスすると、「リソースの概要」「リージョンあたりのリソース数」が表示されます。

image.png

確認したところ、2つだけ残ってました。
ap-northeast-1 は何かで利用してた気がしますが、ap-southeast-2 は一体…?

image.png

デフォルトVPCをGUIから削除する場合は、各VPCのアクションから削除を選択することで可能です。
image.png

確認用のチェックボックス・テキストフィールドを入力し、削除します。

image.png

image.png

普通に消えたので、CLIコマンドの処理順でキャンセルさせた…とかでしょうか?

※デフォルトVPCを復元したい場合は

下記コマンドを実行すればOKです。

全リージョンにデフォルトVPCを作成するCLI
aws --output text ec2 describe-regions --query "Regions[].[RegionName]" \
| while read region; do
  echo "creating default VPC in ${region}"
  aws --region ${region} ec2 create-default-vpc
done

実行すると、各リージョンにデフォルトVPCを作成します。

image.png

再度 EC2 Global View へアクセスすると、VPCの「17リージョンの17」と表示されており、全リージョンに作成されていることがわかります。

image.png

想像よりカジュアルにデフォルトVPCの削除・復元ができたのでよかったです。

参考文献

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?