特集「検証!Amazon EC2」最終回は、EC2を日本から利用する際のボトルネックになりがちなネットワーク面に焦点を当てる。検証したのは、仮想マシン間の通信速度、日本から米国東西のEC2、および2010年4月にオープンしたばかりのシンガポールEC2にアクセスした際のTCPスループットである。太平洋や南シナ海を越える通信である以上、伝送遅延の影響からは逃れられない。
検証には、TCP/IPのスループットを計測する「iperf」を利用した。EC2に設置したサーバーでWebサーバーを構築する際の1ユーザー当たりのスループット計測を想定。プロトコルはTCPを使い、1セッションの実効速度を調べた。測定対象としたのは、LANが仮想マシン間、WANがEC2と国内クライアント間のトラフィックである。クライアントのOSとしてはWindows XP(Service Pack 3)を使用した。EC2仮想マシンのネットワークインタフェースは、ギガビットイーサネットとして見えている。
仮想LANの実効速度は900Mビット/秒
最初に、EC2の仮想ネットワークにおける上限値を計る目的で、同一のデータセンター(us-east-1d)における仮想マシン間の通信速度を調べた(図1)。仮想LANに相当する部分である。
結果を見ると、総じて900Mビット/秒前後のスループットが得られた。Smallが約811Mビット/秒とふるわないが、1ECUでメモリーが1.7Gバイトの仮想マシンとしては順当な結果だろう。
EC2では物理的に分かれた施設にあるとされる同一地域内のセンターを複数利用することで、仮想マシンの冗長化が図れる。当然、センター間のLANはセンター内のLANよりネットワーク的な距離が長いはずだ。そこでus-east-1dとus-east-1cの両センター間で計測したところ、センター内の通信より100Mビット/秒ほどスループットが落ちる。
これはパケットの往復時間(RTT)が同一センター内で0.5ミリ秒、同一地域内センター間で2ミリ秒と、ネットワーク構成に違いがあるからだろう。以下は、パケットの転送経路を調べるために実行したtracerouteコマンドの結果を一部編集したものだ。これによると、同一センター内では測定対象の仮想マシンにルーターを介さず接続できていることが分かる。
# traceroute xxx.amazonaws.com
traceroute to xxx.amazonaws.com , 30 hops max, 40 byte packets
1 xxx.ec2.internal (10.245.61.157) 0.791 ms 0.779 ms 0.761 ms
一方、同一地域内のセンター間での通信についてもtracerouteコマンドで確認してみたところ、途中でルーティングが発生していることが分かった。
# tracert xxx.amazonaws.com
traceroute to xxx.amazonaws.com , 30 hops max, 40 byte packets
1 xxx.internal (10.245.60.3) 0.392 ms 0.531 ms 0.533 ms
2 xxx.amazonaws.com (75.101.160.226) 0.657 ms 0.662 ms 0.659 ms
3 216.182.232.70 (216.182.232.70) 0.515 ms 0.511 ms 0.625 ms
4 216.182.232.21 (216.182.232.21) 1.967 ms 1.967 ms 2.089 ms
5 216.182.232.65 (216.182.232.65) 2.526 ms 2.532 ms 2.530 ms
6 xxx.amazonaws.com (75.101.160.175) 2.175 ms 1.881 ms 1.842 ms
7 domU-xxx.internal (10.208.83.113) 4.277 ms 4.270 ms 4.249 ms
root@ip-10-245-62-31:~#