【re:Invent 2016】IPv6がVPCとEC2に来たので試してみた

この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。
大阪オフィスの寺田です。
いや、春と同じく大阪オフィスに滞在中の寺田です。

昨日、大阪のre:Inventに行かなかった、あるいは行けなかったメンバーで行っていた re:Ikenvent と称した呑み会に参加させてもらいました。
怪しい居酒屋で、なぜかくじ引きで金賞を当てた人がいたりと、少ない人数ながらごっちゃな感じで楽しかったです。
でも、AWSの技術的な話はほとんどした記憶がありません。飲みすぎたせいではないはずなのですが。

とはいえ、ここは技術blog、
新しく出たサービスで遊んでみようと思います。

IPv6がVPCとEC2に来たので試してみた

IPv4の枯渇問題があり、全世界的にIPv6の移行がなされているわけですが、
AWSでも S3, Cloud Front WAF, Route53 と徐々にIPv6への対応が進んでいました。
でも、肝心のコンピューティングリソースが無いと、IPv6に対応したけどどう使おうかというところでした。

そこで今回のVPCとEC2のIPv6対応です。
公式blogへのリンクはこちらで。

Egress-Only Internet Gateway (EGW)

IPv6になることで、大量のアドレスが利用可能になりますので、
Elastic IPやGlobal IPをいちいちアタッチしなくても、インターネット側からIPv6のアドレスでEC2に簡単にアクセスできるようになります。
逆に、IPv6のアドレスをアサインしてしまうと、全世界に公開されてしまうので、外から入れない仕組みを考える必要があります。
そこで、EGWというGWが新たに追加されました。
Inboundが無いSecurity Groupの、VPC版(IPv6)の様な実装になっているようです。
IPv4で必要だったNAT GWが要らなくなり、お財布的には優しくなります。

余談ですが、技術検証するときは、
t2インスタンスをオンデマンドで立ち上げるより、m3.medium や c4.large をスポットで起動するほうが安いのですが、
現在のところ、スポットで立ち上げるとIPv6がつかないようなので、手で付けてあげる必要があります。

実際に作ってみる

今回のIPv6の対応は現在のところオハイオリージョンだけですので、
オハイオで作っていきます。

今のところ、今までに作ったVPCがIPv6に対応するのではなく、
新しくVPCを作り、そこでIPv6を有効にするかを選ぶ必要があります。
既存のVPCにIPv6のCIDRをアサインすることが可能となっています。
screenshot-2016-12-02-11-41-26 Subnetも同じく、IPv6のアドレスをアタッチするかを選択する形になります。
screenshot-2016-12-02-11-48-43 後は、今まで通り、Internet Gateway(IGW)をアタッチして、
ルーティングテーブルを設定し、
Security Groupを作る必要があるわけですが、

ルーティングテーブルと、Security Groupに書くアドレスは、
IPv6で書く必要があります。
screenshot-2016-12-02-15-56-52 screenshot-2016-12-02-15-57-36 次にEC2を作成していきます。
今回は、IPv6で遊びたいので、IPv4のGlobal IPは設定しない形にします。
EC2の詳細項目にもIPv6の設定が表示されるようになっています。
screenshot-2016-12-02-15-58-13 EGWも試してみたいので、::/0がEGWへと向いた、ルートテーブルと、そのルートテーブルを紐付けるSubnetも作成します。
screenshot-2016-12-02-15-59-14 screenshot-2016-12-02-15-59-36 最後に作ったプライベートサブネットへと、IPv6のIPをアタッチしたインスタンスをローンチします。

最終的に踏み台も必要だったので下図の様な構成になりました
untitled-1

接続する

今回、上の2台のEC2を作りましたが、
会社のネットワークからIPv6で出れないらしいので、
もう一個、IPv6を持った、VPCと踏み台インスタンスを構築し、
そこへIPv4でSSHをしたうえで、
踏み台からIPv6でSSHという経路を取ります。
踏み台から、作ったEC2へは、IPv6で接続します。
IPv6でインターネットに出ることも可能です。
ホストネームとかはIPv4のアドレスが表示されていますね。

プライベートサブネットへ作ったEC2へも同じように試してみます。
プライベートで作ったので当然ですが、これでのログインはできません。

一度、上のパブリックに配置したインスタンスにログインしたうえで、
アクセスします。
EGWを通したインターネットへの接続も問題なくできます。

まとめ

簡単にIPv6のテストを行いました。

現在のところ、VPCとしてはIPv4にIPv6を付け足した形の実装となっています。
また、IPv6が使えるようになったからと言って、IPv6がすぐに必須になることはないと考えられます。

しかし、アップルがiOSのアプリケーションで、IPv6対応を必要としたり、
確実に流れはIPv6に動いています。

また、NATがいらなくなったりなどで、ネットワーク・トポロジーやお作法も変わるため、設計もガラッと変わることになります。
(この記事のために結構調べました。)

東京リージョンに来るまではもう少し時間がかかりそうですが、
早めに慣れていきたいところです。

AWS運用自動化サービス「Cloud Automator」無料トライアルはこちらから

COMMENT ON FACEBOOK