Webサイト管理者のための2020年版“IPv6対応入門”第4回
AWSのクラウド環境を使い、VPC+EC2+Route 53で構成したWebサイトのIPv6対応設定を行う
Webサーバーの設定を変更して「IPv6対応サイト」にする【後編】
AWS環境におけるIPv6利用時の留意点
AWSでは、2011年ごろから段階的に各クラウドサービスのIPv6対応を進めており、現在では上述したもののほか、S3やALB(ロードバランサー)、CloudFront(CDN)、WAF(アプリケーションファイアウォール)、Direct Connect(閉域網接続)など、多くのサービスがIPv6に対応している。
ただし、各サービスはIPv4をデフォルトとして開発されており、IPv6はオプション的な扱いだ。IPv4とは少し扱いの違う部分もあるので、今回の作業を通じて筆者が気づいた範囲内で、留意すべき点をまとめておきたい。
●割り当てはグローバルIPv6アドレスのみ、NATの代用となるゲートウェイがある
EC2インスタンスを立ち上げると、プライベートIPv4アドレスとパブリック(グローバル)IPv4アドレスが自動的に設定される。一方で、IPv6で割り当てられるのはグローバルユニキャストアドレス(GUA)のみで、ユニークローカルアドレス(ULA)は割り当てられない。また、AWSのNATゲートウェイはIPv4専用だ。
グローバルIPアドレスが割り当てられるため、インターネット公開目的ではないインスタンスの場合、通常のインターネットゲートウェイを使うと外部からのアクセスがインスタンスに到達してしまうことになる。そこで、VPCには「Egress-Onlyインターネットゲートウェイ」が用意されている。これは、VPC内部からのアウトバウンド通信のみを許可するIPv6専用のゲートウェイだ。
●「Elastic IPアドレス」はIPv6非対応、ただし固定IPアドレスは使える
インターネットに公開するサーバーを運用するにあたって必要となるのが固定IPアドレスだ。それを提供するために、AWSのEC2には「Elastic IPアドレス(EIP)」という機能が用意されている。
これは、AWSが用意したグローバルIPv4アドレスをユーザーが専有できる機能で、EC2インスタンスに固定IPアドレスを割り当てるために利用される。これを利用しないと、インスタンスを停止/起動するたびに、自動で割り当てられるグローバルIPv4アドレス(AWSでは「パブリックIPアドレス」と呼ぶ)がリセット/更新されてしまう。
現状では、このElastic IPアドレス機能はIPv6をサポートしていない。ただし、IPv4とは異なり、インスタンスに割り当てられたグローバルIPv6アドレスは、インスタンスを停止/休止してもそのまま保持され、起動するとふたたび使われる仕様になっている(※インスタンスを「終了」するとリセットされるので注意)。したがって、通常はこれを固定IPv6アドレスとして利用すればよいだろう。
●「パブリックDNS」もIPv6非対応
グローバルIPv4アドレスが割り当てられたEC2インスタンスには、「パブリックDNS」機能によって「ec2-XXX-XXX-XXX-XXX.compute-1.amazonaws.com」といった形式のホスト名が自動的に割り当てられ(XXX……の部分はIPv4アドレス)、このホスト名でインターネットアクセスできるようAWSの権威DNSサーバーに登録されるが、この機能もIPv6はサポートしていない。
* * *
以上、今回は実際に“IPv4 Only”のWebサイトをIPv6対応させてみた。ステップバイステップで操作を説明したため長くなってしまったが、実際にやってみると初めてでも30分ほど、慣れれば10分ほどでできる内容だろう。
また冒頭で述べたとおり、既存のWebサイトにIPv6のインターネットアクセスを受け付ける設定を「追加」するだけなので、稼働中のWebサイトに何か不具合を引き起こすようなリスクも少ないはずだ(複雑な構成のサイトでは設定漏れに注意が必要だが)。Webサイト管理者の方は、本稿を参考にして、気軽な気持ちでIPv6対応にトライしてほしい。