ECS で IPv6 が使えるか検証してみた
はじめに
本記事は、技術的興味による実験的な検証記事となります。 ECS コンテナで IPv6 が公式にサポートされているわけではありませんので、予めご了承ください。
Docker 環境での IPv6 に関するドキュメントについては、公式サイトをご確認ください。
前提条件
本記事では、ECS 環境が構築済みであることを前提としております。ECS 環境を構築した事が無い読者の方は、こちらの記事を参考に環境を構築してみてください。
ECS 環境で IPv6 を設定する
予め ECS インスタンスへ SSH 接続し、IPv6 の設定を行います。
$ sudo su - # echo '{"ipv6":true, "fixed-cidr-v6":"2001:db8:1::/64"}' > /etc/docker/daemon.json # service docker restart # start ecs
IPv6 アドレスを確認する
設定は完了しました。IPv6 の 80 ポートを LISTEN する nginx コンテナを起動し、IPv6 アドレスが割当てられているか確認してみます。
$ cat default.conf server { listen [::]:80 ipv6only=on; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } $ docker run --name nginx -v `pwd`:/etc/nginx/conf.d -d nginx c631f628251e25521ed87eb84f415841d008a4719753b64798af8cabf78a5574 $ docker network inspect bridge | grep IPv "EnableIPv6": true, "IPv4Address": "172.17.0.2/16", "IPv6Address": "2001:db8:1::242:ac11:2/64" $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c631f628251e nginx "nginx -g 'daemon ..." 2 minutes ago Up 2 minutes 80/tcp nginx 6e05aedfa9cb amazon/amazon-ecs-agent:latest "/agent" 57 minutes ago Up 57 minutes ecs-agent
ちゃんと IPv6 のアドレスが割当たってますね。
IPv6 で通信出来るか確認する
まずは、ECS インスタンスから ping6 で接続確認してみます。
$ ping6 2001:db8:1::242:ac11:2 -c 3 PING 2001:db8:1::242:ac11:2(2001:db8:1::242:ac11:2) 56 data bytes 64 bytes from 2001:db8:1::242:ac11:2: icmp_seq=1 ttl=64 time=0.056 ms 64 bytes from 2001:db8:1::242:ac11:2: icmp_seq=2 ttl=64 time=0.056 ms 64 bytes from 2001:db8:1::242:ac11:2: icmp_seq=3 ttl=64 time=0.042 ms --- 2001:db8:1::242:ac11:2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2053ms rtt min/avg/max/mdev = 0.042/0.051/0.056/0.008 ms
ちゃんと繋がりますね。では次に curl で welcome page を取得してみます。
$ curl -g 'http://[2001:db8:1::242:ac11:2]' <style> body {<br /> width: 35em;<br /> margin: 0 auto;<br /> font-family: Tahoma, Verdana, Arial, sans-serif;<br /> }<br /> </style> <h1>Welcome to nginx!</h1> If you see this page, the nginx web server is successfully installed and working. Further configuration is required. For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>. Commercial support is available at <a href="http://nginx.com/">nginx.com</a>. <em>Thank you for using nginx.</em> $
nginx コンテナ起動時に Port#80 ポートフォーワードの設定を実施していませんが、IPv6 を設定していることにより welcome page を取得できました。
さいごに
ECS の Docker Daemon に対して IPv6 設定を有効化することにより、IPv6 が利用出来ることは確認出来ました。 いずれやってくるであろう IPv6 の時代に備えて IPv6 の理解を深めておきたいなと思いました。
ではでは