Amazon S3をIPv6接続で利用してみた

2017.04.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

AWSチームのすずきです。

東西のNTTが提供するフレッツ回線を利用したインターネット接続、 国内のFTTH(光回線サービス)のシェアを占めますが、インターネット接続を提供するISPの混雑がボトルネックとなり接続速度が低下する事がありました。

今回、ISPのIPv6通信(IPoE方式)オプションを申し込み、IPv6に対応したS3のデュアルスタックエンドポイントで利用した所、S3転送速度の改善を確認できましたので、紹介させていただきます。

環境

Amazon S3

  • AWS東京リージョンを利用
  • S3のエンドポイント、IPv4用(デフォルト)と、IPv6対応(デュアルスタック)を切替
  • IPv4用: s3-ap-northeast-1.amazonaws.com
  • IPv4、IPv6兼用: s3.dualstack.ap-northeast-1.amazonaws.com

  • AWS のリージョンとエンドポイント:Amazon S3

S3接続環境

ネットワーク

  • フレッツ 光ネクスト ファミリータイプ (最大100Mbps)
  • ISP: BIGLOBE(神奈川)、フレッツ光 IPv6接続
  • 測定時刻: 22時台(JST)

OS、CLIバージョン

  • MAC OSX EL Capitan (10.11.6)
  • AWS CLI (aws-cli/1.11.80 Python/2.7.10 Darwin/15.6.0 botocore/1.5.43)

検証手順

  • ファイル転送の検証用に約100MBのファイルを用意しました。
$ ls -lah Docker.dmg
-rw-r--r--@ 1 ###### staff 106M 1 8 17:25 Docker.dmg
  • AWS CLIを利用し、GET(ダウンロード)、PUT(アップロード)を、IPv4用とIPv6用(デュアルスタック)のエンドポイントを明示して実施しました。
aws s3 cp s3://#####/Docker.dmg /tmp/
aws s3 cp /tmp/ s3://#####/Docker.dmg
  • 「time」コマンドで得られた所要時間から転送速度を求めました。

結果

GET

IPv4

time -p aws s3 cp s3://#####/Docker.dmg /tmp/ \
--region ap-northeast-1 \
--endpoint-url https://s3-ap-northeast-1.amazonaws.com
  • 5回測定結果 (realのみ抜粋)
real 56.05
real 38.11
real 44.43
real 44.74
real 42.35
  • 平均: 45.14s
  • 速度: 2.39MB/s (19.1Mbps)

IPv6

time -p aws s3 cp s3://#####/Docker.dmg /tmp/ \
--region ap-northeast-1 \
--endpoint-url https://s3.dualstack.ap-northeast-1.amazonaws.com
  • 測定結果
real 10.88
real 10.80
real 10.81
real 10.74
real 10.83
  • 平均: 10.81s
  • 速度: 9.99MB/s (79.9Mbps)

PUT

IPv4

time -p aws s3 cp /tmp/Docker.dmg s3://#####/ \
--region ap-northeast-1 \
--endpoint-url https://s3-ap-northeast-1.amazonaws.com
  • 測定結果
real 14.23
real 14.55
real 14.45
real 14.48
real 13.81
  • 平均: 14.30s
  • 速度: 7.55MB/s (60.4Mbps)

IPv6

time -p aws s3 cp /tmp/Docker.dmg s3://#####/ \
--region ap-northeast-1 \
--endpoint-url https://s3.dualstack.ap-northeast-1.amazonaws.com
  • 測定結果
real 10.98
real 11.19
real 10.96
real 11.02
real 11.31
  • 平均: 11.09s
  • 速度: 9.74MB/s (77.9Mbps)

まとめ

今回、IPv6で接続したAmazon S3の転送速度は、ダウンロード、アップロードとも実測値で約80Mbps。 100Mbps回線のワイヤレートに匹敵する転送速度を確認する事ができました。

IPv6とIPv4接続時の転送速度を比較すると、ダウンロードは3.7倍、アップロードは1.3倍、 IPv6接続が優れていた事が確認できました。

計測直後に実施したIPv4接続によるスピードテストの結果は以下の通りでした。

s3-ipv6-04

ダウンロードは8.5Mbps、アップロードは47Mbpsと、IPv4接続時のダウンロード速度が大きく低下していた事が、今回の差に繋がったものと予想されます。

IPv6を利用したインターネット接続、標準提供のISPや、ルータが対応済みであれば追加費用のかからないISPも増えています。 フレッツ回線を利用したインターネット接続を利用する環境で、混雑時にS3の転送速度の低下が問題となる場合、IPv6接続が可能であれば、S3のデュアルスタックエンドポイントの利用を是非お試しください。

参考情報

参考リンク

ネットワーク情報

  • 計測に利用した環境からS3へのICMP、Ping、Tracerouteの実行結果は以下の通りでした。

Ping

  • 3秒毎、5分間、100回の応答を測定

v4

$ ping -c 100 -i 3 s3-ap-northeast-1.amazonaws.com
PING s3-ap-northeast-1.amazonaws.com (52.219.0.16): 56 data bytes
64 bytes from 52.219.0.16: icmp_seq=0 ttl=51 time=12.564 ms
64 bytes from 52.219.0.16: icmp_seq=1 ttl=51 time=21.247 ms
<略>
64 bytes from 52.219.0.16: icmp_seq=98 ttl=51 time=24.211 ms
64 bytes from 52.219.0.16: icmp_seq=99 ttl=51 time=10.478 ms

--- s3-ap-northeast-1.amazonaws.com ping statistics ---
100 packets transmitted, 98 packets received, 2.0% packet loss
round-trip min/avg/max/stddev = 10.187/16.800/31.671/5.917 ms

v6

$ ping6 -c 100 -i 3 s3.dualstack.ap-northeast-1.amazonaws.com
PING6(56=40+8+8 bytes) ####:##:####::####::####::####::####::####: --> 2406:daa0:4060:d0:34db:443::
16 bytes from 2406:daa0:4060:d0:34db:443::, icmp_seq=0 hlim=49 time=6.115 ms
16 bytes from 2406:daa0:4060:d0:34db:443::, icmp_seq=1 hlim=49 time=5.925 ms
<略>
16 bytes from 2406:daa0:4060:d0:34db:443::, icmp_seq=98 hlim=49 time=6.202 ms
16 bytes from 2406:daa0:4060:d0:34db:443::, icmp_seq=99 hlim=49 time=5.706 ms

--- s3.dualstack.ap-northeast-1.amazonaws.com ping6 statistics ---
100 packets transmitted, 100 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 5.525/5.893/8.193/0.300 ms

Traceroute

v4

$ traceroute s3-ap-northeast-1.amazonaws.com
traceroute to s3-ap-northeast-1.amazonaws.com (52.219.0.8), 64 hops max, 52 byte packets
1 ###.###.###.### (###.###.###.###) 0.565 ms 0.192 ms 0.202 ms
2 * * *
3 210.147.215.135 (210.147.215.135) 6.979 ms 8.103 ms 5.092 ms
4 210.147.215.158 (210.147.215.158) 8.526 ms 11.563 ms 7.591 ms
5 133.205.60.38 (133.205.60.38) 24.897 ms 22.559 ms 14.685 ms
6 133.208.191.144 (133.208.191.144) 14.497 ms 16.466 ms 14.612 ms
7 210.173.176.188 (210.173.176.188) 22.822 ms 19.820 ms 17.236 ms
8 52.95.30.181 (52.95.30.181) 24.952 ms
52.95.30.169 (52.95.30.169) 82.757 ms
52.95.30.179 (52.95.30.179) 27.749 ms
9 52.95.30.78 (52.95.30.78) 19.334 ms
52.95.30.84 (52.95.30.84) 22.702 ms
52.95.30.74 (52.95.30.74) 18.339 ms
10 27.0.0.152 (27.0.0.152) 23.388 ms 14.649 ms 11.713 ms
11 * * *
12 * * *
13 * * *
14 * * *
15 52.219.0.8 (52.219.0.8) 24.078 ms 11.009 ms 20.287 ms

v6

$ traceroute6 s3.dualstack.ap-northeast-1.amazonaws.com
traceroute6 to s3.dualstack.ap-northeast-1.amazonaws.com (2406:daa0:4040:141:34db:447f::) from ####:##:####:####:####:####:####:####, 64 hops max, 12 byte packets
1 ####:##:####:####::#### 1.778 ms 1.217 ms 1.104 ms
2 * * *
3 * * *
4 2404:9200:225:c::1 4.467 ms 3.983 ms 4.002 ms
5 2001:268:fa00:29d::1 6.100 ms
2001:268:fa00:29c::1 5.211 ms 5.438 ms
6 2001:268:fa00:28c::2 3.981 ms 4.564 ms
2001:268:fa00:27f::2 4.529 ms
7 6jc-ote301.int-gw.kddi.ne.jp 4.589 ms 4.670 ms 4.585 ms
8 2001:268:f702:d1::2 4.903 ms 5.164 ms 4.741 ms
9 2400:6500:0:1::19 8.595 ms
2400:6500:0:1::1d 7.186 ms 16.523 ms
10 2400:6700::11 6.080 ms 6.289 ms 5.883 ms
11 2400:6500:0:1::33 6.436 ms 6.425 ms
2400:6500:0:1::32 5.949 ms
12 2400:6500::4104:8000:0:6440:10b2 7.253 ms
2400:6500::4104:8000:0:6440:1162 11.942 ms
2400:6500::4104:8000:0:6440:1140 9.974 ms
13 2400:6500:0:4104::6440:c499 15.005 ms
2400:6500:0:4104::6440:c48f 47.806 ms
2400:6500:0:4104::6440:c48b 8.910 ms
14 2400:6500:0:4104::6440:c484 14.772 ms
2400:6500:0:4104::6440:c485 8.572 ms
2400:6500:0:4104::6440:c484 13.045 ms
15 2400:6500::4104:8000:0:6440:1553 14.298 ms
2400:6500::4104:8000:0:6440:14d3 8.840 ms
2400:6500::4104:8000:0:6440:15d3 8.449 ms
16 2406:daa0:4040:141:34db:447f:: 5.872 ms 6.054 ms 5.751 ms