IPv6 Only InstanceでPrivateLink(Interface型エンドポイント)を使う設計方法

2022.03.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!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_)でした!