特集「検証!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に相当する部分である。

図1●ネットワークのスループットを測定する「iperf」をEC2のLinux仮想マシン間で実施した際のベンチマーク結果
図1●ネットワークのスループットを測定する「iperf」をEC2のLinux仮想マシン間で実施した際のベンチマーク結果

 結果を見ると、総じて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:~#