VPCとEC2の関係性を理解しよう!インスタンス作成時のVPC設定の意味とは
生徒
「先生、EC2インスタンスを作るときにVPCを選ぶ画面が出てきますけど、あれって何のためにあるんですか?」
先生
「それはとても大事なところです。VPCはAWSの中であなたのネットワーク環境を作る場所で、EC2インスタンスはその中で動く仮想サーバーなんですよ。」
生徒
「なるほど…つまりVPCが“土台”で、EC2がその上に乗る“家”みたいな感じですか?」
先生
「とても良い例えですね!じゃあ、VPCとEC2の関係や設定項目の意味を詳しく学んでいきましょう!」
1. AWSにおけるVPCとは?初心者向けの基本解説
VPC(Virtual Private Cloud)は、AWSクラウド内に構築できる“仮想的なネットワーク環境”です。AWSユーザーが自由にIPアドレス範囲やルーティング、インターネット接続の有無を設定でき、プライベートな空間としてサーバーやデータベースなどのリソースを安全に配置できます。
VPC内には、サブネット、インターネットゲートウェイ、ルートテーブル、セキュリティグループなどが存在します。これらを組み合わせて、セキュリティと可用性の高いクラウドネットワークを構築することができます。
2. EC2インスタンスとは?VPCとの関係性を理解しよう
EC2(Elastic Compute Cloud)は、AWSが提供する仮想サーバーです。ユーザーは好きなOSやソフトウェアをインストールし、自分だけのサーバー環境をクラウド上に持つことができます。
そしてEC2インスタンスは、必ずどこかのVPCに配置されます。VPCは“家の敷地”、EC2は“その中に建てられた家”のような関係です。敷地がなければ家を建てられないように、VPCがなければEC2インスタンスは起動できません。
3. EC2作成時のVPC設定の意味とは?
EC2インスタンスを作成する際、次のようなVPC関連の設定項目が表示されます:
- VPC:インスタンスを配置するVPCを選択します。
- サブネット:VPC内の区画で、アベイラビリティゾーンごとに異なります。パブリック or プライベートの違いも重要です。
- パブリックIPの自動割り当て:有効にするとインターネット経由でアクセスできます。
- セキュリティグループ:インスタンスのファイアウォール設定です。どのIPからアクセスを許可するかを定義します。
これらはすべて、インスタンスの通信、セキュリティ、可用性に関わる重要な設定です。
4. サブネットとインスタンス配置のベストプラクティス
VPCの中には1つ以上のサブネットを作成できます。サブネットは、AWSのアベイラビリティゾーン(AZ)に属し、パブリックとプライベートの2種類に分かれます。
- パブリックサブネット:インターネットゲートウェイを経由して外部と通信可能なサブネット。
- プライベートサブネット:外部から直接アクセスできない内部用ネットワーク。
たとえば、Webサーバーはパブリックサブネットに配置し、DBサーバーはプライベートサブネットに配置するのが一般的です。
5. EC2とVPCを使ったネットワーク構成例
以下はシンプルなネットワーク構成例です。EC2インスタンスを1台、パブリックサブネットに配置し、インターネットから接続できるようにします。
VPC: 10.0.0.0/16
└── サブネット(パブリック): 10.0.1.0/24
└── EC2インスタンス(Amazon Linux 2)
└── パブリックIP:有効
└── セキュリティグループ:TCP 22(SSH), TCP 80(HTTP)許可
このようにVPCの中にサブネットを作り、その中にEC2インスタンスを配置してインターネットに公開できます。
6. AWS CLIを使ってVPCとEC2を作成する例
AWS CLIを使えば、コードベースでVPCやEC2を作成できます。以下にシンプルなVPCとEC2インスタンスの作成例を示します。
# VPCの作成
aws ec2 create-vpc --cidr-block 10.0.0.0/16
# サブネットの作成
aws ec2 create-subnet --vpc-id vpc-xxxxxxx --cidr-block 10.0.1.0/24
# EC2インスタンスの起動
aws ec2 run-instances \
--image-id ami-xxxxxxxxxxxxxxxxx \
--count 1 \
--instance-type t2.micro \
--key-name MyKeyPair \
--subnet-id subnet-xxxxxxx \
--associate-public-ip-address \
--security-group-ids sg-xxxxxxx
こうした操作を覚えておくと、IaC(Infrastructure as Code)や自動化にも対応できます。
7. セキュリティグループとネットワークACLの違い
EC2とVPCのネットワーク設計にはセキュリティ設定も欠かせません。特によく比較されるのが「セキュリティグループ」と「ネットワークACL」です。
- セキュリティグループ:インスタンス単位の仮想ファイアウォール。ステートフル(戻り通信は許可される)。
- ネットワークACL:サブネット単位で適用されるアクセス制御リスト。ステートレス(戻り通信も明示的に許可が必要)。
通常はセキュリティグループを中心に設定し、必要に応じてACLで制限を加えるのがベストです。
8. EC2インスタンスにパブリックIPを割り当てる意味
インターネットからEC2インスタンスに接続したい場合、パブリックIPの割り当てが必要です。パブリックIPがなければ、SSHやHTTPアクセスはできません。
また、Elastic IPを使えば、再起動後も同じIPアドレスを保持できます。可用性や固定IPが求められる場面ではElastic IPの利用がおすすめです。
9. まとめ
この記事では、AWSにおけるVPC(Virtual Private Cloud)とEC2(Elastic Compute Cloud)インスタンスの関係性について、初心者にもわかりやすく丁寧に解説しました。AWSで仮想サーバーを構築するうえで、VPCはネットワークの基盤であり、EC2はその上に配置する仮想マシンです。この2つは切っても切り離せない関係であり、適切に構成することが、セキュアで拡張性のあるクラウド環境の第一歩です。
特に、EC2インスタンス作成時に出てくるVPCやサブネットの選択、セキュリティグループの設定、パブリックIPの割り当てなどは、インターネット接続やアクセス制御に直結する重要な項目です。AWS CLIを用いたVPC・EC2の構築方法も紹介しましたが、手動操作ではなくコードベースで構成管理をすることで、信頼性と再現性が高まります。
実際のAWS運用では、パブリックとプライベートのサブネットを使い分け、Webアプリケーションを構築する場面も多くあります。EC2インスタンスにElastic IPを紐づけて固定化したり、セキュリティグループでポート制御したりと、ネットワーク設計に関する知識が求められます。これらはすべて、VPCとEC2の仕組みを正しく理解することで対応できるようになります。
では、実際にEC2とVPCを連携させて構築したサンプル構成を以下に紹介します。
VPC: 10.1.0.0/16
├── サブネット(パブリック): 10.1.1.0/24
│ └── EC2: Amazon Linux 2(Webサーバー)
│ └── Elastic IP: 203.0.113.100
│ └── セキュリティグループ: TCP 22, TCP 80許可
└── サブネット(プライベート): 10.1.2.0/24
└── EC2: RDS互換のDBサーバー(非公開)
└── NAT Gateway経由で外部通信
上記のようにVPCとEC2インスタンスを適切に組み合わせることで、セキュアでスケーラブルなクラウド環境が構築可能になります。今後、Auto Scaling、Load Balancer、RDSなどと連携していくうえでも、VPCの基礎知識は欠かせません。今回の学びを通じて、AWSインフラの理解がさらに深まったことでしょう。
生徒
「VPCってただの設定かと思ってましたけど、ネットワークの土台だったんですね!」
先生
「その通り。VPCを理解すれば、EC2だけでなくRDSやELBなど他のサービスにも応用できますよ。」
生徒
「パブリックとプライベートサブネットの違いも、今ならちゃんと説明できそうです!」
先生
「それは素晴らしいですね。VPC設計はセキュリティや拡張性にも関わるので、今のうちにしっかり身につけておきましょう。」
生徒
「これでEC2インスタンスを安心して作れる気がしてきました。AWS CLIも触ってみたいです!」
先生
「ぜひ挑戦してみてください。Infrastructure as Codeの第一歩ですからね!」