参考までに、AWS(Amazon Web Services)までの通信経路上のASパスの数が短くなったら、どれくらいレイテンシが変わるのか計測してみました。
注意事項として、この手の話は、もちろん環境によって結果が大きく変わるので、参考程度にしかならないかもしれませんが、軽く読んでみてください。
※ 少々長いので、時間がない方は、最後の"考察・まとめ"だけを読んでもらえればOKですw
BGPピアを確立する?
通常、インターネットで目的のホストと通信を行うと、途中途中で多くのネットワーク機器を通過することになります。選択される経路は、接続するネットワークによって大きく異なりますが、(もちろん)そのネットワークからの最適な経路が選択されることにはなります。(ルーターで設定されている)
で、当然そのルートは短ければ短いほど、ネットワーク距離が小さくなり経由する機器の数も減るので、レイテンシ(遅延)は小さくなるはず、というわけです。
以前に、下記エントリでも記載したのですが、
AWSには多くのインターネット接続事業者が、BGPピアをはっています。公開されているものだけでも、↑のエントリに記載している通り、現時点で数百といった規模のものです。
AS同士でピアリングを行うと、隣接同士(Neighborと呼ばれる)になるため、AWSのネットワークとピアをはると、自分の接続するネットワークのお隣さんが、AWSのネットワークになっちゃうわけですね。つまりご近所さんになれる。
ご近所さん的な拠点と、そうではない拠点で、どのくらいネットワークレイテンシが変わるのかしら?ちょっと確認してみるか、ってポイントがこのエントリの趣旨です。
前提
比較対象となるのは、厳密なBefore/Afterが難しいこともあり、都内の割と近めな2拠点から、東京リージョン(ap-northeast-1)の Amazon EC2 インスタンス(サーバ)への通信のレイテンシ(RTT)を計測してみました。
計測方法は、ping(ICMP)を使ったRTTの計測(10回)と、traceroute(ICMP)を使った通信経路の確認です。
現時点で、東京リージョンでAvailableとなっているゾーンは3つありましたので、その3つのZoneそれぞれに対して計測を行っています。
- (Tokyo Region) ap-northeast-1
- (Availability Zone) ap-northeast-1a
- (Availability Zone) ap-northeast-1b
- (Availability Zone) ap-northeast-1c
尚、「ap-northeast-1{a,b,c}」と呼ばれる3つのAvailability Zoneは、アカウントID毎にマッピングが違うので、注意してください。(私のアカウントが指す"ap-northeast-1a"と、貴方のアカウントが指している"ap-northeast-1a"は違うZoneかもしれない。)
↑の詳細は、昔のエントリですが、以下に詳細を書いています。
ap-northeast-1aに対する計測結果
一時的にAmazon EC2のインスタンスを起動し、割り当てられた以下のPublic IPアドレスに対して諸々を実行しました。
- 対象ホスト
- 54.238.12.206 (ec2-54-238-12-206.ap-northeast-1.compute.amazonaws.com)
BGPピア無し
BGPピアをはっていない拠点から。まずは、pingの結果。
$ ping -c 10 54.238.12.206 PING 54.238.12.206 (54.238.12.206) 56(84) bytes of data. 64 bytes from 54.238.12.206: icmp_seq=1 ttl=51 time=4.50 ms 64 bytes from 54.238.12.206: icmp_seq=2 ttl=51 time=4.50 ms 64 bytes from 54.238.12.206: icmp_seq=3 ttl=51 time=4.42 ms 64 bytes from 54.238.12.206: icmp_seq=4 ttl=51 time=4.27 ms 64 bytes from 54.238.12.206: icmp_seq=5 ttl=51 time=4.47 ms 64 bytes from 54.238.12.206: icmp_seq=6 ttl=51 time=4.46 ms 64 bytes from 54.238.12.206: icmp_seq=7 ttl=51 time=4.49 ms 64 bytes from 54.238.12.206: icmp_seq=8 ttl=51 time=4.48 ms 64 bytes from 54.238.12.206: icmp_seq=9 ttl=51 time=4.41 ms 64 bytes from 54.238.12.206: icmp_seq=10 ttl=51 time=4.56 ms ^C --- 54.238.12.206 ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9527ms rtt min/avg/max/mdev = 4.273/4.458/4.560/0.112 ms
はい。RTTの平均は4.458msecです。
$ traceroute -I 54.238.12.206 traceroute to 54.238.12.206 (54.238.12.206), 30 hops max, 60 byte packets 1 10.32.xx.xx (10.32.xx.xx) 0.803 ms 1.087 ms 1.111 ms 2 10.255.xx.xx (10.255.xx.xx) 0.575 ms 0.570 ms 0.561 ms 3 10.255.xx.xx (10.255.xx.xx) 1.694 ms 1.500 ms 1.753 ms 4 202.232.xx.xx (202.232.xx.xx) 1.439 ms 1.492 ms 1.486 ms 5 tky009bb10.IIJ.Net (58.138.112.1) 1.538 ms 1.519 ms 1.519 ms 6 tky009bf01.IIJ.Net (58.138.80.189) 26.309 ms 25.755 ms 25.741 ms 7 tky001ix01.IIJ.Net (58.138.80.118) 1.947 ms 1.948 ms 1.953 ms 8 210.173.176.188 (210.173.176.188) 3.096 ms 3.074 ms 3.066 ms 9 27.0.0.129 (27.0.0.129) 3.927 ms 3.910 ms 3.900 ms 10 27.0.0.147 (27.0.0.147) 4.016 ms 4.006 ms 3.950 ms 11 ec2-175-41-192-223.ap-northeast-1.compute.amazonaws.com (175.41.192.223) 3.892 ms 4.147 ms 4.126 ms 12 * * * 13 ec2-54-238-12-206.ap-northeast-1.compute.amazonaws.com (54.238.12.206) 4.632 ms 4.551 ms 4.520 ms
次に、tracerouteの結果。
↑を見てもらったら、分かるとおり、この拠点からは、IIJの回線・網内を通り抜け、JPNAP Tokyo(210.173.176.188)でのIX接続を経て、AWS内に入っていく経路となります。
BGPピア有り
次に、AWSとBGPピアを確立している場合です。
$ ping -c 10 54.238.12.206 PING 54.238.12.206 (54.238.12.206) 56(84) bytes of data. 64 bytes from 54.238.12.206: icmp_seq=1 ttl=53 time=3.03 ms 64 bytes from 54.238.12.206: icmp_seq=2 ttl=53 time=3.09 ms 64 bytes from 54.238.12.206: icmp_seq=3 ttl=53 time=2.96 ms 64 bytes from 54.238.12.206: icmp_seq=4 ttl=53 time=2.78 ms 64 bytes from 54.238.12.206: icmp_seq=5 ttl=53 time=2.99 ms 64 bytes from 54.238.12.206: icmp_seq=6 ttl=53 time=2.89 ms 64 bytes from 54.238.12.206: icmp_seq=7 ttl=53 time=2.96 ms 64 bytes from 54.238.12.206: icmp_seq=8 ttl=53 time=2.99 ms 64 bytes from 54.238.12.206: icmp_seq=9 ttl=53 time=5.43 ms 64 bytes from 54.238.12.206: icmp_seq=10 ttl=53 time=2.97 ms --- 54.238.12.206 ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9000ms rtt min/avg/max/mdev = 2.783/3.212/5.435/0.747 ms
まずpingですが、RTTが3.212msecと、さっきより約1.2msecほどRTTが短くなりました。
$ traceroute -I 54.238.12.206 traceroute to 54.238.12.206 (54.238.12.206), 30 hops max, 40 byte packets 1 10.200.xx.xx (10.200.xx.xx) 0.051 ms 0.112 ms 0.119 ms 2 10.202.xx.xx (10.202.xx.xx) 0.399 ms 0.517 ms 0.689 ms 3 10.202.xx.xx (10.202.xx.xx) 3.119 ms 3.159 ms 3.183 ms 4 10.202.xx.xx (10.202.xx.xx) 0.636 ms 0.696 ms 0.757 ms 5 * * * 6 27.0.0.135 (27.0.0.135) 2.343 ms 2.282 ms 2.299 ms 7 27.0.0.147 (27.0.0.147) 2.551 ms 2.628 ms 2.637 ms 8 ec2-175-41-192-223.ap-northeast-1.compute.amazonaws.com (175.41.192.223) 2.747 ms 2.917 ms 3.004 ms 9 ec2-54-238-12-206.ap-northeast-1.compute.amazonaws.com (54.238.12.206) 3.004 ms 2.765 ms 2.819 ms
tracerouteを確認すると、まずホップ数(経由するルーターの数)が先ほどと比べて少なくなっています(13→9)。
10.202.xx.xx(Private)の自拠点を出た後に、他事業者の網内は通らず、27.0.0.xx(Amazon保有)へ入るといった経路を辿っている事が分かります。その結果、経路的にも近くなり、経由する機器の数も減ったことから、ネットワークレイテンシが小さくなったと考えられます。
次に、"ap-northeast-1b"と"ap-northeast-1c"での計測結果ですが、↑とほど同様の傾向が見られたので、コマンドの実行結果だけはって、最後に考察を書いてみます。
ap-northeast-1bに対する計測結果
- 対象ホスト
- 54.248.175.152 (ec2-54-248-175-152.ap-northeast-1.compute.amazonaws.com)
BGPピア無し
$ ping -c 10 54.248.175.152 PING 54.248.175.152 (54.248.175.152) 56(84) bytes of data. 64 bytes from 54.248.175.152: icmp_seq=1 ttl=50 time=5.42 ms 64 bytes from 54.248.175.152: icmp_seq=2 ttl=50 time=5.43 ms 64 bytes from 54.248.175.152: icmp_seq=3 ttl=50 time=5.31 ms 64 bytes from 54.248.175.152: icmp_seq=4 ttl=50 time=5.30 ms 64 bytes from 54.248.175.152: icmp_seq=5 ttl=50 time=5.34 ms 64 bytes from 54.248.175.152: icmp_seq=6 ttl=50 time=5.15 ms 64 bytes from 54.248.175.152: icmp_seq=7 ttl=50 time=5.40 ms 64 bytes from 54.248.175.152: icmp_seq=8 ttl=50 time=5.20 ms 64 bytes from 54.248.175.152: icmp_seq=9 ttl=50 time=5.24 ms 64 bytes from 54.248.175.152: icmp_seq=10 ttl=50 time=5.57 ms --- 54.248.175.152 ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9018ms rtt min/avg/max/mdev = 5.151/5.339/5.572/0.117 ms
$ traceroute -I 54.248.175.152 traceroute to 54.248.175.152 (54.248.175.152), 30 hops max, 60 byte packets 1 10.32.xx.xx (10.32.xx.xx) 0.746 ms 0.948 ms 0.971 ms 2 10.255.xx.xx (10.255.xx.xx) 0.664 ms 0.565 ms 0.664 ms 3 10.255.xx.xx (10.255.xx.xx) 1.649 ms 1.706 ms 1.514 ms 4 202.232.xx.xx (202.232.xx.xx) 1.506 ms 1.512 ms 1.506 ms 5 tky009bb10.IIJ.Net (58.138.112.1) 1.562 ms 1.562 ms 1.562 ms 6 tky008bf00.IIJ.Net (58.138.80.177) 2.355 ms 2.191 ms 2.236 ms 7 tky001ix01.IIJ.Net (58.138.80.106) 2.214 ms 38.855 ms 38.832 ms 8 210.173.176.188 (210.173.176.188) 3.193 ms 3.171 ms 3.161 ms 9 27.0.0.131 (27.0.0.131) 5.147 ms 5.136 ms 5.124 ms 10 27.0.0.155 (27.0.0.155) 4.945 ms 4.937 ms 4.647 ms 11 ec2-175-41-192-219.ap-northeast-1.compute.amazonaws.com (175.41.192.219) 4.722 ms 4.763 ms 4.988 ms 12 * * * 13 * * * 14 ec2-54-248-175-152.ap-northeast-1.compute.amazonaws.com (54.248.175.152) 5.228 ms 5.217 ms 5.197 ms
BGPピア有り
$ ping -c 10 54.248.175.152 PING 54.248.175.152 (54.248.175.152) 56(84) bytes of data. 64 bytes from 54.248.175.152: icmp_seq=1 ttl=52 time=4.02 ms 64 bytes from 54.248.175.152: icmp_seq=2 ttl=52 time=4.07 ms 64 bytes from 54.248.175.152: icmp_seq=3 ttl=52 time=4.02 ms 64 bytes from 54.248.175.152: icmp_seq=4 ttl=52 time=4.00 ms 64 bytes from 54.248.175.152: icmp_seq=5 ttl=52 time=4.10 ms 64 bytes from 54.248.175.152: icmp_seq=6 ttl=52 time=4.11 ms 64 bytes from 54.248.175.152: icmp_seq=7 ttl=52 time=3.82 ms 64 bytes from 54.248.175.152: icmp_seq=8 ttl=52 time=4.20 ms 64 bytes from 54.248.175.152: icmp_seq=9 ttl=52 time=3.98 ms 64 bytes from 54.248.175.152: icmp_seq=10 ttl=52 time=4.01 ms --- 54.248.175.152 ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9000ms rtt min/avg/max/mdev = 3.824/4.036/4.201/0.124 ms
$ traceroute -I 54.248.175.152 traceroute to 54.248.175.152 (54.248.175.152), 30 hops max, 40 byte packets 1 10.200.xx.xx (10.200.xx.xx) 0.068 ms 0.230 ms 0.262 ms 2 10.202.xx.xx (10.202.xx.xx) 0.388 ms 0.552 ms 0.666 ms 3 10.202.xx.xx (10.202.xx.xx) 0.227 ms 0.273 ms 0.306 ms 4 10.202.xx.xx (10.202.xx.xx) 0.596 ms 0.700 ms 0.745 ms 5 * * * 6 27.0.0.137 (27.0.0.137) 3.252 ms 3.380 ms 3.357 ms 7 27.0.0.155 (27.0.0.155) 3.107 ms 3.207 ms 3.252 ms 8 ec2-175-41-192-219.ap-northeast-1.compute.amazonaws.com (175.41.192.219) 3.471 ms 3.101 ms 3.323 ms 9 ec2-54-248-175-152.ap-northeast-1.compute.amazonaws.com (54.248.175.152) 4.038 ms 4.004 ms 3.966 ms
ap-northeast-1cに対する計測結果
- 対象ホスト
- 54.238.23.241 (ec2-54-238-23-241.ap-northeast-1.compute.amazonaws.com)
BGPピア無し
$ ping -c 10 54.238.23.241 PING 54.238.23.241 (54.238.23.241) 56(84) bytes of data. 64 bytes from 54.238.23.241: icmp_seq=1 ttl=49 time=6.78 ms 64 bytes from 54.238.23.241: icmp_seq=2 ttl=49 time=6.54 ms 64 bytes from 54.238.23.241: icmp_seq=3 ttl=49 time=6.65 ms 64 bytes from 54.238.23.241: icmp_seq=4 ttl=49 time=6.60 ms 64 bytes from 54.238.23.241: icmp_seq=5 ttl=49 time=6.92 ms 64 bytes from 54.238.23.241: icmp_seq=6 ttl=49 time=6.70 ms 64 bytes from 54.238.23.241: icmp_seq=7 ttl=49 time=6.80 ms 64 bytes from 54.238.23.241: icmp_seq=8 ttl=49 time=6.59 ms 64 bytes from 54.238.23.241: icmp_seq=9 ttl=49 time=6.69 ms 64 bytes from 54.238.23.241: icmp_seq=10 ttl=49 time=6.67 ms --- 54.238.23.241 ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9022ms rtt min/avg/max/mdev = 6.549/6.697/6.920/0.152 ms
$ traceroute -I 54.238.23.241 traceroute to 54.238.23.241 (54.238.23.241), 30 hops max, 60 byte packets 1 10.32.xx.xx (10.32.xx.xx) 0.825 ms 1.314 ms 1.466 ms 2 10.255.xx.xx (10.255.xx.xx) 0.590 ms 0.587 ms 0.577 ms 3 10.255.xx.xx (10.255.xx.xx) 1.777 ms 1.501 ms 1.820 ms 4 202.232.xx.xx (202.232.xx.xx) 1.444 ms 1.445 ms 1.443 ms 5 tky009bb11.IIJ.Net (58.138.112.13) 1.538 ms 1.534 ms 1.535 ms 6 tky001bf01.IIJ.Net (58.138.80.197) 2.036 ms 2.136 ms 2.114 ms 7 tky001ix01.IIJ.Net (58.138.80.102) 1.959 ms 2.009 ms 1.985 ms 8 210.173.176.188 (210.173.176.188) 2.984 ms 3.017 ms 3.006 ms 9 27.0.0.80 (27.0.0.80) 6.293 ms 6.271 ms 6.274 ms 10 27.0.0.70 (27.0.0.70) 6.148 ms 6.142 ms 6.085 ms 11 ec2-175-41-192-195.ap-northeast-1.compute.amazonaws.com (175.41.192.195) 6.392 ms 6.491 ms 6.747 ms 12 * * * 13 * * * 14 * * * 15 * * * 16 ec2-54-238-23-241.ap-northeast-1.compute.amazonaws.com (54.238.23.241) 6.677 ms 6.976 ms 6.947 ms
BGPピア有り
$ ping -c 10 54.238.23.241 PING 54.238.23.241 (54.238.23.241) 56(84) bytes of data. 64 bytes from 54.238.23.241: icmp_seq=1 ttl=50 time=5.72 ms 64 bytes from 54.238.23.241: icmp_seq=2 ttl=50 time=5.70 ms 64 bytes from 54.238.23.241: icmp_seq=3 ttl=50 time=5.97 ms 64 bytes from 54.238.23.241: icmp_seq=4 ttl=50 time=5.68 ms 64 bytes from 54.238.23.241: icmp_seq=5 ttl=50 time=5.76 ms 64 bytes from 54.238.23.241: icmp_seq=6 ttl=50 time=5.90 ms 64 bytes from 54.238.23.241: icmp_seq=7 ttl=50 time=5.60 ms 64 bytes from 54.238.23.241: icmp_seq=8 ttl=50 time=5.59 ms 64 bytes from 54.238.23.241: icmp_seq=9 ttl=50 time=5.75 ms 64 bytes from 54.238.23.241: icmp_seq=10 ttl=50 time=6.01 ms --- 54.238.23.241 ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9000ms rtt min/avg/max/mdev = 5.598/5.772/6.010/0.136 ms
$ traceroute -I 54.238.23.241 traceroute to 54.238.23.241 (54.238.23.241), 30 hops max, 40 byte packets 1 10.200.xx.xx (10.200.xx.xx) 0.069 ms 0.066 ms 0.066 ms 2 10.202.xx.xx (10.202.xx.xx) 0.361 ms 0.517 ms 0.640 ms 3 10.202.xx.xx (10.202.xx.xx) 0.255 ms 0.255 ms 0.255 ms 4 10.202.xx.xx (10.202.xx.xx) 0.817 ms 0.831 ms 0.897 ms 5 * * * 6 27.0.0.82 (27.0.0.82) 5.559 ms 5.577 ms 5.593 ms 7 27.0.0.70 (27.0.0.70) 5.163 ms 5.189 ms 5.166 ms 8 ec2-175-41-192-193.ap-northeast-1.compute.amazonaws.com (175.41.192.193) 5.595 ms 5.229 ms 5.386 ms 9 ec2-54-238-23-241.ap-northeast-1.compute.amazonaws.com (54.238.23.241) 5.742 ms 5.890 ms 5.784 ms
考察・まとめ
上記の結果を見ていただければわかりますが、今回のサンプルでは、AWSとBGPピアをはることで、ASパスが2から1になっているというケースです。
これくらいだと、距離長はそれほど大きくは変わらないはずので、それほど大きな差はついていないですが、「AWSの上位ネットワークまわりについて - 元RX-7乗りの適当な日々」にも書いたとおり、AWSにはたくさんのASがピアリングしていて、今後もおそらく増えると思われるので、どこから繋いでも、それほど大きなASパスにはならないかもしれません。(もちろん各AS構内のルーターの設定次第です)
一応、今回の計測結果を以下にまとめます。
Zone | BGPピア有 | BGPピア無 |
---|---|---|
ap-northeast-1a | 3.212msec | 4.458msec |
ap-northeast-1b | 4.036msec | 5.339msec |
ap-northeast-1c | 5.772msec | 6.697msec |
この通り、AWSとBGPピアをはることで、今回はASパスが2から1に減り(数hop減少)、約0.9〜1.3msecレイテンシは小さくなりました。各Zoneともに同じ傾向です。
面白い傾向としては、これまでのtracerouteの計測結果を見ていると、接続元の拠点が同じ場合、3つのどのZoneへの経路にしても、同じIX(接続元からのベストパスによって通るIXは違いますが)を通っていっているという点です。
つまり、↑の表だと、日本国内からの接続でサービスのレイテンシを最大限小さくしたい場合は、(僕のアカウントを使う限りは)ap-northeast-1a*1でサービスを展開すべき、ということになります。
もちろん、↑の数字は誤差の範囲内なので、それほど神経質になる必要はありません。3つのどこでも正直大差はないでしょう。
むしろ、Availability Zoneということで、各Zoneは、IX拠点から、2msec前後の差がつくくらいのネットワーク距離がある、つまりそれなりに離れていることを意味しているのかもしれません。
長くなってしまったので、一旦この辺まで。また続編を書きます。
それでは!それでは! =͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́
あわせて読みたい
まとめ
クラウドAMAZON EC2/S3のすべて (ITpro BOOKs)
- 作者: 並河祐貴,安達輝雄,ITpro/日経SYSTEMS
- 出版社/メーカー: 日経BP社
- 発売日: 2009/11/05
- メディア: 単行本
- 購入: 4人 クリック: 372回
- この商品を含むブログ (18件) を見る
*1:アカウントIDごとにZoneのマップが違うので注意 ⇒ EC2のAvailability ZoneはアカウントID毎にマップが違うようだ - 元RX-7乗りの適当な日々