【セッションレポート】 IPv6 on AWS ~Public IPv4 アドレス削減に向けてできることできないこと~(AWS-20)#AWSSummit
はじめに
AWS Summit Japan 2024 に参加しました。
「IPv6 on AWS ~Public IPv4 アドレス削減に向けてできることできないこと~」のセッションレポートです。
セッション概要
Public IPv4 アドレスに対する料金体系の変更をきっかけにして、AWS での IPv6 の活用について改めて注目が集まっています。IPv6 on AWS のリファレンスアーキテクチャや IPv4 構成からの移行方法について解説すると共に、AWS のさまざまなサービスとの IPv6 対応状況もご紹介します。IPv6 へ移行することで果たしてコスト最適化が可能なのか、どこまで Public IPv4 アドレス削減に繋げることが可能なのか、IPv4 と IPv6 のデュアルスタック構成例、IPv6 Only の構成例の紹介をユースケースを通じてご説明します。
セッションスピーカー: ⼭下 裕 氏
所属:アマゾンウェブサービスジャパン合同会社
アジェンダ
アジェンダ
- Public IPv4 アドレスの動向とAWSにおける影響
- AWSのIPv6対応
- IPv6導入によってコスト削減が可能なこと
- ここからはじめようIPv6対応へのチャレンジ
- まとめ
本日持ち帰っていただきたいこと
- なぜIPv6対応をしなければいけないのか
- AWSの対応状況
- IPv6を推進する上でのコストの観点のメリット
- IPv6対応を進める上でどこから手をつけるとよいのか
セッションレポート
Public IPv4 アドレスの動向とAWSにおける影響
背景
- 日本におけるIPv4アドレス在庫の枯渇
- ネットワークに接続する機器の増加
影響
- IPv4アドレスが割り当てられなくなる
- IPv4アドレスの獲得コストが上がる
- 2020年以降上昇。
AWSでは、今年の2月からIPv4アドレスの利用が有償になった。
- 大規模な場合、コストに影響が出る
- Amazon VPC IP Address Managerで状況確認する
- IPv4アドレスの利用状況が確認できる
- 無料で利用可能
- AWSにおける新しい料金体系導入の背景
- AWS側のIPv4アドレスの調達コストが過去5年で300%以上に増加
- 使い続けることも可能だが、IPv6の並行利用を検討して頂きたい意図が含まれた変更です
IPv6とは
- インターネットプロトコルの1つ
- IPv6のアドレス長は128ビット
- IPv4の4倍
- IPv4とIPv6は、直接的な互換性はないプロトコル
IPv6環境を利用するうえでの注意点
- IPv6とIPv4は別のネットワーク環境であることを理解する
- 2つのネットワークについて、それぞれ、設計、管理、運用が必要
- 個別のセキュリティ設定やフィルタリングが必要
- ルートテーブルやゲートウェイも別途必要
- 名前解決も考慮
- クライアント、サービス提供側がそれぞれIPv6に対応する必要がある
IPv4とIPv6のDualstack構成
- IPv4とIPv6の共存は可能
- IPv4同士、IPv6同士で通信を行う
- カプセリングやアドレス変換といった技術で相互に通信可能
IPv6アドレスの普及率
- 日本では50%程度
- 普及の要因
- スマホが対応した
- スマホ全機種がIPv6に対応
- フレッツ光ネクストのIPv6 IPoE 普及
システムやアプリケーション側のIPv6対応が遅れている
- 端末はIPv6対応済み
- 残るはシステムやアプリケーション側です
AWSのIPv6対応
- この2,3年で対応したAWSサービスは増えている
- IPv4の構成例
- パブリックサブネット向けにはInternet Gateway
- プライベートサブネット向けにはNat Gateway
- IPv4 + IPv6の構成例
- IPv6を後から追加可能
- 既存のEC2インスタンスは、1つずつIPv6の有効化作業が必要
- ルートテーブルもIPv6用の設定が必要
IPv6で Internet通信する際に関連するゲートウェイは3つ
- Internet Gateway
- Egress-only Internet Gateway
- Nat Gateway
- Internet Gateway
- VPC → Internet, Internet → VPCの双方向通信可能
- EC2インスタンスが持つIPv6アドレスがグローバルIPアドレスとして機能する。NATしない
- Egress-only Internet Gateway
- EC2インスタンスが持つIPv6アドレスがグローバルIPアドレスとして機能する。NATしない
- Internetからの通信はブロックされる
- VPC→Internetの通信は可能
- 片方向の通信が可能
- Nat Gateway
- DNS64)IPv6 Only インスタンスから IPv4 Only 外部サービスの名前解決を依頼する
- DNS64)IPv4 Only 外部サービスのIPv4アドレスをIPv6に変換して応答する
- Nat Gateway)Nat Gatewayがアドレス変換を実施する
ユースケース
- Web3層システム
- オンプレミス環境と閉域で接続された社内システム
- VPN経由などで接続
- 大量のIPアドレスを必要とするコンテナ
- EKSはクラスタ上で稼働するコンテナ(Pod)毎にIPアドレスを消費する
- IPv6が割り当てられているサブネットを利用することで、大量のコンテナ起動時のIPアドレスの枯渇を防ぐ
IPv6導入によってコスト削減が可能なこと
IPv6導入によってコスト最適化できる点もあるが、できない点もある
- どこで利用しているかによって最適化方法は変わる
- インターネット向け
- 内部向け
インターネット向けの場合
- IPv4しかもたないクライアントがアクセスできなくなる
- ALBなどのインターネット向けサービスは、Dualstack構成が現実的である
- ALBを共有してコスト最適化は可能である
- 複数のドメインもホストヘッダーやパスルールの利用によって、ALBの共有は可能
内部向けの場合
- Nat Gatewayのコスト削減が可能である
- IPv6通信をEgress-only Internet Gatewayにオフロードすることで削減可能
- Egress-only Internet Gatewayは課金不要
- 通信相手がIPv6のみであれば、Nat Gatewayを削減可能
- ただし、通信相手にも確認必須
- Egress-only Internet Gateway経由での通信相手がIPv4のみの場合、通信不可
- IPv6通信をEgress-only Internet Gatewayにオフロードすることで削減可能
Nat Gatewayコスト削減の試算
Nat Gatewayが外部APIに多く通信している構成の場合
- Nat Gateway
- 時間単位
- データ処理料金:多くを占める
- パブリックIP料金
- インターネット向けデータ転送:多くを占める
以下を改善すると、Nat Gatewayのデータ処理料金が削減される
- Egress-only Internet GatewayにIPv6通信をオフロード
- Dualstack化
- 外部APIがIPv6に対応
以下の通りデータ処理料金についてコスト削減可能
- Nat Gateway
- 時間単位
- データ処理料金:削減
- パブリックIP料金
- インターネット向けデータ転送:多くを占める
IPv6導入によってコスト削減のまとめ
- インターネット向けのサービスを提供するリソースではIPv4を廃止することは難しい
- 内部向け利用リソースでは、IPv6通信をEgress-only Internet GatewayにオフロードすることでNat Gatewayのデータ処理課金の削減可能
- Nat GatewayをEgress-only Internet Gatewayに完全に切り替えるためには、全ての通信相手がIPv6に対応する必要がある
- →IPv4サービス提供サイトがIPv6対応化していくことが求められる
ここからはじめようIPv6対応へのチャレンジ
以下がチャレンジ候補
- 候補1: ALBのDualstack化
- 候補2:アウトバウンド通信のIPv6対応
候補1: ALBのDualstack化
- ALBをDualstack化することで、ALBにおいてIPv6の通信を受付けが可能
- ALBで一度通信を終端しターゲットにはターゲットにIPv4で通信可能
- イメージ図:Internet Gateway → (IPv6) → ALB → (IPv4) → EC2
- 変更を最小限に対応できる
- アクセスログなどで、アクセス状況と影響の確認は必要
ALBのDualstack化対応手順
- IPv6 CIDRブロックをVPC,サブネットに関連づける
- ルートテーブルを更新する
- セキュリティグループルールを更新する
- ALB の IPアドレスタイプをDualstackに変更
- DNSリソースレコードの登録
- 必要に応じて、AWS WAFルールの確認
4.ALB の IPアドレスタイプをDualstackに変更
- IPアドレスタイプを編集し、IPv4からDualstackを選択する
- IPアドレスタイプがDualstackになる
5.DNSリソースレコードの登録
- IPv4/IPv6でホスト名を分けて管理する設計が可能
- 同じホスト名でIPv4/IPv6両方をアクセスさせる設計も可能 = 同じホスト名の場合、AとAAAAレコードで併記すること
候補2:アウトバウンド通信のIPv6対応
IPv6対応チャレンジ候補
- アウトバウンド通信において、IPv6に対応する外部サイトへの通信では、Nat GatewayからEgress-only Internet Gatewayにオフロード
- Nat Gatewayのデータ処理課金の削減
- ECSをDualstack化
IPv6対応へのチャレンジまとめ
- IPv4/IPv6それぞれについて設計、設定、管理、運用が必要になることを理解する
- セキュリティ設定、ルートテーブル、3つゲートウェイ、名前解決など
- 候補1:ALBのDualstack化
- アプリケーションへの変更を最小限に抑えつつIPv6対応
- アクセス状況と影響を確認しましょう
- 候補2:アウトバウンド通信のIPv6対応
- Nat Gateway経由のアウトバウンド通信を減らし、コストを最適化
参考
IPv6 on AWS ホワイトペーパー
IPv6 on AWS リファレンスアーキテクチャ
まとめ
- なぜIPv6対応をしなければいけないのか
- IPv4アドレスの枯渇状況とAWSの料金体系の変更
- AWSの対応状況
- IPv6対応に対応しているAWSサービス
- IPv4との構成上の違いとユースケース
- IPv6を推進する上でのコストの観点のメリット
- Nat Gatewayに対するコスト削減
- IPv6対応を進める上でどこから手をつけるとよい
- ALBのDualstack化
- アウトバウンド通信のIPv6対応
感想
IPv6対応の必要性と、AWSにおけるIPv6の活用方法について、大変参考になりました。
IPv4アドレスの枯渇問題を背景に、IPv6への移行が進んでいますが、システムやアプリケーション側の対応が遅れているという課題があることがわかりました。
AWSでは、ここ数年でIPv6対応サービスが増えてきており、IPv6を活用することでコスト最適化も可能です。
特に、インターネット向けサービスではALBをDualstack化することで、アプリケーションの変更を最小限に抑えつつIPv6対応できるという点は、比較的とっつきやすい感じました。
また、内部向け利用ではEgress-only Internet Gatewayを活用してNAT Gatewayのコストを削減できる点も学びになりました。
ただし、IPv6対応には設計・設定・管理・運用面での考慮点が多く、IPv4/IPv6それぞれのネットワークについて適切に設計・運用していく必要がありそうです。
今後、IPv6対応を進めていく際、本記事で紹介されたホワイトペーパーやリファレンスアーキテクチャを参考にしながら、対応策を検討していきたいと思います。