まず押さえるべき4つのポイント
🏘️ たとえ話で理解する「VPCとデュアルスタック」
初心者向けVPCとデュアルスタックを「街の住所体系」に例えてみましょう。あなたが新しい街(=AWS)に自分だけのニュータウンを建設する場面を想像してください。
🏙️ あなたのニュータウン(= VPC)の全体像
🏘️ ニュータウンの世界
- ニュータウン全体 = 壁で囲まれた自分だけの街
- 旧住所(4桁) = 昔からある短い住所体系(数に限りあり)
- 新住所(長い英数字) = 新しくて超大量の住所体系
- 両方の住所が書かれた表札 = デュアルスタック設定
- 正面ゲート = 来客(外部)が通る入口
- 裏口ゲート = 住人だけが外出に使う出口
☁️ AWSの世界
- VPC = 論理的に分離された仮想ネットワーク空間
- IPv4アドレス = 従来の32ビットアドレス(約43億個で枯渇問題)
- IPv6アドレス = 128ビットの次世代アドレス(ほぼ無限)
- デュアルスタック = IPv4/IPv6両方を割り当てた構成
- Internet Gateway = VPCとインターネットの接続口
- NAT Gateway = プライベートリソースの外向き通信
🏗️ VPCの基本構造
AWSクラウド内に自分だけのネットワーク空間を作る仕組み
VPCの構成レイヤー
VPCはリージョン単位で作成され、その中に複数のアベイラビリティーゾーン(AZ)をまたいでサブネットを配置できます。各サブネットは1つのAZにのみ所属し、パブリック(外部通信可能)とプライベート(内部専用)に分けて使うのが基本パターンです。デュアルスタック構成では、すべてのサブネットにIPv4とIPv6両方のCIDRブロックを割り当てます。
🔄 3つのスタックモード
VPCで選べるIPアドレスの組み合わせパターン
IPv4 のみ
従来の標準構成。ほとんどの既存システムはこのモード。プライベートIP範囲(10.x.x.x など)から選択する。
従来のデフォルトIPv6 のみ
IPv6アドレスだけを使用。コスト最適化やIPv6ネイティブ環境向け。一部サービスは未対応の場合あり。
新しい選択肢デュアルスタック
IPv4とIPv6を同時に使用。移行期の最適解。既存システムとIPv6環境の両方と通信できる。
推奨構成デュアルスタック通信の仕組み
⚖️ IPv4 と IPv6 の比較
旧住所(IPv4)と新住所(IPv6)の違いを一覧で整理
| 比較項目 | IPv4(旧住所) | IPv6(新住所) |
|---|---|---|
| アドレスの長さ | 32ビット(4つの数字の組) | 128ビット(8つの16進数グループ) |
| 表記例 | 10.0.1.10 | 2600:1f00:6000:a100::1 |
| アドレス総数 | 約43億(2³²)── 枯渇問題あり | 約340澗(2¹²⁸)── 実質無限 |
| VPC CIDRの例 | 10.0.0.0/16(65,536 IPs) | /56(Amazon提供、膨大なIPs) |
| サブネットCIDRの例 | /24(256 IPs) | /64(約1844京 IPs) |
| プライベート範囲 | 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | すべてグローバルユニーク(NATが基本不要) |
| AWSでの提供 | ユーザーがCIDRを選択 | Amazon提供の/56 CIDRを使用 |
| NAT Gatewayの必要性 | プライベートサブネットからの外向き通信に必要 | Egress-only Internet Gatewayを使用 |
📐 CIDRブロック設計
VPCとサブネットのアドレス範囲の決め方
4️⃣ IPv4 CIDRブロック
RFC 1918で定義されたプライベートIP範囲から選びます。たとえ話でいうと「ニュータウンの区画番号」のルールです。
- 📘
10.0.0.0/8── 大規模向け(約1677万アドレス) - 📗
172.16.0.0/12── 中規模向け(約104万アドレス) - 📙
192.168.0.0/16── 小規模向け(約65,000アドレス)
6️⃣ IPv6 CIDRブロック
IPv6はAWSが自動的に/56のCIDRブロックを割り当ててくれます。ユーザーが範囲を選ぶ必要はありません。
- 🔮 VPC全体に
/56を割り当て(256個のサブネットが可能) - 🔮 各サブネットに
/64を割り当て(約1844京アドレス) - 🔮 すべてグローバルアドレス(プライベート範囲の概念なし)
デュアルスタック サブネット設計の例
🛤️ IPv4からIPv6への移行パス
段階的にデュアルスタックへ移行する推奨ステップ
IPv4のみ
既存の構成。
多くの環境がここからスタート
デュアルスタック
VPCにIPv6 CIDRを追加。
両方のプロトコルで通信可能に
IPv6のみ(将来)
IPv4を段階的に廃止。
IPv6ネイティブ環境へ
🔧 デュアルスタックVPCの構築手順
AWS CLIを使った実装の流れ
VPCを作成し、IPv6 CIDRを関連付ける
まずIPv4のVPCを作成し、その後AmazonのIPv6プールからIPv6 CIDRブロックを追加します。
AWS CLIサブネットにIPv6 CIDRを割り当てる
既存のサブネットまたは新規サブネットにIPv6の/64 CIDRを追加します。
AWS CLIルートテーブルを更新する
IPv6トラフィックのルートを追加します。パブリックサブネットはIGW、プライベートサブネットはEgress-only IGWを使います。
AWS CLIセキュリティグループを更新する
IPv6アドレスからのトラフィックを許可するルールを追加します。IPv6の「すべて」は ::/0 で表記します。
EC2インスタンスにIPv6を割り当てる
起動時に自動割り当てを有効化するか、既存インスタンスに手動でIPv6アドレスを割り当てます。
AWS CLI💼 デュアルスタックの活用シーン
どんな場面でデュアルスタック構成が役立つのか
グローバルWebサービス
世界中のユーザーがIPv4/IPv6のどちらからでもアクセスできるWebサイトやAPIを提供。モバイルキャリアのIPv6移行に対応。
必須レベルモバイルアプリバックエンド
AppleのApp Store審査ではIPv6対応が必須。モバイルキャリアの多くがIPv6をデフォルトで使用するため、対応は不可欠。
必須レベルハイブリッドクラウド環境
オンプレミスとAWSの間でIPv4/IPv6の両方を使い、移行期にも通信を中断しない構成を実現。
推奨IoT / 大規模デバイス管理
膨大な数のIoTデバイスにIPv6のグローバルアドレスを直接付与。NATを通さないシンプルな通信が可能に。
先進ユースケース✅ ベストプラクティス
デュアルスタックVPC運用で押さえるべき6つの原則
新規VPCはデュアルスタックで
最初からIPv6を有効にしておくと、後から追加する手間が省ける。
セキュリティグループをIPv6対応に
IPv6ルールを忘れると意図しない通信遮断が起きる。IPv4とIPv6の両方を明示的に設定。
Egress-only IGWを活用
プライベートサブネットのIPv6リソースが外部にアクセスする際は、NAT Gatewayの代わりに使う。
DNS設定を確認する
AAAAレコード(IPv6用)の登録を忘れずに。Route 53でAとAAAAの両方を設定する。
段階的にテストする
まず非本番環境でデュアルスタックを有効化し、動作確認してから本番へ展開する。
VPC Flow Logsで監視
IPv4/IPv6両方のトラフィックをFlow Logsで記録し、意図しない通信がないか監視する。
⚠️ デュアルスタック構成の注意点
- すべてのAWSサービスがIPv6に対応しているわけではない。使用するサービスの対応状況を事前に確認すること
- IPv6アドレスはすべてグローバルユニークなため、セキュリティグループとネットワークACLの設定がより重要になる
- 既存のVPCにIPv6を追加する場合、ルートテーブル・セキュリティグループ・NACLの更新を漏れなく行う必要がある
- IPv4の
0.0.0.0/0と IPv6の::/0は別のルールとして管理される。片方だけ設定するとトラフィックが片寄る - Egress-only Internet GatewayはIPv6専用。IPv4のNAT GatewayとIPv6のEgress-only IGWの両方が必要な場合がある
❓ よくある質問
デュアルスタックに関する疑問を解消
associate-vpc-cidr-block コマンドでIPv6 CIDRを追加し、各サブネットにもIPv6 CIDRを割り当てることで、既存の構成を壊さずにデュアルスタック化できます。ルートテーブルとセキュリティグループの更新を忘れないようにしましょう。📝 まとめ
VPCのデュアルスタック構成は、IPv4の世界とIPv6の世界を橋渡しする「二刀流」のネットワーク設計です。新規構築なら最初からデュアルスタックを選択し、既存環境でも段階的にIPv6を追加していくのが現在のベストプラクティスです。
VPC = 自分だけの
ネットワーク空間
デュアルスタック =
IPv4 + IPv6 併用
IPv4は/24
IPv6は/64が標準
新規は最初から
デュアルスタックで