はじめに
AWSアカウントを作成すると、各リージョンに自動的に作成される「デフォルトVPC」。便利な存在ですが、実は削除できるし、コマンド一発で作り直せることをご存知でしょうか?
この記事では、デフォルトVPCの削除と再作成の方法を、AWS公式ドキュメントに基づいて解説します。
CloudShellで実行するのがお手軽です。 マネジメントコンソールのナビゲーションバーまたはフッターのCloudShellアイコンからすぐに起動でき、AWS CLIも最初から使えます。
デフォルトVPCとは
デフォルトVPCは以下の特徴を持ちます:
- CIDR:
172.31.0.0/16 - 各アベイラビリティゾーンに
/20のデフォルトサブネット - インターネットゲートウェイが自動アタッチ
- パブリックIPの自動割り当てが有効
デフォルトVPCの確認
まず、現在のデフォルトVPCを確認しましょう。
# デフォルトVPCの確認
aws ec2 describe-vpcs --filters "Name=isDefault,Values=true"
デフォルトVPCの削除
注意事項
削除前に以下を確認してください:
-
VPC内のすべてのリソースを削除する必要がある
- EC2インスタンス
- ロードバランサー
- NATゲートウェイ
- VPCエンドポイント
- その他のネットワークインターフェース
-
削除後は明示的にサブネットを指定する必要がある
- インスタンス起動時にサブネットIDの指定が必須になります
コンソールから削除(推奨)
コンソールから削除すると、関連リソースも自動的に削除してくれるので安全です。
コンソールが自動削除してくれるリソース:
- サブネット
- インターネットゲートウェイ
- ルートテーブル
- ネットワークACL
- セキュリティグループ
- DHCPオプション
手順:
- EC2コンソールで全インスタンスを終了
- VPCコンソールを開く
- ナビゲーションペインで お使いのVPC を選択
- 削除するVPCを選択し、アクション → VPCの削除
- 削除が必要なリソースがあれば表示されるので、それらを先に削除
- 削除されるリソースのリストを確認
- 確認画面で
デフォルト VPC の削除を希望することを承認します。にチェックをいれ、フィールドにデフォルト VPC の削除と入力して 削除 をクリック (画面の指示に従ってください)
これだけです!間違って他のVPCを消す心配もなく、依存関係も自動で処理してくれます。
デフォルトVPCの再作成
削除したデフォルトVPCは、コマンド一発で再作成できます。
aws ec2 create-default-vpc
重要な注意点
公式ドキュメントによると:
The subnet CIDR blocks of your new default VPC may not map to the same Availability Zones as your previous default VPC.
サブネットのCIDRブロックとAZのマッピングは以前と異なる可能性があります。
例:
- 削除前:
172.31.0.0/20がus-east-2aに配置 - 再作成後:
172.31.0.0/20がus-east-2bに配置される可能性
つまり、以前のデフォルトVPCを完全に復元することはできません。
サブネット作成のルール
- サイズは
/20で自動決定(指定不可) - 1つのAZにつき1つのデフォルトサブネットのみ
- デフォルトVPC内でのみ作成可能
- 削除したサブネットを完全復元することは不可
まとめ
- デフォルトVPCは削除可能
-
aws ec2 create-default-vpcで再作成可能 - ただし、以前と同じ構成には戻らない(AZマッピングが変わる可能性)
- リージョンごとに1つのデフォルトVPCのみ
- デフォルトサブネットも個別に作成可能
「デフォルト」という名前から変更不可と思われがちですが、実は柔軟に管理できます。開発環境のリセットや、新しいAZへの対応など、知っておくと便利な小ネタです。
