>100 Views
January 28, 26
スライド概要
JAWS-UG 茨城 #11 CDK 支部コラボ回
2026/2/1
Qiita や Zenn でいろいろ書いてます。 https://qiita.com/hmatsu47 https://zenn.dev/hmatsu47 MySQL 8.0 の薄い本 : https://github.com/hmatsu47/mysql80_no_usui_hon Aurora MySQL v1 → v3 移行計画 : https://zenn.dev/hmatsu47/books/aurora-mysql3-plan-book https://speakerdeck.com/hmatsu47
IPv6 VPC の実装パターンをいくつか JAWS-UG 茨城 #11 CDK 支部コラボ回 2026/2/1 まつひさ(hmatsu47)
自己紹介 松久裕保(@hmatsu47) ● https://qiita.com/hmatsu47 ● 現在: ○ 名古屋で Web インフラのお守り係をしています ○ SRE チームに所属しつつ技術検証の支援をしています ○ 普段カンファレンス・勉強会では DB の話しかしていません (ほぼ)でした 2
本日のお題 ● すでに身近なところで使われているのに、あまり馴染み のない IPv6 について、VPC での実装パターン(基礎的な もの)を見ていきます 3
それって茨城か CDK に 関係あるんですか? 4
むかしむかし ● ソフトイーサと筑波大学が IPv6 の実験的サービスを提供 していました https://www2.softether.jp/jp/news/100607v6.aspx 5
ちなみに私は ● こちらのサービス(フレッツ向け IPv6 DDNS)のお世話に なっていました https://i.open.ad.jp/ 6
無理矢理感いっぱいですが 先に進みます 7
おことわり ● これは BuriKaigi 2026(1/9)で話した「AWS で試して 学ぶ IPv6」というセッションのダイジェストに、 JAWS-UG 横浜の re:Invent 2025 re:Cap Network 回 (1/24)で話した IPv6 絡みの話を一部加筆する形で再構 成したものです 8
詳細はこちらで ● BuriKaigi 2026(1/9)で「AWS で試して学ぶ IPv6」と いうタイトルのセッションをしたときの補足資料(Zenn) ○ https://zenn.dev/hmatsu47/books/burikaigi2026-aws-ipv6-study 9
おしながき 別資料(Zenn)→ ● IP アドレス(グローバルアドレス)利用の現況について ● ①IPv6 対応前の IPv4 環境について(初期状態) ● ②サーバー環境の IPv6 対応(デュアルスタック化) ● ③クライアント環境の IPv6 対応(デュアルスタック編) ● ④クライアント環境の IPv6 対応(NAT64/DNS64 編) ● ⑤サーバー環境のターゲットを IPv6(ULA)化 10
IP アドレス(グローバルアドレス) 利用の現況について 11
新規割り当て用 IPv4 アドレスブロックはほぼ枯渇 ● RIR(地域インターネットレジストリ)の IPv4 アドレス在庫 ● AFRINIC(アフリカ地域) ・APNIC(アジア太平洋地域)を 除くと利用可能(Available)な アドレスの在庫はすでに 0 ● AFRINIC・APNIC 合計で残り 約 400 万個(2025Q3 時点) →現在は未使用アドレスブロックの移転 が中心に 出典 : https://www.nro.net/wp-content/uploads/NRO-Number-Resource-Status-Report-Q3-2025-FINAL.pdf 12
2024/2 〜 AWS パブリック IPv4 アドレス有料化 ● すべてのパブリック IPv4 アドレスの利用に対して 1 IP アドレスあたり 0.005 USD/hour が課金されるように ○ 2024 年 2 月 1 日より ○ https://aws.amazon.com/jp/blogs/news/new-aws-public-ipv4-address-cha rge-public-ip-insights/ ○ CloudFront などはサービス本体の料金以外に課金なし 13
IPv6 アドレスの利用状況は? ● 見えないところで利用が進んでいる(日本のケース) ● 2023 年に 50% を超えた ● ここ 2 年で IPv6 Capable が 60% に迫っている ● モバイルに限ればもっと進ん でいる データの出典 : APNIC Labs Measurements and Data / https://labs.apnic.net/measurements/ IPv6 Capable は「IPv6 に到達できた端末の割合」・IPv6 Preferred は「デュアルスタックで IPv6 が選ばれた割合」 14
①IPv6 対応前の IPv4 環境について (初期状態) 15
IPv4 VPC 環境(初期状態) ● 2 種類の VPC 環境を作成 ○ サーバー用 VPC 環境 ■ VPC・ALB・EC2(Web サーバー)など ○ クライアント用 VPC 環境 ■ VPC・VPC エンドポイント ・EC2(クライアント)な ど 16
サーバー用 VPC および関連リソース 17
クライアント用 VPC・関連リソース 18
②サーバー環境の IPv6 対応 (デュアルスタック化) 19
この構成のねらい ● ALB をデュアルスタック化することで、インターネット から IPv4・IPv6 の両方でアクセス可能にする ○ Web サーバーについては IPv4 のまま変更なし ○ ただしアプリケーション側での IPv6 アドレス対応は必要 ■ 画面表示、データ保存領域、アドレスの比較など 20
サーバー環境の IPv6 対応(デュアルスタック化) IPv6(GUA)割り当て ALBデュアルスタック化 IPv6デフォルトルート追加 21
ALB のデュアルスタック化 ● IPv6 は IPv4 とは互換性がない ○ IPv6 と IPv4 は直接通信を行うことができない ● 両方が動作する構成=デュアルスタック ○ ALB をデュアルスタック化しておけばターゲット Web サーバー を IPv6 対応にする必要はない ■ ただしアプリケーション側の対応は必要(後述) ○ ちなみに CDK(L2 Construct)でサポートされたのは 2024/1 ■ https://github.com/aws/aws-cdk/releases/tag/v2.121.0 22
IPv6 アドレスの構成 ● 全 128 ビット・16 ビットずつ「:」区切り・十六進表記 ○ 前半 64 ビットをサブネットプレフィックス、後半 64 ビットを インターフェース識別子(IID)と呼ぶ ○ 長くなるので省略ルールがある ■ 16 ビット区切りのフィールドの先頭で連続する 0 は省略可 ■ 連続する 16 ビットフィールドの 0 は「::」で省略可(1 か所のみ) ● 例:2001:db8::2:0:1/64 23
IPv6 グローバルユニキャストアドレス(GUA) ● 全世界で一意に割り当てられたアドレス ○ IPv4 のグローバルアドレス相当 ● IPv4 のプライベートアドレスに類似のアドレスとして、 ユニークローカルユニキャストアドレス(ULA)がある ○ ただし IPv6 ULA と GUA の間での NAT は非推奨 ■ AWS の NAT ゲートウェイでも非サポート ■ インターネットアクセスが必要なら(本来は)GUA を割り当てる必要がある 24
アプリケーション側で必要な対応 ● 文字数が増える分の表示領域・データサイズ調整が必要 ○ IPv4 ならサブネット長なしで最大 15 文字、ありで最大 18 文字 ○ IPv6 ではサブネット長なしで最大 39 文字、ありで最大 42 文字 ○ DB で IP アドレス専用のデータ型を使わない場合も注意 ● 文字列として IPv6 を比較する場合、一意な表記(または 省略なしの表記)にしないと正しく比較できない ○ RFC 5952 で一意に表記する方法が示されている 25
③クライアント環境の IPv6 対応 (デュアルスタック編) 26
この構成のねらい ● プライベートサブネットおよび EC2 クライアントをデュ アルスタック化し、インターネットへ IPv6 アクセス可能 にする ○ IPv6 用経路として Egress Only インターネットゲートウェイ (EIGW)を作成 27
クライアント環境の IPv6 対応(デュアルスタック) IPv6(GUA)割り当て EIGW作成 IPv6デフォルトルート追加 28
クライアント環境のデュアルスタック化 ● クライアント自身が IPv4・IPv6 それぞれの通信スタック を使って相手のホストと通信する ○ 外部の IPv4 ホスト宛ての通信は IPv4 デフォルトルートで NAT ゲートウェイに流す ○ 外部の IPv6 ホスト宛ての通信は IPv6 デフォルトルートで Egress Only インターネットゲートウェイ(EIGW)に流す ■ Egress Only インターネットゲートウェイで外からアクセスできないように 29
IPv4・IPv6 のどちらを優先する? ● 現在は「IPv4・IPv6 の両方(ほぼ)同時にアクセスを試 行して、最初に応答したほうを選択する」仕組みが主流 ○ Happy Eyeballs ■ 現在は RFC 8305 によるバージョン 2 が広く使われる ■ 実質的に IPv6 が優先される ■ QUIC 対応を意図したバージョン 3 の策定も進行中 ○ ただしこれが「デファクトスタンダード」ではない点に注意 ■ たとえば NLB → ALB の通信は現状 IPv4 が優先される 30
④クライアント環境の IPv6 対応 (NAT64/DNS64 編) 31
この構成のねらい ● IPv6 専用プライベートサブネットからインターネットに IPv4 アクセス可能にする ○ NAT64/DNS64 を使って NAT ゲートウェイで IPv6 to IPv4 変換 32
クライアント環境の IPv6 対応(NAT64/DNS64) VPCエンドポイント 付け替え EC2(クライアント)起動 IPv6(GUA)専用サブネット作成 &ルートテーブル作成・ IPv6デフォルトルート追加 33
NAT64/DNS64 での通信 ● EC2(クライアント)から Route 53 VPC Resolver に正引 き ○ AAAA レコード(IPv6 用)→そのまま IPv6 アドレスを返す ○ A レコードのみ→「64:ff9b::」に IPv4 アドレスを合成して返す ● ルートテーブルにしたがって通信を各ゲートウェイへ ○ NAT ゲートウェイで「64:ff9b」で始まるアドレス宛ての通信を IPv4 に変換して宛先へ 34
⑤サーバー環境のターゲットを IPv6(ULA)化 35
この構成のねらい ● ALB のターゲットを IPv6 専用プライベートサブネットに する ○ Web サーバーから不要なインターネットアクセスをさせないため IPv6 アドレスとしてユニークローカルユニキャストアドレス (ULA)を割り当てる ○ ULA を割り当てるため IP Address Manager(IPAM)を使う 36
サーバー環境のターゲットを IPv6(ULA)化 IPv6(ULA) 割り当て ULA プール 作成 ALBターゲット変更 IPv6(ULA)専用サブネット 作成&ルートテーブル作成 &EC2(サーバー)作成 37
IP Address Manager(IPAM) ● VPC の IP アドレスを計画・追跡・監視しやすくする機能 ○ 機能例 ■ 組織内の IP アドレス割り当ての履歴を表示する ■ 特定のビジネスルールを使用して CIDR を VPC に自動的に割り当てる ■ ネットワーク接続に関する問題のトラブルシューティングを行う ■ 持ち込み IP(BYOIP)アドレスのリージョン間・アカウント間共有を有効に する ○ https://docs.aws.amazon.com/ja_jp/vpc/latest/ipam/what-it-is-ipam.html 38
IPAM からプライベートなアドレスを割り当てる ● IPAM から割り当て可能なプライベート「扱い」の IPv6 アドレスは 2 種類 ○ IPv6 ULA(ユニークローカルユニキャストアドレス) ○ 持ち込み IPv6 GUA(グローバルユニキャストアドレス) ■ プライベート GUA CIDR を有効化するとプライベート扱いに ■ インターネットにルート広告しないことで外部との直接アクセスを制限 39
プライベートなアドレスを割り当てる場合の注意 ● これらのアドレスを使って IPv6 専用サブネットを作成す ると、EIGW / NAT ゲートウェイ経由のインターネットア クセスはできない ○ AWS のサービスは NAT66 / NPTv6 には(今のところは)非対応 ■ Web サーバーから外部の API にアクセスしたいケースなどでアクセス不可 ■ AWS のサービスへのアクセスにも NAT ゲートウェイ等は使えない →必要なら VPC に IPv6 の Private なエンドポイントを個々に作成する 40
NAT66 / NPTv6 ● IPv6 to IPv6 の NAT ○ IPv6 の本来の設計思想では IPv6 アドレス間の NAT は非推奨 ○ ただし IPv4 で NAT をセキュリティ機能的な扱いで利用してきた 経緯から、ユーザーのニーズはある ○ 一部妥協する形で「IPv6 のサブネットプレフィックスだけ置換 する」NPTv6 が実験的 RFC(6296)として規定された ■ Linux に実装されているのは NPTv6 41
どうしても NAT66 / NPTv6 を使いたい場合は ● NAT66 / NPTv6 対応アプライアンスを配置 ○ https://aws.amazon.com/jp/blogs/news/design-and-build-ipv6-internet-inspection-a rchitectures-on-aws ■ 当然構築・運用管理にコストが掛かる 42
まずはハンズオンなどで IPv6 を試してみましょう 43
ハンズオン ● AWS IPv6 Hands On (japanese) ○ https://catalog.us-east-1.prod.workshops.aws/workshops/025ae486-39d3 -4de4-a12b-049970983d18/ja-JP ■ ● 内容は基礎的なもの Get hands-on with IPv6 ○ https://catalog.workshops.aws/ipv6-on-aws/en-US ■ EKS などにも対応 44