AWS VPCの作成手順と主要な構成要素(サブネット・ルートなど)をやさしく解説!初心者でもわかるクラウドネットワーク構築
生徒
「先生、AWSでVPCを作るってどういうことなんですか?難しそうで不安です…。」
先生
「大丈夫ですよ。VPC(ブイピーシー)は、AWSで自分専用のネットワークを作る仕組みなんです。今回はその作り方と、よく使う構成要素について初心者向けにやさしく説明しますね。」
生徒
「ありがとうございます!サブネットとかルートとかも出てきて混乱していたので助かります!」
先生
「それでは、順を追って説明していきましょう!」
1. AWS VPCとは?
VPC(読み方:ブイピーシー)は、Virtual Private Cloud(バーチャル・プライベート・クラウド)の略で、AWS(アマゾン・ウェブ・サービス)上に自分専用の仮想ネットワークを作る仕組みです。
VPCを使うことで、サーバーやデータベースを安全な空間に設置し、外部からのアクセス制限や通信ルールを自由に設定することができます。
2. VPC作成の準備
AWSマネジメントコンソール(読み方:マネジメントコンソール)にログインし、「VPC」サービスを選びます。
次に、「VPCウィザードを使う」または「VPCを手動で作成する」を選びます。初心者にはウィザードがおすすめです。
3. ステップ①:VPCの作成
VPCの基本的な作成ステップは以下の通りです:
- 名前タグを入力(例:my-vpc)
- IPv4 CIDRブロック(アイピーブイヨン・シーアイディーアール)を指定(例:10.0.0.0/16)
- このブロックは「使えるIPアドレスの範囲」を意味します
これで、自分専用のネットワーク枠ができました。
4. ステップ②:サブネットの作成
サブネット(読み方:サブネット)は、VPCの中をさらに小さく分ける区画です。用途によって「パブリックサブネット」と「プライベートサブネット」を作成します。
- パブリックサブネット: 外部と通信できるエリア
- プライベートサブネット: 外部と通信できない安全なエリア
それぞれに名前とIP範囲(CIDRブロック)を設定します。例:「10.0.1.0/24」や「10.0.2.0/24」など。
5. ステップ③:インターネットゲートウェイの作成と接続
インターネットゲートウェイ(読み方:インターネットゲートウェイ)は、VPCとインターネットをつなぐ橋のような役割を持っています。
作成手順:
- 「インターネットゲートウェイ」を作成し、名前をつけます
- 作成したら「VPCにアタッチ(接続)」します
この接続により、パブリックサブネットが外部と通信できるようになります。
6. ステップ④:ルートテーブルの作成と設定
ルートテーブル(読み方:ルートテーブル)は、通信の通り道を決める表のようなものです。
作成後、以下の設定を行います:
- 「デフォルトルート(0.0.0.0/0)」を作り、宛先をインターネットゲートウェイに指定
- このルートテーブルを「パブリックサブネット」に関連付け
これで、パブリックサブネットからインターネットへの通信が可能になります。
7. ステップ⑤:セキュリティグループとネットワークACLの設定
セキュリティグループ(読み方:セキュリティグループ)は、EC2(イーシーツー)などのインスタンスに適用される「通信の許可ルール」です。
ネットワークACL(読み方:エーシーエル)は、サブネット全体に対する通信ルールです。
よくある設定例:
- セキュリティグループでポート22(SSH)や80(HTTP)を許可
- ネットワークACLで「すべての通信を許可」にしておく(初心者向け)
8. ステップ⑥:確認と動作テスト
VPC、サブネット、ゲートウェイ、ルートテーブル、セキュリティ設定がそろったら、EC2インスタンスなどを作成して動作確認をします。
例えば、パブリックサブネット内のEC2に接続してインターネットに出られるかをテストすると良いでしょう。
このように、VPCの作成にはいくつかのステップがありますが、1つずつ確実に設定していけば、初心者でも安心してネットワークを構築できます。
まとめ
ここまで、AWSのネットワーク基盤であるVPC(Virtual Private Cloud)の作成手順と、それぞれの構成要素が持つ役割について詳しく解説してきました。クラウドを活用する上で、自分専用の安全な領域を確保するVPCの理解は、どんなシステムを構築するにしても避けては通れない非常に重要なステップです。
改めて振り返ると、VPC構築は単に「箱を作る」作業ではありません。IPアドレスの範囲を決めるCIDRブロック(シーアイディーアール)の設計から始まり、外部との通信を制御するインターネットゲートウェイ、そしてデータの道しるべとなるルートテーブルの設定まで、これらが組み合わさることで初めて、安全かつ機能的なネットワークとして動き出します。
設計時に意識したいIPアドレスの考え方
初心者の方が最初につまずきやすいのが、IPv4 CIDRの設定です。例えば「10.0.0.0/16」と設定した場合、約65,000個ものIPアドレスが確保されますが、これをどのようにサブネットへ切り分けていくかが運用の鍵となります。
将来的に別のVPCと接続(VPCピアリング)したり、オンプレミス環境とVPN接続したりする可能性がある場合、IPアドレスが重複していると通信ができなくなってしまいます。そのため、作成時には余裕を持った、かつ他と被らない設計を心がけるのが「クラウドエンジニア」への第一歩です。
自動化に向けたTerraformでのVPC定義サンプル
手動での作成に慣れてきたら、構成管理をコード化する「IaC(Infrastructure as Code)」にも挑戦してみましょう。ここでは、今回学んだVPC、サブネット、インターネットゲートウェイを定義するコードの例を紹介します。
# VPCの定義
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
instance_tenancy = "default"
tags = {
Name = "my-sample-vpc"
}
}
# サブネットの定義
resource "aws_subnet" "public_sub" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
availability_zone = "ap-northeast-1a"
tags = {
Name = "public-subnet-1a"
}
}
# インターネットゲートウェイの作成
resource "aws_internet_gateway" "igw" {
vpc_id = aws_vpc.main.id
tags = {
Name = "main-igw"
}
}
コマンドラインでの状態確認
作成したVPCが正しくAWS上に存在するか、AWS CLI(コマンドラインインターフェース)を使って確認する習慣をつけると、トラブルシューティングの際に非常に役立ちます。
aws ec2 describe-vpcs --query "Vpcs[*].{ID:VpcId,Cidr:CidrBlock,State:State}" --output table
-------------------------------------------------------
| DescribeVpcs |
+-----------------------+----------------+------------+
| ID | Cidr | State |
+-----------------------+----------------+------------+
| vpc-0a1b2c3d4e5f6g7 | 10.0.0.0/16 | available |
+-----------------------+----------------+------------+
ネットワークのセキュリティを一段階上げるために
記事の中で紹介した「セキュリティグループ」と「ネットワークACL」の違いについても、もう一度整理しておきましょう。
| 機能 | 適用範囲 | 性質 | 設定方法 |
|---|---|---|---|
| セキュリティグループ | インスタンス単位(EC2など) | ステートフル(戻り通信を自動許可) | 「許可」のみ設定可能 |
| ネットワークACL | サブネット単位 | ステートレス(戻り通信も設定が必要) | 「許可」と「拒否」を設定可能 |
最初はセキュリティグループだけで十分ですが、より強固な守りが必要な大規模システムでは、サブネットの境界線でネットワークACLを使い、特定のIPアドレスからのアクセスを拒否するなどの二重の対策を講じます。
最後に
VPCの構築は、いわば「家を建てるための土地の区画整理」です。ここがしっかりしていないと、その上にどれだけ高性能なサーバーを立てても、通信が不安定になったりセキュリティに穴が空いたりしてしまいます。 一見、設定項目が多くて大変に感じるかもしれませんが、「どことどこを繋ぐための設定なのか」を常に意識すれば、パズルを解くように楽しく構築できるはずです。まずは自分の手でVPCを作成し、実際にパブリックサブネットとプライベートサブネットを分けてみることから始めてみてください。
生徒
「先生、ありがとうございました!一通りまとめてみて、VPCがただの『場所』ではなくて、通信のルールが詰まった『仕組み』なんだってことがよくわかりました。」
先生
「その通りです!特にルートテーブルやインターネットゲートウェイの役割が理解できれば、AWSのネットワークの半分以上をマスターしたと言っても過言ではありませんよ。」
生徒
「さっきのTerraformのコードやCLIのコマンドも見てみたのですが、画面でポチポチする以外にも色んな管理方法があるんですね。プロっぽくてかっこいいです!」
先生
「ふふ、そうですね。実務ではあのようにコードで管理することが多いんです。でも、まずはコンソール画面で『このボタンを押すと何が起きるのか』を体感するのが一番の近道ですよ。次は実際に、プライベートサブネットにデータベースを置いて、パブリックサブネットから接続する構成に挑戦してみましょうか。」
生徒
「はい!プライベートサブネットは外部から直接見えないから安全なんですよね。自分の手で守られた環境を作れるようになりたいです。頑張ります!」