自己紹介

鈴木亮氏(以下、鈴木):よろしくお願いします。クラウドであればIPv6簡単に使えるよ、ということで話したいと思います。自己紹介ですが、クラスメソッドというAWSの構築支援などをしている会社に所属しています。

AWSの構築をお手伝いしながら、ブログなども書いています。

趣味で自転車乗っていて、毎年7月あたりは北海道に行ったりしていました。2022年あたりには、また行けるようになったらいいなと思っている今日この頃です。

AWSでIPv6がいつから使えるようになったか

ちょっと盛り込みすぎた感じはありますが、本日はスライドに記載したあたりをお話できればと思います。

まず、AWSでIPv6がいつ頃から使えるようになったのかですが、もう2011年、10年前から使えるようになっていました。

CDNや、EC2、通常のIaaSで使われている仮想サーバーで使えるようになったのが、5年ぐらい前という感じになっています。

細かい話については、AWSが公開している非常にいい資料があります。よければ見てみてください。

クラスメソッドのサイトのIPv6のリクエスト状況

あと、弊社のサイトのメンテナンスも担当していて、2年ほど前に自社ブログのサイトに、AAAAレコードを設定するということを行いました。

これが今どんな感じに動いているのかですが、だいたい4分の1ぐらいのリクエストがもうすでにIPv6で来ています。「ちょっと少ないな」ということで深掘ってみました。

曜日別で見ると、平日はIPv4のアクセスが多いです。

さらに時間別で見てみると、弊社のサイトはだいたい業務時間中にググって記事を見てもらうことが非常に多いサイトになっていますが、営業時間中にアクセスがあって、お昼休みにはちょっとアクセスが減る。

夕方6時ぐらいになるとガクンとアクセスが減るけれど、その後も自宅などで作業している方には見てもらっていて。アクセスが増えるとIPv6の比率が、最大ピーク時には40パーセントまで増えているので、かなりの比率でIPv6使われている状態になっています。母集団はかなり偏っているとは思いますが、参考までにという感じで展開します。

AWS EC2でIPv6を使う手順

ここからは本題になりますが、AWS EC2でIPv6を使うための手順を紹介します。まず、EC2で使われる仮想ネットワーク、VPCというものがありますが、このVPCに対して、IPv6のCIDRアドレスを与える作業を行う必要があります。

この割り当てですが、Amazonがあらかじめ用意している/56の帯域をポンと当てるだけであれば、ワンボタンで実行できます。

そのあと、割り当てたIPアドレスを実際にサブネットと言われる単位に対して割り当てることになります。VPCに割当を行った/56のCIDRより、/64のCIDRを一つのサブネットに対し割り当てる作業を行います。

CIDRを割り当てたサブネットをちゃんとルーティングできるように、ルートテーブルの設定をして、最後にEC2の起動。EC2を起動する際に、IPv6が有効になったネットワークであれば、「IPv6アドレスの割り当て設定」が出てくるので、ここで「有効」に指定して、起動してあげる。それでデュアルスタックなインスタンス、仮想マシンが立ち上がります。

この立ち上がった環境で疎通確認ということで、Amazonのサービスの中でS3という、オブジェクトストレージのサービスがあるんですが、これがIPv4とIPv6のデュアルスタックに対応しているので、これに対してping6で叩いてあげる。すると、v6アドレスが通常のIPv4でpingをする、pingコマンドでやれば従来のIPv4の見慣れたアドレスが戻ってくることが確認できる。

ここまでの作業は、だいたい5分から10分ぐらいあればできるということで。クラウドであれば、簡単にIPv6通信ができますよということで、紹介しました。

IPv6を試すときの注意点

一応試すにあたって、注意点として簡単にまとめてもらいました。まず、VPC。テストで使っているアカウントで、単にシステムがなければ、そのまま使っていいですが、できれば新しいVPCは作ったほうが安全だと思います。

Amazonの公式ドキュメントもあるし、CloudFormationという簡単なIaCのツールもあり、これでポンと5分もかけずにネットワークが作れるので、こういったものを使って作るのがいいかと思います。

2つ目、セキュリティグループ。先NATで守れないIPv6のネットワークですが、AWSのVPCの上であれば、AWSが提供しているセキュリティグループというファイアーウォールが使えます。

こちらのファイアーウォールを利用して「::/0」に相当する全インターネットに、例えば、SSHを、RDPを公開するようなことをすると非常に危ないことになってしまいますが、ここを適切に絞って使えば、まず問題なく使えると思います。

あと、もう1つ。万が一セキュリティグループを開けちゃったら怖いよね、みたいなこともあるかと思いますが、NATに近い片方向の通信のみ許可するゲートウェイもAmazonさんは用意しています。そのため、場合によってはこのあたりも組み合わせて使ってもらうと、サーバーに進む必要はない、あくまでもIPv6のクライアントだけ使いたい場合には非常に便利なものになるので、ぜひ採用してもらえればと思います。

あといいところは、追加課金が発生しない。AmazonのIPv6のNATを有効にすると月額数千円単位で課金されたりしてしまいますが、これに関しては実費のみでできるので、リーズナブルかなと思っています。

EC2でIPv6通信するメリット

こんな手間をかけてEC2でIPv6通信できるいいところの紹介の前段に、1つ紹介します。Amazon VPC、Amazonのネットワーク通信は、Amazonの中で完結することが、最近AWSによって公開されました。

これで何ができるかというと、AWSの中でパブリックIPの通信をしても、AWSの外には漏れる心配はないというところで、Amazonが悪いことをしない、Amazonを信じることができるなら、かなり信頼できるネットワークとして使えるようになりました。

さらに追加で、今これが非常にアツいなと思って注目しているのが、Transit Gatewayという、Amazonの提供しているVPCや専用線を接続するようなハブになるサービスで、これにIPv6を使用すると非常におもしろいことができるかなと。

従来だと、図で出している/8、クラスAで全部埋めてしまうようなネットワークは普通は作らないとは思いますが、ネットワークが重複してしまっている状態で「どうつなぐの?」みたいなことになった場合、非常に頭を悩ませることになることが多かったと思います。しかし、v6アドレスベースでつながるネットワークを組むのであれば、NATやリバースプロキシであまりがんばることなく、フラットなネットワークは作れる。

あと、Transit Gateway、VPNを収納できるので、既存のネットワークもIPv6に参加できるものであれば、そちらつなぎこむことで、非常におもしろいネットワークが作れるのかなと考えています。

このあたりの資料は、後日ブログで発表したいと思うので、よければ見てもらえればと思います。

では、本日はありがとうございました。