4
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?

AWS 全リージョンのデフォルト VPC を一括削除する CLI ツールを作った

4
Posted at

はじめに

こんにちは、ほうき星 @H0ukiStar です。

AWS アカウントを作成すると、デフォルト VPC と呼ばれる VPC が各リージョンに 1 つずつ作成されます。

このデフォルト VPC はパブリックサブネットのみで構成されており、これらのサブネットでは EC2 起動時にパブリック IP アドレスが自動付与される設定になっています。マネジメントコンソールから EC2 インスタンスを起動する際にも、このデフォルト VPC が初期選択されるため、環境によっては意図しない構成でリソースを作成してしまう可能性があります。

そのため、組織のネットワーク設計上デフォルト VPC が不要な場合は、あらかじめ削除しておく運用を採るケースもあります。

今回は、AWS アカウントで利用可能な全リージョンに存在するデフォルト VPC を一括削除する CLI ツールを作成したので、その使い方をご紹介します。

デフォルト VPC を削除するツール:aws-default-vpc-cleaner

作成したツールは以下のレポジトリに置いています。

ツールの導入

Linux / Windows 向けのそれぞれのビルド成果物を Release に配置しています。
以下は CloudShell (Amazon Linux 2023) 上での導入例です。

$ wget https://github.com/H0ukiStar/aws-default-vpc-cleaner/releases/download/v1.0.0/aws-default-vpc-cleaner-v1.0.0-linux-x64
~省略~
2026-05-21 14:35:22 (29.2 MB/s) - ‘aws-default-vpc-cleaner-v1.0.0-linux-x64’ saved [34495320/34495320]
$ chmod +x aws-default-vpc-cleaner-v1.0.0-linux-x64 
$ 
$ ./aws-default-vpc-cleaner-v1.0.0-linux-x64 --help
usage: aws-default-vpc-cleaner [-h] [--regions REGION [REGION ...]] [--dry-run] [--yes] [--lang {en,ja}] [--verbose] [--version]

Delete default VPCs and related resources across AWS regions

options:
  -h, --help            show this help message and exit
  --regions REGION [REGION ...]
                        Specify target regions (default: all regions)
  --dry-run             List resources without deleting them
  --yes, -y             Skip confirmation prompts
  --lang {en,ja}        Language for output (en/ja)
  --verbose, -v         Enable verbose output
  --version             show program's version number and exit

Examples / 使用例:
  # Delete default VPCs in all regions (with confirmation)
  # 全リージョンのデフォルトVPCを削除 (確認あり)
  aws-default-vpc-cleaner

  # Delete default VPCs in specific regions
  # 特定リージョンのデフォルトVPCを削除
  aws-default-vpc-cleaner --regions us-east-1 us-west-2

  # List default VPCs without deleting (dry-run)
  # 削除せずにデフォルトVPCをリストアップ (ドライラン)
  aws-default-vpc-cleaner --dry-run

  # Delete without confirmation
  # 確認なしで削除
  aws-default-vpc-cleaner --yes

  # Use Japanese language output
  # 日本語出力を使用
  aws-default-vpc-cleaner --lang ja

  # Verbose output
  # 詳細出力
  aws-default-vpc-cleaner --verbose

ツールを利用したデフォルト VPC の削除

デフォルト VPC をいきなり削除する前に --dry-run オプションを利用して削除対象を確認しておきます。
以下のように利用可能なリージョンに存在するデフォルト VPC と各 VPC 上のインタネットゲートウェイやサブネットがリストアップされます。

$ ./aws-default-vpc-cleaner-v1.0.0-linux-x64 --dry-run --lang ja
AWS Default VPC Cleaner を起動しています...
ドライランモード - リソースは削除されません
利用可能なリージョンを取得中...
17個のリージョンが見つかりました
デフォルトVPCが見つかりました: vpc-07d832f4c0cf8328f
デフォルトVPCが見つかりました: vpc-018d9022ee1524a30
~省略~
リージョンを処理中: ap-south-1
削除対象 InternetGateway: igw-01f01b9e2459c6d19
削除対象 Subnet: subnet-048733e58a9b7d7e6
削除対象 Subnet: subnet-0dd665f8d05c327d7
削除対象 Subnet: subnet-0f7bb974902a49a1e
削除対象 VPC: vpc-07d832f4c0cf8328f
リージョン ap-south-1 の処理が完了しました
~省略~

=== サマリー ===
処理したリージョン: 17個
削除したVPC: 0個
削除したリソース: 0個
エラー: 0個

操作が正常に完了しました

削除対象に問題がなければ --dry-run オプション無しで実行することで以下のように削除されます。

~ $ ./aws-default-vpc-cleaner-v1.0.0-linux-x64 -yes --lang ja
AWS Default VPC Cleaner を起動しています...
利用可能なリージョンを取得中...
17個のリージョンが見つかりました
デフォルトVPCが見つかりました: vpc-07d832f4c0cf8328f
デフォルトVPCが見つかりました: vpc-018d9022ee1524a30
~省略~
リージョンを処理中: ap-south-1
InternetGateway を削除しました: igw-01f01b9e2459c6d19
Subnet を削除しました: subnet-048733e58a9b7d7e6
Subnet を削除しました: subnet-0dd665f8d05c327d7
Subnet を削除しました: subnet-0f7bb974902a49a1e
VPCを削除中: vpc-07d832f4c0cf8328f
VPCの削除に成功しました: vpc-07d832f4c0cf8328f
リージョン ap-south-1 の処理が完了しました
~省略~

=== サマリー ===
処理したリージョン: 17個
削除したVPC: 17個
削除したリソース: 89個
エラー: 0個

操作が正常に完了しました

用意しているオプション

--dry-run

ツールを利用した削除例でも示した通り、削除対象となるデフォルト VPC 等のリソースのリストアップを行い、削除は行わないオプションです。
いきなり削除を行うのではなく事前にリストアップを行い、削除対象のリソースが問題ないか確認しておくのが良いでしょう。

--yes

--yes を指定しない場合は、削除前に確認を行います。
--yes を指定した場合は、削除時の確認をスキップします。

--regions REGION [REGION ...]

デフォルト VPC を削除するリージョンを指定します。
指定しない場合は利用可能な全リージョンを対象にツールを実行します。

--lang {en,ja}

ツール実行時の出力を指定した言語にします。

--verbose

ツールの実行時に詳細を出力します。

さいごに

デフォルト VPC は AWS アカウント作成時に自動で作成される便利な仕組みですが、環境によっては不要なことも多く、複数リージョンにまたがると削除作業も煩雑になります。

今回作成した aws-default-vpc-cleaner は、そのようなデフォルト VPC を利用可能な全リージョンからまとめて確認・削除できるようにした CLI ツールです。

本ツールが、同じような課題を感じていた方の助けになれば幸いです。

4
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
4
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?