すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:ネットワーク遅延ドリル

最終更新日:Apr 22, 2025

ネットワーク遅延は、アプリケーションとサービスの応答速度に影響を与え、ネットワーク遅延が大きいとユーザーエクスペリエンスが低下します。ネットワーク遅延につながる要因には、ネットワークトラフィックの増加や回線の不安定化などがあります。このドリルシナリオでは、ネットワーク遅延が発生した場合のシステムアラートと回復メカニズムを検証します。

制限事項

このドリルシナリオでは、tc トラフィックコントロール(TC)ユーティリティとその依存カーネルであるネットワークエミュレータ(NetEm)コンポーネントが必要です。

  • システムに tc ユーティリティがない場合は、sudo yum install -y iproute-tc または sudo apt-get install -y iproute2 コマンドを実行してインストールするか、ACS-ECS-NetDelay プラグインの実行時に関連パラメーターを指定して自動的にインストールします。

  • CentOS など、システムカーネルに NetEm コンポーネントがない場合は、sudo yum install kernel-modules-extra コマンドを実行してコンポーネントパッケージをインストールし、システムを再起動します。

    警告

    kernel-modules-extra パッケージをインストールするとカーネルバージョンが変更されることに注意してください。慎重に実行してください。他のオペレーティングシステムを実行している Elastic Compute Service (ECS) インスタンスを使用してドリルを実行することをお勧めします。

実装

このドリルでは、ACS-ECS-NetDelay クラウドアシスタントプラグインを使用します。このプラグインは、tc ユーティリティと NetEm コンポーネントを利用して、ネットワークインターフェースコントローラー(NIC)に特定のルールを追加し、Linux カーネルのトラフィックを制御します。このプラグインは、クラウドアシスタント CIDR ブロック 100.100.0.0/16 のトラフィックに影響を与えることなく、すべての IP アドレスまたは単一の IP アドレスのトラフィックを制限できます。

手順

前提条件

エラーを挿入する

  1. sudo 権限を持つユーザーとして ECS インスタンスに接続します。

    詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。

  2. ACS-ECS-NetDelay クラウドアシスタントプラグインを実行します。

    sudo acs-plugin-manager --exec --plugin ACS-ECS-NetDelay --params inject,dev=eth0,[time=paramA],[jitter=paramB],[target-ip=paramC],[replace=paramD],[duration=paramE],[install-tc=paramF]

    オプションのエラー挿入パラメーターは、角かっこ([])で囲まれています。

    • dev(必須): エラーを挿入する NIC(例: eth0)。ifconfig コマンドを実行すると、システムで使用可能な NIC を表示できます。

    • time(オプション): 遅延時間。単位: ミリ秒。デフォルト値: 100。

    • jitter(オプション): ジッター範囲。単位: ミリ秒。デフォルト値: 10。

    • target-ip(オプション): 影響を与えるターゲット IP アドレス。このパラメーターはデフォルトでは空で、すべての IP アドレスが影響を受けることを示します。ターゲット IP アドレスを指定すると、その IP アドレスのみが影響を受けます。

    • replace(オプション): NIC に TC ルールを設定した場合、競合が原因でエラー挿入が失敗する可能性があります。既存のルールを 上書き するには、このパラメーターを true に設定します。

    • duration(オプション): エラー期間。単位: 秒。デフォルト値: 300。

    • install-tc(オプション): システムに tc ユーティリティがない場合は、このパラメーターを true に設定して自動的にインストールします。デフォルト値: false

    次のコマンド出力は、ACS-ECS-NetDelay プラグインが想定どおりに実行されたことを示しています。

    image

  3. ターゲットネットワークに ping を実行して、エラーが挿入されたかどうかを確認します。

エラーから回復する

  • 方法 1: エラーがタイムアウトした後に自動回復を待ちます。

  • 方法 2: 次のエラー回復コマンドを実行します。

    sudo acs-plugin-manager --exec --plugin ACS-ECS-NetDelay --params recover

ドリルケース

  1. ターゲットネットワークへのビジネスアクセスをシミュレートします。

    ping www.taobao.com

    この例では、www.taobao.com をターゲットネットワークとして使用しています。次のコマンド出力が返されます。

    image

  2. エラーを挿入します。

    sudo acs-plugin-manager --exec --plugin ACS-ECS-NetDelay --params inject,dev=eth0,time=1000,jitter=30,duration=120

    この例では、ターゲット IP アドレスに 1,000 ミリ秒の遅延と 30 ミリ秒のジッターが挿入されます。

    image

  3. 挿入結果を確認します。

    ネットワーク遅延ステータスを確認します。エラーを挿入した後、ping コマンドの遅延が 1,000 ミリ秒増加し、実際の遅延は 970 ~ 1,030 ミリ秒の範囲になります。

    image

  4. エラー回復を待ちます。

    挿入がタイムアウトすると、遅延は元のレベルに戻り、ネットワークは回復します。

    image