はじめに
AWS Solutions Architect Associate (SAA) の学習中に整理した Amazon VPC 関連の知識をまとめました。
VPC はネットワーク設計の基盤であり、サブネットの種類、SG と NACL の違い、VPC Endpoint の使い分け、DNS 設定など、広範囲にわたって出題されます。
本記事は個人の学習ノートをベースにしています。誤りがあればコメントでご指摘いただけると助かります。
サービス概要
サブネットの種類
- パブリックサブネット: IGW へのルートを持つサブネット
- プライベートサブネット: IGW へのルートを持たないサブネット
インターネット接続に必要な条件
EC2 がインターネットに接続するには、以下の すべて が必要です。
- IGW が VPC にアタッチされている
- ルートテーブルに
0.0.0.0/0 → IGWのルートがある - インスタンスにパブリック IP / EIP が割り当てられている
- SG でインバウンドを許可
- NACL でインバウンド / アウトバウンドを許可
NAT Gateway vs NAT Instance
| NAT Gateway | NAT Instance | |
|---|---|---|
| マネージド | ✅ | ❌(自己管理) |
| 帯域幅 | 最大100 Gbps | インスタンスタイプ依存 |
| Security Group | ❌ 関連付け不可 | ✅ 関連付け可能 |
| ポートフォワーディング | ❌ | ✅ |
| バスティオン機能 | ❌ | ✅ |
| 配置 | パブリックサブネット | パブリックサブネット |
VPC Endpoint
| タイプ | 対応サービス | 料金 | 仕組み |
|---|---|---|---|
| Gateway Endpoint | S3, DynamoDB のみ | 無料 | ルートテーブルにエントリ追加 |
| Interface Endpoint(PrivateLink) | その他ほぼすべての AWS サービス | 有料 | ENI(プライベート IP)作成 |
Gateway Endpoint はオンプレミスから直接アクセスできません(VPC 内のみ)。
Security Group vs NACL
| Security Group | NACL | |
|---|---|---|
| ステート | ステートフル | ステートレス |
| インバウンド許可時の戻り | ✅ 自動許可 | ❌ 別途許可必要 |
| 適用レベル | インスタンス(ENI) | サブネット |
| ルール | 許可のみ | 許可 + 拒否 |
| デフォルト | インバウンド全拒否 | インバウンド/アウトバウンド全許可 |
| ルール評価 | 全ルール評価 | 番号順に評価 |
SG ルールのソース / 宛先に指定可能なもの
- ✅ IP アドレス、CIDR、SG ID、プレフィックスリスト ID
- ❌ IGW ID、NACL ID、サブネット ID
プライベート IP レンジ
-
10.0.0.0/8(10.0.0.0 〜 10.255.255.255) -
172.16.0.0/12(172.16.0.0 〜 172.31.255.255) -
192.168.0.0/16(192.168.0.0 〜 192.168.255.255)
Route 53 Resolver Endpoint
| エンドポイント | 方向 | 用途 |
|---|---|---|
| Inbound | オンプレ → AWS | オンプレから AWS の DNS を解決 |
| Outbound | AWS → オンプレ | VPC 内からオンプレの DNS を解決 |
覚え方: In = 入ってくる(オンプレ → AWS)、Out = 出ていく(AWS → オンプレ)
Private Hosted Zone の前提条件
- VPC で DNS hostnames と DNS resolution の両方を有効化
- 非デフォルト VPC では DNS hostnames がデフォルト無効
AZ 名 vs AZ ID
- AZ 名(例: us-west-2a): アカウントごとにマッピングが異なる
- AZ ID(例: usw2-az2): 全アカウントで同じ物理ロケーション
- クロスアカウントで AZ を一致させるには AZ ID を使う
Elastic IP 割り当て可否
| リソース | EIP |
|---|---|
| EC2 | ✅ |
| NLB | ✅ |
| ALB | ❌ |
| ASG | ❌ |
| Global Accelerator | ✅(2つの静的 IP 自動付与) |
試験で問われる設計パターン
ネットワーク接続系
EC2 に ping できない → ルートテーブル + SG
シナリオ: パブリックサブネットに配置した EC2 インスタンスに外部から ping が通りません。原因として考えられるものを2つ選んでください。
正解:
- ルートテーブルに IGW へのルートがあるか確認
- SG が ICMP(ping)を許可しているか確認
- SG はデフォルトで ICMP を許可していない
- VPC にアタッチできる IGW は1つのみ
SG と NACL 両方でインバウンド許可したのに接続不可 → NACL のアウトバウンド
シナリオ: SG と NACL の両方でインバウンドの HTTP トラフィックを許可しましたが、接続がうまくいきません。見落としている原因は何でしょうか?
正解: NACL はステートレスなので、インバウンドとアウトバウンドの両方を許可する必要がある
- SG はステートフル(戻りトラフィック自動許可)
- NACL はステートレス → エフェメラルポート(1024-65535)のアウトバウンドも許可する
プライベートサブネット + IPv4 + フルマネージド → NAT Gateway
シナリオ: プライベートサブネットの EC2 からインターネットにアウトバウンドアクセスしたいです。フルマネージドのソリューションはどれでしょうか?
正解: NAT Gateway(パブリックサブネットに配置)
- NAT Instance は自己管理(フルマネージドではない)
- Egress-only IGW は IPv6 専用
- プライベートサブネットに IGW ルートを追加するとパブリックになる
3AZ での NAT 配置
シナリオ: 3つの AZ にまたがる VPC で NAT Gateway を配置したいです。どのように配置すべきでしょうか?
正解: 各 AZ のパブリックサブネットに NAT Gateway を1つずつ(計3つ)
- AZ ごとに1つで AZ 障害時の影響を分離
VPC Endpoint 系
Gateway Endpoint をサポートするサービス → S3 と DynamoDB のみ
シナリオ: VPC Gateway Endpoint に対応している AWS サービスはどれでしょうか?
正解: Amazon S3 + Amazon DynamoDB
- その他は Interface Endpoint(PrivateLink)
- Gateway は無料、Interface は有料
VPC から SQS にプライベートアクセス → Interface Endpoint
シナリオ: VPC 内の EC2 から SQS にインターネットを経由せずにアクセスしたいです。どの方法が適切でしょうか?
正解: VPC Interface Endpoint(PrivateLink)
- SQS は Gateway Endpoint 非対応
- IGW / VPN / NAT Instance はインターネット経由
プライベートサブネット → S3 + コスト最適化 → Gateway VPC Endpoint
シナリオ: プライベートサブネットの EC2 が NAT Gateway 経由で S3 にアクセスしています。コストを最適化するにはどうすればよいでしょうか?
正解: S3 用 VPC Gateway Endpoint + ルートテーブル更新
- NAT Gateway 経由の S3 トラフィックにはデータ処理料金がかかる
- Gateway Endpoint は無料
- Egress-only IGW は IPv6 専用
DNS 系
VPC からオンプレ DNS を解決 → Route 53 Resolver Outbound Endpoint
シナリオ: VPC 内のアプリケーションからオンプレミスのプライベートドメインを解決したいです。どの機能を使うべきでしょうか?
正解: Route 53 Resolver Outbound Endpoint + Forwarding Rule
- VPC → オンプレ = Outbound
- オンプレ → AWS = Inbound
ハイブリッド DNS 解決(双方向)→ Inbound + Outbound Endpoint
シナリオ: オンプレミスから AWS の DNS を解決し、AWS からオンプレミスの DNS も解決したいです。双方向の DNS 解決に必要なものは?(2つ選択)
正解:
- Inbound Endpoint(オンプレ → AWS)
- Outbound Endpoint(AWS → オンプレ)
- Universal Endpoint は存在しない
Private Hosted Zone が動かない → DNS 設定の有効化
シナリオ: Route 53 Private Hosted Zone を作成しましたが、VPC 内の EC2 からドメインを解決できません。原因は何でしょうか?
正解: VPC で DNS hostnames と DNS resolution の両方を有効化する
- 非デフォルト VPC では DNS hostnames がデフォルト無効
VPC 間接続系
少数 VPC 間の接続 + コスト最適 → VPC Peering
シナリオ: 少数の VPC を相互接続したいです。コストを最小限に抑えるにはどの方法が最適でしょうか?
正解: VPC Peering
- VPC Peering はデータ転送のみ課金(インフラ料金なし)
- 10未満の VPC 接続に最適
- 10以上は Transit Gateway 推奨
複数アカウントの EC2 間プライベート通信(最安)→ RAM でサブネット共有
シナリオ: 複数の AWS アカウントに所属する EC2 同士を、最もコストを抑えてプライベートに通信させたいです。どの方法が最適でしょうか?
正解: 1つの VPC のサブネットを AWS RAM で共有
- RAM は追加料金なし
- Transit Gateway はコストが高い
- VPC Peering は N×N の接続が必要
サードパーティ SaaS への一方向プライベート接続 → PrivateLink
シナリオ: サードパーティの SaaS API にインターネットを経由せず、一方向のプライベート接続で通信したいです。どの方法が最適でしょうか?
正解: AWS PrivateLink(Interface VPC Endpoint)
- 一方向通信(コンシューマー → プロバイダー)→ セキュリティ向上
- VPC ピアリングは双方向
- Site-to-Site VPN は複雑
コスト最適化系
EC2 間レプリケーションのコスト削減 → プライベート IP 使用
シナリオ: 同一 VPC 内の EC2 間でデータをレプリケーションしています。データ転送コストを最小化するにはどうすればよいでしょうか?
正解: プライベート IP を使用(パブリック IP を避ける)
- パブリック IP を使うとインターネット経由になりコストが高い
- プライベート IP なら AWS 内部ネットワーク経由
データ転送エグレスコスト最小化 → ツールを AWS に配置
シナリオ: オンプレミスの可視化ツールが AWS のデータを大量にダウンロードしています。エグレスコストを最小化するにはどうすべきでしょうか?
正解: 可視化ツールを AWS リージョン内にデプロイ + Direct Connect
- 大きなデータは AWS 内で完結させ、小さな結果だけを外に出す
- Direct Connect のデータ転送料金 < インターネットのデータ転送料金
セキュリティ系
SG のソースに指定できるもの / できないもの
シナリオ: セキュリティグループのインバウンドルールで、ソースに Internet Gateway ID を指定できますか?
正解: できません
- 指定可能: IP、CIDR、SG ID、プレフィックスリスト
- 指定不可: IGW、NACL、サブネット ID
AZ を跨いだ同一物理ロケーションの特定 → AZ ID
シナリオ: 異なる AWS アカウント間で、EC2 を同じ物理 AZ に配置したいです。どの識別子を使うべきでしょうか?
正解: AZ ID(例: usw2-az2)
- AZ 名はアカウントごとに異なる物理ロケーションにマッピングされる可能性がある
- AZ ID は全アカウントで同じ物理ロケーションを指す
固定パブリック IP + HA + スケーリング → NLB + ASG
シナリオ: 固定の IP アドレスでクライアントのファイアウォールにホワイトリスト登録する必要があります。HA とスケーリングも確保したい場合、どの構成が最適でしょうか?
正解: NLB + Auto Scaling Group
- NLB は Elastic IP 対応、ALB / CLB は固定 DNS(IP 変動)
- 「IP ホワイトリスト」→ NLB 一択
IAM 条件キー系
aws:SourceIp と aws:RequestedRegion の違い
-
aws:SourceIp= API 呼び出し元の IP(インスタンスの IP ではない) -
aws:RequestedRegion= API コールのターゲットリージョン
おわりに
VPC は SAA の中でも最も出題範囲が広いトピックの一つです。「SG はステートフル / NACL はステートレス」「Gateway Endpoint は S3 と DynamoDB のみで無料」「AZ 名と AZ ID の違い」など、基本的なルールを確実に押さえておくと、試験で迷うことが大幅に減ります。
間違いや補足があればぜひコメントで教えてください。