IPv6 Only InstanceでPrivateLink(Interface型エンドポイント)を使う設計方法
こんにちは!AWS事業本部コンサルティング部のたかくに(@takakuni_)です!
今回は、IPv6のみ保持するインスタンスで、PrivateLink(Interface型エンドポイント)を使う構成をご紹介しようと思います。
Session Managerを今回は想定してご紹介できればと思います。
Session Managerの前提条件
Session Managerを使用するにあたり、インスタンスは以下のエンドポイントへHTTPS (ポート 443) で到達できる必要があります。
- ec2messages.region.amazonaws.com
- ssm.region.amazonaws.com
- ssmmessages.region.amazonaws.com
また、上記のサービスエンドポイントへは、インターフェイス型VPCエンドポイントを使用すれば、インターネットを介さず到達可能です。
【公式ドキュメント】ステップ 1: Session Manager の前提条件を満たす
インターフェース型 VPCエンドポイントについて
残念ながら、2022年3月現在、インターフェース型 VPCエンドポイントは、IPv4トラフィックのみサポートされています。
そのため、IPv6のみのインスタンスでは直接エンドポイントへ到達できません。
インターフェイス VPC エンドポイント (AWS PrivateLink)
解決方法
NAT64/DNS64を使用し、IPv6からIPv4へNATしてエンドポイントへ到達します。
「NAT64/DNS64」って何ぞや?という方は以下の記事をご覧ください。
参考:インターネットを出る構成
本題に入る前に、参考までにインターネットに出てもOKな場合をご紹介します。
構成図は以下の通りです。
NAT64を使用することで、インスタンスに関連づけられたIPv6アドレスをIPv4(NAT GatewayのElastic IP)アドレスに変換し、エンドポイントと疎通を行います。
参考までに、ルートテーブルは、以下のような構成になります。
パブリックサブネット
宛先 | ターゲット | 備考 |
---|---|---|
VPCのローカルIPv4アドレス | local | |
VPCのローカルIPv6アドレス | local | |
0.0.0.0/0 | Internet Gateway |
IPv6 Onlyサブネット
宛先 | ターゲット | 備考 |
---|---|---|
VPCのローカルIPv4アドレス | local | |
VPCのローカルIPv6アドレス | local | |
64:ff9b::/96 | NAT Gateway | NAT64/DNS64の固定プレフィックス値 |
本題:インターネットを出ない構成
構成図は以下の通りです。
プライベート NAT Gatewayを使用して、IPv6アドレスをIPv4(NAT GatewayのプライベートIP)アドレスに変換し、VPCエンドポイントと疎通を行います。
この構成の場合、インターネットを経由しないため、よりセキュアな構成を取ることができます。
こちらも、参考までに、ルートテーブルは以下のような構成になります。
プライベートサブネット
宛先 | ターゲット | 備考 |
---|---|---|
VPCのローカルIPv4アドレス | local | |
VPCのローカルIPv6アドレス | local |
IPv6 Onlyサブネット
宛先 | ターゲット | 備考 |
---|---|---|
VPCのローカルIPv4アドレス | local | |
VPCのローカルIPv6アドレス | local | |
64:ff9b::/96 | プライベート NAT Gateway | NAT64/DNS64の固定プレフィックス値 |
まとめ
以上、IPv6のみ保持するインスタンスで、PrivateLink(Interface型エンドポイント)を使う構成のご紹介でした。
NAT Gatewayを配置するサブネットは、デュアルスタック(IPv4/IPv6)サブネットであることに注意いただければと思います。
PrivateLinkのIPv6サポートが加わるまでの短い寿命ですが、IPv6の仕様をご検討されている方のご参考になれば幸いです。
以上、AWS事業本部コンサルティング部のたかくに(@takakuni_)でした!