Amazon EC2 Windows インスタンス間でのネットワーク帯域幅を計測する必要があります。その方法を教えてください。

Amazon EC2 ネットワークのパフォーマンスに影響を与える可能性のある要因を以下にいくつか示します。

  • 降順で定義されている EC2 インスタンスの物理的な近さ:
    • 同じアベイラビリティーゾーン内のインスタンス
    • 同じリージョンの異なるアベイラビリティーゾーン内のインスタンス
    • 同じ大陸の異なるリージョン内のインスタンス
    • 異なる大陸の異なるリージョン内のインスタンス
  • EC2 インスタンスの最大伝送単位(MTU)。EC2 インスタンスのデフォルトのインターフェイス設定では、1 つの Virtual Private Cloud (VPC) で高いスループットを可能にするジャンボフレーム(9001 MTU)が使用されます。ただし、1 つの VPC の外では、最大 MTU が 1,500 以下であるため、大きいパケットは中間システムによって分割される必要があります。したがって、デフォルトの MTU 値として 9,001 では効率が下がる可能性があり、ネットワークスループットが節約されても、それ以上に処理オーバーヘッドは高くなります。これは特に、お客様のネットワークトラフィックのほとんどがインターネット向けの場合です。ジャンボフレームを使用するよう設定できるインスタンスタイプは CC2、C3、R3、CG1、CR1、G2、HS1、I2、T2、M3 などです。詳細については、「インスタンスタイプ」を参照してください。
  • EC2 インスタンスサイズ。インスタンスタイプのインスタンスサイズが大きくなるほど、一般的にネットワークパフォーマンスは高くなりますが、同じタイプのインスタンスサイズは小さくなります。
  • T2 および M3 インスタンスタイプを除く、Windows 対応 EC2 拡張ネットワーキングサポート。
  • プレイスメントグループを使用した EC2 ハイパフォーマンスコンピューティング(HPC)のサポート。HPC では、2 分割帯域幅と短いレイテンシーが特徴で、10 ギガビットのネットワーク速度がサポートされています。詳細については、「プレイスメントグループでのインスタンスの起動」を参照してください。各インスタンスタイプのネットワークパフォーマンスを確認するには、「インスタンスタイプのマトリックス」を参照してください。

これらの要因のため、多くの場合、クラウド環境間でネットワークパフォーマンスは大きく異なります。クラウドベースのアプリケーションに対するネットワークパフォーマンスの影響を評価するためのベストプラクティスには、お客様の環境の定期的なベースラインネットワークベンチマークテストを含める必要があります。この記事では、EC2 Windows インスタンス間でのネットワークパフォーマンスをセットアップ、設定、ベンチマークするために必要なステップを説明します。ネットワークパフォーマンスは、多くの場合、アプリケーションパフォーマンスの重要な側面であるため、ネットワークパフォーマンスのテストにより、ニーズに最適な EC2 のインスタンスタイプ、サイズ、設定を決定するための貴重な洞察を得られます。

ベンチマークテストを開始する前に、Windows EC2 インスタンスを起動して設定します。

  1. Windows インスタンスを起動する」のステップに従って、ネットワークパフォーマンステストを実行する 2 つの Windows インスタンスを起動します。
  2. 可能な限りベストなネットワークパフォーマンスを得るために、インスタンスが Windows 対応拡張ネットワーキングをサポートしていることを確認してから、同一 VPC 内でインスタンスを起動し、「VPC 内の Windows インスタンスでの拡張ネットワーキングの有効化」のステップに従ってください。
  3. 同じプレイスメントグループに共存していないインスタンス間や、ジャンボフレームがサポートされていないインスタンス間でネットワークテストを実行する場合は、「EC2 インスタンスの最大ネットワーク伝送単位(MTU)」の手順に従って、Amazon EC2 インスタンスで MTU を確認して設定します。
  4. RDP を使用して Windows インスタンスに接続する」の手順を完了して、インスタンスにアクセスできることを確認します。

RDP を使用して Windows インスタンスに接続し、以下を実行します。

  1. Microsoft TechNet NTttcp ダウンロードページから NTttcp-v5.31.zip をダウンロードします。
  2. ファイルの内容をフォルダに解凍します。
  3. 管理者権限でコマンドプロンプトウィンドウを開いて、NTttcp-v5.31.zip を解凍したフォルダのディレクトリに移動します。
  4. EC2 Windows インスタンスのアーキテクチャと名前が一致するフォルダのディレクトリに移動してから、NTttcp を実行します。

NTttcp は TCP パフォーマンスをテストする際にデフォルトではポート 5001 を使用して通信しますが、このポートは -p スイッチを使用して設定できます。セキュリティグループが、NTttcp が使用するポートでの通信を許可する設定になっていることを確認してください。また、NTttcp.exe の接続を許可する受信側と送信側の両方に、インバウンドおよびアウトバウンド Windows ファイアウォールルールを追加してください。

  1. 1 つのインスタンスをレシーバー/サーバーとして設定し、リスナーをデフォルトポート 5001 で初期化するか、-p スイッチを使用して代替の初期リスナーを指定します。たとえば、以下のコマンドは指定された IP アドレスのポート 80-81 でリスンする 2 スレッドレシーバーを初期化します。最初のスレッドは CPU 0 で実行され、2 番目のスレッドは CPU 1 で実行されます。この例で使用されている ntttcp.exe レシーバーパラメーターはコマンドの下で説明されています。
         ntttcp -r -p 80 -a 6 -t 60 -cd 5 -wu 5 -v -xml c:\bench.xml -m 1,0,192.168.1.4 1,1,192.168.1.4
         • -r — 受信
         • -p 80 — データを受信するために第 1 スレッドが使用するポート。ポート番号は受信スレッドが追加されるごとに増分
         • -a 6 — スレッドごとに 6 の受信オーバーラップバッファを送信する非同期データ転送
         • -t 60 — テスト継続時間 (秒)
         • -cd 5 — 5 秒間のテストクールダウン時間
         • -wu 5 — 5 秒間のテストウォームアップ時間
         • -v — 詳細なテスト出力を指定
         • -xml — テスト出力を指定のファイルに保存 (デフォルトでは xml.txt に保存)
         • -m — セッションごとに 3 つのマッピングパラメーターを指定 (# スレッド、CPUID、レシーバー IP アドレス)。複数のセッションはスペースで区切る
  2. 2 つめのインスタンスを送信側/クライアントとして設定し、必要なパラメーターを指定してレシーバーに対してテストを実行します。たとえば、以下のコマンドは指定された IP アドレスのポート 80-81 に送信する 2 スレッド TCP センダーを初期化します。最初のスレッドは CPU 0 で実行され、2 番目のスレッドは CPU 1 で実行されます。この例で使用されている ntttcp.exe センダーパラメーターはコマンドの下で説明されています。
         ntttcp -s -p 80 -a -t 60 -cd 5 -wu 5 -m 1,0,192.168.1.4 1,1,192.168.1.4
         • -s — 送信
         • -p 80 — データを送信するために第 1 スレッドが使用するポート。このポート番号は送信スレッドが追加されるごとに増分
         • -a — スレッドごとにデフォルトの値である 2 を使用して非同期オーバーラップバッファを送信。必要に応じてデフォルト以外の値を指定
         • -t 60 — テスト継続時間 (秒)
         • -cd 5 — 5 秒間のテストクールダウン時間
         • -wu 5 — 5 秒間のテストウォームアップ時間
         • -m — セッションごとに 3 つのマッピングパラメーターを指定 (# スレッド、CPUID、送信先 IP アドレス)。複数のセッションはスペースで区切る

レシーバーに生成される xml 出力は次のようになります。このテストでは、利用できる合計帯域幅は約 9.02 Gbits/秒でした。

bandwidth-tcp

NTttcp は UDP パフォーマンスをテストする際にデフォルトではポート 5001 を使用して通信しますが、このポートは -p スイッチを使用して設定できます。セキュリティグループが、NTttcp が使用するポートでの通信を許可する設定になっていることを確認してください。また、NTttcp.exe の接続を許可する受信側と送信側の両方に、インバウンドおよびアウトバウンド Windows ファイアウォールルールを追加してください。

  1. 1 つのインスタンスをレシーバー/サーバーとして設定し、リスナーをデフォルトポート 5001 で初期化するか、-p スイッチを使用して代替の初期リスナーを指定します。たとえば、以下のコマンドは指定された IP アドレスのポート 80-81 でリスンする 2 スレッドレシーバーを初期化します。最初のスレッドは CPU 0 で実行され、2 番目のスレッドは CPU 1 で実行されます。この例で使用されている ntttcp.exe レシーバーパラメーターはコマンドの下で説明されています。
         ntttcp –r –u -p 80 –t 60 –cd 5 –wu 5 –v –xml c:\bench.xml –m 1,0,192.168.1.4 1,1,192.168.1.4
         • -r — 受信
         • -u — テスト UDP
         • -p 80 — データを受信するために第 1 スレッドが使用するポート。ポート番号は受信スレッドが追加されるごとに増分
         • -t 60 — テスト継続時間 (秒)
         • -cd 5 — 5 秒間のテストクールダウン時間
         • -wu 5 — 5 秒間のテストウォームアップ時間
         • -v — 詳細なテスト出力を指定
         • -xml — テスト出力を指定のファイルに保存 (デフォルトでは xml.txt に保存)
         • -m — セッションごとに 3 つのマッピングパラメーターを指定 (# スレッド、CPUID、レシーバー IP アドレス)。複数のセッションはスペースで区切る
  2. 2 つめのインスタンスを送信側/クライアントとして設定し、必要なパラメーターを指定してレシーバーに対してテストを実行します。たとえば、以下のコマンドは指定された IP アドレスのポート 80-81 に送信する 2 スレッド UDP センダーを初期化します。最初のスレッドは CPU 0 で実行され、2 番目のスレッドは CPU 1 で実行されます。この例で使用されている ntttcp.exe センダーパラメーターはコマンドの下で説明されています。
         ntttcp -s –u -p 80 -t 60 -cd 5 -wu 5 -m 1,0,192.168.1.4 1,1,192.168.1.4
         • -s — 送信
         • -u — テスト UDP (デフォルトではテスト TCP)
         • -p 80 — データを送信するために第 1 スレッドが使用するポート。このポート番号は送信スレッドが追加されるごとに増分
         • -t 60 — テスト継続時間 (秒)
         • -cd 5 — 5 秒間のテストクールダウン時間
         • -wu 5 — 5 秒間のテストウォームアップ時間
         • -m — セッションごとに 3 つのマッピングパラメーターを指定 (# スレッド、CPUID、送信先 IP アドレス)。複数のセッションはスペースで区切る

レシーバーに生成される xml 出力は次のようになります。

bandwidth-udp

NTttcp で使用できるすべてのスイッチをばやく確認するには、コマンドプロンプトから ntttcp を実行します。

NTttcp で使用できるオプションの詳細については、NTttcp ダウンロードファイル に含まれる TCP_Tool.docx Word ファイルを参照してください。また、「Microsoft TechNet NTttcp ダウンロードページ」で NTttcp の最新更新も確認してください。

Amazon EC2 Windows、ネットワーク、パフォーマンス、プレイスメントグループ、HPC、スループット、NTttcp、MTU、VPC、UDP、TCP


このページは役に立ちましたか? はい | いいえ

AWS サポートナリッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。