AWSでVPCを構築する際、「インターネットに繋ぐ」という要件はほぼ必須です。しかし、AWSにはインターネット接続のためのコンポーネントが複数あり、それぞれの役割や使い分けを正確に理解しておく必要があります。
この記事では、AWS公式ドキュメントをベースに、以下の4つの主要コンポーネントについて、仕組みから設定手順、注意点までを解説します。
- インターネットゲートウェイ (IGW)
- NAT ゲートウェイ (NAT GW)
- Egress-Only インターネットゲートウェイ (EIGW)
- Elastic IP アドレス (EIP)
1. インターネットゲートウェイ (IGW)
VPCとインターネットとの間の通信を可能にする出入り口です。
特徴
- 高い可用性と冗長性: AWS側で管理されており、単一障害点がなく、帯域幅の制限もありません(水平スケーリングします)。
- 1対1のNAT: パブリックIPを持つEC2インスタンスがインターネットへ出る際、プライベートIPをパブリックIPに変換(NAT)する役割も担っています。
設定手順
- 作成: VPCコンソールでインターネットゲートウェイを作成します。
- アタッチ: 作成したIGWを対象のVPCにアタッチします(1つのVPCに1つだけアタッチ可能)。
-
ルーティング: パブリックサブネットのルートテーブルに、
0.0.0.0/0(全トラフィック) のターゲットとしてIGWを設定します。
削除時の注意
IGWを削除(またはデタッチ)するには、そのVPC内でパブリックIPを持つリソースが起動していない状態にする必要があります。
2. NAT ゲートウェイ (NAT GW)
プライベートサブネット内のリソースが、インターネットへ接続するため(ソフトウェア更新のダウンロードなど)に使用します。インターネット側からの接続(インバウンド)は許可しません。
特徴
- フルマネージド: 以前利用されていた「NATインスタンス」と異なり、可用性やスケーリングがAWSによって管理されます。
- アベイラビリティーゾーン (AZ) 単位: NAT GWは特定のAZに作成されます。AZ障害に備える場合は、マルチAZで各ゾーンにNAT GWを作成することが推奨されます。
2つのタイプ
-
パブリック NAT ゲートウェイ: (通常はこちら)
- パブリックサブネットに配置する必要があります。
- Elastic IP (EIP) の割り当てが必須です。
-
プライベート NAT ゲートウェイ:
- 他のVPCやオンプレミスネットワークとの通信に使用(インターネットには出られません)。EIPは不要です。
NAT64 と DNS64
IPv6移行期の機能として、IPv6のみを持つリソースが、NAT GWを経由してIPv4のサービス(GitHubやyumリポジトリなど)にアクセスできるNAT64機能があります。
これを利用するには、サブネットで「DNS64」を有効にし、ルートテーブルでNAT GWへルーティングします。
料金
時間単位の料金に加え、処理されたデータ量 (GB) 単位で課金されます。大量のデータを転送する場合はコストに注意が必要です。
3. Egress-Only インターネットゲートウェイ (EIGW)
IPv6専用のゲートウェイです。IPv6における「NATゲートウェイのような役割」を果たします。
なぜ必要なのか?
IPv6アドレスはグローバルに一意であるため、技術的にはすべてのIPv6リソースが直接インターネットと通信可能です。しかし、セキュリティの観点から「外には出たいが、外から入られたくない」という要件があります。
EIGWを使うことで、IPv6トラフィックのアウトバウンド通信のみを許可し、インバウンド通信をブロックできます。
特徴と設定
- ステートフル: 送信されたリクエストに対する応答トラフィックは許可されます。
-
設定: VPCに作成・アタッチし、ルートテーブルで
::/0のターゲットとしてEIGWを指定します。 - 無料: NATゲートウェイとは異なり、EIGW自体には利用料金はかかりません(データ転送量は別途)。
4. Elastic IP アドレス (EIP)
インターネットから到達可能な静的なパブリック IPv4 アドレスです。
特徴
- 固定IP: インスタンスを停止・起動してもIPアドレスが変わりません(通常のパブリックIPは変更されます)。
- 再マッピング: 障害時にIPアドレスを別のインスタンスに付け替えることで、迅速な復旧(IPアドレスの隠蔽)が可能です。
料金の重要な注意点
EIPは**「確保しているが使っていない」場合に課金**されます。これはIPアドレスの枯渇を防ぐためです。
-
無料の条件:
- 実行中のインスタンスにアタッチされている。
- そのインスタンスにアタッチされているEIPが1つだけである。
-
課金される条件:
- インスタンスにアタッチされていない。
- アタッチされているインスタンスが停止している。
- 1つのインスタンスに2つ以上のEIPをアタッチしている(2つ目以降が課金)。
使い終わったEIPは、必ず解放 (Release) しましょう。
5. まとめ:使い分けチャート
| コンポーネント | IPバージョン | 役割 | 配置場所 | 料金 (本体) |
|---|---|---|---|---|
| インターネットゲートウェイ (IGW) | IPv4 / IPv6 | 双方向通信 (In/Out) | VPCにアタッチ | 無料 |
| NAT ゲートウェイ | IPv4 (IPv6→v4変換可) | アウトバウンド専用 (Outのみ) | パブリックサブネット | 有料 (時間+データ量) |
| Egress-Only IGW | IPv6 専用 | アウトバウンド専用 (Outのみ) | VPCにアタッチ | 無料 |
| Elastic IP (EIP) | IPv4 | 固定パブリックIPの提供 | リソースにアタッチ | 条件付き無料 |
設計のポイント
- Webサーバーなど: IGW + パブリックサブネット + (必要ならEIP)
- DB/アプリサーバー: プライベートサブネット + NAT GW (外部へのアクセスが必要な場合)
- IPv6環境: Egress-Only IGW を活用してセキュリティを確保
これらを適切に組み合わせることで、セキュアで効率的なネットワーク環境を構築できます。
参考リンク