EC2で運用しているWebサイトをIPv6対応した時の設定


概要

  • AWSのサービスは2016年末あたりからIPv6に対応しています。
  • 普通に構築する手順にプラスアルファするだけでIPv6対応にできるのでやっちゃいましょう。

設定例

  • VPC, EC2, ALB, Route 53を使ったTLS対応のWebサイトの場合をにおける、設定例を紹介します。

VPCの設定

- まずVPC自体の設定で、IPv6のネットワークアドレスを設定します。
– IPv6の場合はグローバルアドレスが振られるようです。

  • route tableは以下のようになります。

  • VPCに紐付いた、Subnetに対してもIPv6のネットワークアドレスを割り振ります。なんとなく64ビットずつ。

  • そのsubnetにインスタンスが追加された際に、自動的にIPv6のアドレスを振るように設定を変更しておく。

  • そうすると、EC2を対象とするsubnetに追加するとこんな感じに、IPv4とIPv6のアドレスが振られます。

  • ALBは、構築時にIPv4のみか、IPv4とIPv6の両方に対応するかを選ばされます。既にIPv4で作成済みだったら、dualstackで新規構築します。

  • Route 53にはAレコードと、AAAAレコードに同じ値を入れればOKです。2個作らないといけないのが面倒です。
  • 変更があったら両方やらないといけません。IPv4とIPv6で別のエンティティを返却出来る事になります。

nginx側は設定不要で、IPv6のインターフェイスのポートもLISTENしてくれていました。

DNSのテスト。hostコマンドでは、AレコードとAAAAレコードが帰ってくる。

トラブルシューティング

  • 運用しているOSによっては、OS側のNICの設定が必要そうです。
  • security group周りも自動的にIPv6の設定が入っていうので特に設定しないでOKですが、念のためご確認を。
  • VPCのルーティングテーブルにて、IPv6のルーティングがegress only internetになっている場合は外から入れないので、IPv4と同じように普通のインターネットゲートウェイを指定してください

検証

  • ここのサイトで確認出来ます。

  • nginxのアクセスログに、2行目にあるようなIPv6のアドレスで接続が来るようになっていればOK。
  • IPv6チェッカーや、IPv6に対応した端末からアクセスしてみてください。

  • curlで、IPv6のhttpsでの接続性もテスト

ついでに、このブログもIPv6 readyにしました。


ipv6 ready

追記

  • しばらく運用してみました。IPv6のアクセスはとても少ないです。
  • 363/40757=0.008906446=0.8%

参考資料


matsubokkuri

Please feel free to contact me via e-mail, twitter and facebook!

あわせて読みたい

コメントを残す