この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、菊池です。
昨日、2017年7月27日のアップデートにより、デフォルトVPCの新規作成が可能になりました。
デフォルトVPCとは
AWSアカウントを作成するとデフォルトで用意されているVPCで、全てのリージョンにあらかじめ設定されています。
EC2インスタンスを新規作成する際には、VPC、サブネットを明示的に指定しなければデフォルトVPC内に起動されます。デフォルトVPCには以下のコンポーネントも用意されます。
- VPC
- デフォルトのサブネット
- IGW
- IGWへの経路を持つメインルートテーブル
- デフォルトのセキュリティグループ
- デフォルトのネットワークアクセスコントロールリスト (ACL)
- DHCP オプションセット
このデフォルトVPCは削除することも可能です。しかし、これまでは、削除してしまったデフォルトVPCを再作成するためには、AWSサポートへ設定を依頼する必要がありました。今回のアップデートにより、デフォルトVPCをユーザー自身で作成することが可能になりました。
作成してみる
マネジメントコンソールから
マネジメントコンソールからデフォルトVPCを作成します。
デフォルトVPCは1リージョンに1つしか作成できませんので、まずは既存のデフォルトVPCを削除します。VPCを削除すると、VPC内の全てのリソースも削除されますので、利用していないロンドンリージョンを使って試しました。
確認画面が出ますので、問題なければチェックして削除します。
デフォルトVPCが削除されると、新規作成が可能になります。[アクション]->[デフォルトVPCの作成]を選択します。
確認画面が出るので、Createを選択。CIDRなども固定の値が設定されますので、特に指定するオプションはありません。
作成できたようです。
一覧にも、新しいデフォルトVPCが表示されました。
AWS CLIから
AWS CLIからはcreate-default-vpc
コマンドで作成可能です。(AWS CLIを最新にアップデートしましょう)
まずはデフォルトVPCがないことを確認します。
$ aws ec2 --region eu-west-2 describe-vpcs
{
"Vpcs": []
}
デフォルトVPCが存在しないことが確認できますので、作成してみます。
$ aws ec2 --region eu-west-2 create-default-vpc
{
"Vpc": {
"VpcId": "vpc-xxxxxxxx",
"InstanceTenancy": "default",
"Tags": [],
"Ipv6CidrBlockAssociationSet": [],
"State": "pending",
"DhcpOptionsId": "dopt-xxxxxxxx",
"CidrBlock": "172.31.0.0/16",
"IsDefault": true
}
}
再度、VPCを確認しました。
$ aws ec2 --region eu-west-2 describe-vpcs
{
"Vpcs": [
{
"VpcId": "vpc-xxxxxxxx",
"InstanceTenancy": "default",
"State": "available",
"DhcpOptionsId": "dopt-xxxxxxxx",
"CidrBlock": "172.31.0.0/16",
"IsDefault": true
}
]
}
IsDefault
がtrue
のVPCができています。ちなみに、すでにデフォルトVPCがある状態で作成を試みると、
$ aws ec2 --region eu-west-2 create-default-vpc
An error occurred (DefaultVpcAlreadyExists) when calling the CreateDefaultVpc operation: A Default VPC already exists for this account in this region.
このようにエラーになります。
最後に
これまでサポートに依頼しなければ再作成出なかった、デフォルトVPCの新規作成が可能になりました。私自身、不要だと思ってうっかり削除してしまい、作成方法がわからなくなった経験もあります。ユーザーがセルフでできることが増えるのは嬉しいですね。