[PR] あなたが Kindle で読みたいその本、Kindle に対応したら Twitter でお知らせします。

S3 の IPv6 サポートはどういうメリットがあるのか調べてみた

Posted on

8 月に行われた AWS Summit New York で Amazon S3 の IPv6 サポートが発表されました。

恥ずかしながら、IPv6 で接続できるということ以外にどういうメリットがあるのか理解していなかったので、ドキュメントを読みつつ手を動かして調べてみました。自分はネットワークに疎いので、間違っていたらご指摘ください。

IPv6 の接続テスト

まずは IPv6 で接続できるかテストします。やり方はドキュメントに載っています。

まずは IPv4 の回線から試します。

$ curl -v http://s3.dualstack.ap-northeast-1.amazonaws.com/
*   Trying 54.231.225.134... connected
* Connected to s3.dualstack.ap-northeast-1.amazonaws.com (54.231.225.134) port 80 (#0)
(snip)

次に IPv6 の回線から試します(NURO 光は IPv6 に対応しています)。

$ curl -v http://s3.dualstack.ap-northeast-1.amazonaws.com/
*   Trying 2406:daa0:4020:48:34db:23::...
* Connected to s3.dualstack.ap-northeast-1.amazonaws.com (2406:daa0:4020:48:34db:23::) port 80 (#0)
(snip)

接続先の IP アドレスが 54.231.225.134 から 2406:daa0:4020:48:34db:23:: に変わりました! 確かに IPv6 をサポートしています。

FAQ やドキュメントを読む

IPv6 で接続できることは確認できたので、IPv6 のメリットについて調べてみます。 FAQ に IPv6 のセクションがあるので読み進めます。

Q: IPv6 ではどのようなことができるのですか?

Amazon S3 で IPv6 を使用すると、IPv6 から IPv4 への変換ソフトウェアやシステムなしで、アプリケーションから AmazonS3 への接続が可能となります。

すでに IPv6 で稼働している場合、プロトコルの変換なしに IPv6 でダイレクトに接続できるということですね。 IPv6 から IPv4 への変換コストが削減されるので、ネットワークのパフォーマンスが改善するかもしれません。

Q: Amazon S3 の「デュアルスタック」エンドポイントをポイントした場合でも、IPv4 で Amazon S3 の API にアクセスできますか?

はい。 Amazon S3 の「デュアルスタック」エンドポイントに接続する際に、IPv6 と IPv4 アドレスの両方を使用して、引き続き Amazon S3 の API にアクセスできます。

これは先ほどテストした結果の通りですね。

Q: IPv6 を使用すると、Amazon S3 のパフォーマンスが変わりますか?

いいえ。 Amazon S3 では IPv4 と IPv6 のいずれを使用してもパフォーマンスは同じです。

S3 のパフォーマンスは IPv6 で接続しても同じです。ストレージの仕組みが変わったわけではないので当然ですね。

Q: バケットと IAM ポリシーを更新する必要がありますか?

はい。ポリシーを使用して、IP アドレス経由のアクセスを付与または制限している場合は、「デュアルスタック」エンドポイントに切り替える前に、これらのポリシーを更新して、関連する IPv6 の範囲を含めてください。

バケットポリシーで IP アドレス制限をしている場合は、接続元の IPv6 アドレスを追加します。

続いて、ドキュメントを読み進めます。

IPv6 を使用して S3 バケットにアクセスする場合、次の機能は現在サポートされていません。

  • S3 バケットからの静的ウェブサイトホスティング
  • Amazon S3 Transfer Acceleration
  • BitTorrent

すべての機能で IPv6 が使えるわけではないとのことです。

Amazon EC2 インスタンスでは現在、IPv4 のみがサポートされています。 IPv6 を使用して Amazon S3 にアクセスすることはできません。

VPC は IPv4 しかサポートしていないので、EC2 に限らず VPC 内から S3 への接続はすべて IPv4 になります。

メリットを享受できるのはごく一部

これらを踏まえると、

  • AWS (VPC) 内で完結しているシステムに変化はない
  • S3 のために接続元を IPv6 に変更してもメリットはない

メリットを享受できるのは、

  • もともと IPv6 で稼働している
  • S3 を使うために IPv6 から IPv4 に変換して接続している

ということが言えそうです。

まとめ

freee のサービスはすべて AWS 上に構築されているのでメリットはなさそうです。わからないことをモヤモヤのまま放置するのではなく、ちゃんと手を動かして調べることは大切ですね。