VPC入門 — EC2とRDSを安全に配置するネットワーク設計
はじめに
VPC(Virtual Private Cloud)はAWS上に作る仮想ネットワークです。
EC2やRDSはVPCの中に配置され、どこからアクセスできるかをサブネットやセキュリティグループで制御します。
VPCの基本構成要素
| 用語 | 説明 |
|---|---|
| VPC | AWS上の仮想ネットワーク空間 |
| サブネット | VPCをさらに分割したネットワーク |
| パブリックサブネット | インターネットからアクセス可能 |
| プライベートサブネット | インターネットから直接アクセス不可 |
| インターネットゲートウェイ(IGW) | VPCをインターネットに接続する出入口 |
| ルートテーブル | サブネットのトラフィックの経路を定義 |
典型的な構成
Javaバックエンドの典型的なVPC設計は以下のとおりです。
インターネット
↓
インターネットゲートウェイ(IGW)
↓
┌─────────────────────────────┐
│ VPC │
│ ┌──────────────────────┐ │
│ │ パブリックサブネット │ │
│ │ EC2(Spring Boot) │ │
│ └──────────┬───────────┘ │
│ │ │
│ ┌──────────▼───────────┐ │
│ │ プライベートサブネット │ │
│ │ RDS(MySQL) │ │
│ └──────────────────────┘ │
└─────────────────────────────┘
- EC2: パブリックサブネットに配置(インターネットから80/443で接続)
- RDS: プライベートサブネットに配置(EC2からのみ接続、インターネットから直接不可)
パブリックサブネットの設定
- VPCを作成(例: CIDR
10.0.0.0/16) - パブリックサブネットを作成(例:
10.0.1.0/24) - インターネットゲートウェイを作成してVPCにアタッチ
- ルートテーブルで
0.0.0.0/0 → IGWを追加 - サブネットにルートテーブルを関連付け
プライベートサブネットの設定
- プライベートサブネットを作成(例:
10.0.2.0/24) - ルートテーブルはインターネットへのルートを追加しない
- RDSをプライベートサブネットに配置
これだけでRDSはインターネットから直接アクセスできなくなります。
セキュリティグループとの組み合わせ
| リソース | インバウンドの設定 |
|---|---|
| EC2 | 80(HTTP)/ 443(HTTPS)/ 22(SSH・自分のIPのみ) |
| RDS | 3306(MySQL)をEC2のセキュリティグループIDからのみ許可 |
まとめ
| やること | 方法 |
|---|---|
| VPC作成 | CIDRを指定して仮想ネットワークを作成 |
| EC2の配置 | パブリックサブネット + IGWでインターネット公開 |
| RDSの配置 | プライベートサブネットでインターネットから隔離 |
| アクセス制御 | セキュリティグループでポート単位に制御 |
EC2とRDSをフルオープンのネットワークに置くのは危険です。VPCでネットワークを分けてRDSを守る設計が基本になります。