俺のアウトプット

調べたこと、試したことを書きます

iperfを利用して東京〜USリージョン間のEC2ネットワークスループットを計測してみた

米国リージョンは、政府用を除くと、下記の4つがあります。(2018年8月現在)

  • us-east-1: 米国東部(バージニア北部)
  • us-east-2: 米国東部 (オハイオ)
  • us-west-1: 米国西部 (北カリフォルニア)
  • us-west-2: 米国西部 (オレゴン)

f:id:kitsugi:20180813055417p:plain

東京リージョンEC2から各リージョンEC2へ、どの程度のネットワークスループットがあるのか?
気になったので計測してみました。
計測にはオープンソースのiperf(アイパーフ)を利用し、EC2はAmazon Linux2を選択しました。

EC2

各リージョンにEC2インスタンスを作成します。

  • AMIの選択
    • Amazon Linux2
  • インスタンスタイプの選択
    • t2.micro
  • インスタンスの設定
    • ネットワーク: デフォルトVPC
    • サブネット: 優先順位なし(AZのデフォルトサブネット)
  • セキュリティグループの設定
    • インバウンド1行目(サーバー側の場合)
      • タイプ: カスタムTCPルール
      • ポート範囲: 5001
      • ソース: 任意の場所
    • インバウンド2行目
      • タイプ: SSH
      • ポート範囲: 22
      • ソース: 任意の場所

iperf

インストール

Amazon Linux2にEPELリポジトリを追加してからインストールします。

sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install -y iperf
サーバー側(米国リージョン)

オプション-sを付けてリッスン状態にします。
デフォルトではTCP 5001番を利用します。

$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: xx.x KByte (default)
------------------------------------------------------------
クライアント側(東京リージョン)

サーバー側をリッスン状態にした後に、クライアント側からコマンドを叩きます。 オプションは-cで、サーバー側のIPアドレスを指定します。

$ iperf -c xxx.xxxx.xxx.xxx(サーバー側のIPアドレス)

接続出来ない場合は、サーバー側のTCP 5001番(デフォルト)が利用出来るか、セキュリティグループ、ネットワークACLを見直してください。

計測結果

参考にシンガポールも計測しました。
それぞれ10回計測し、上位2値と下位2値を取り除いた値の平均値を取っています。 計測値は時間帯やAZ、経路など、状況によって変わるため、参考程度に見てください。

リージョン AZ Mbits/sec
バージニア北部 us-east-1b 68.82
オハイオ us-east-2b 73.42
北カルフォルニア us-west-1b 108.66
オレゴン us-west-2b 111.8
シンガポール ap-southeast-1b 160.5

参考