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

Server Load Balancer:クロスゾーン負荷分散の無効化

最終更新日:Jun 23, 2026

Application Load Balancer (ALB) は、単一のアベイラビリティゾーンにおけるリソースのボトルネックを防ぐために、クロスゾーン負荷分散をサポートしています。しかし、定量金融取引やリアルタイム通信など、遅延の影響を受けやすいシナリオでは、この機能により余分な遅延が発生する可能性があります。クロスゾーン負荷分散を無効にすることで、ALB が同じアベイラビリティゾーン内のバックエンドサーバーにのみトラフィックを分散するように設定できます。このアプローチにより、ゾーン間のデータ転送が回避され、遅延が削減され、アプリケーションの応答性が向上します。

仕組み

デフォルトでは、ALB インスタンスに対してクロスゾーン負荷分散が有効になっています。着信リクエストは、指定されたリージョン内で選択されたすべてのアベイラビリティゾーンにデプロイされたバックエンドサービスに分散されます。サーバーグループでこの機能を無効にすると、負荷は各シングルゾーン内で分散されます。

警告

クロスゾーン負荷分散を無効にする前に、サービスの中断を防ぐため、ご利用の ALB インスタンスが使用する各アベイラビリティゾーンに十分なバックエンドサーバーリソースがあることを確認してください。

主な特徴

遅延の削減:同じアベイラビリティゾーン内でトラフィックを分散することで、ゾーン間のデータ転送遅延が削減され、アプリケーションの応答速度が向上します。

利用シーン

この機能は、低遅延が求められるシナリオに最適です。

  • 金融取引:高頻度の定量取引において、低遅延は迅速なトランザクション処理を可能にし、障害やタイムアウトのリスクを低減します。

  • リアルタイム通信:ビデオ会議やインスタントメッセージ (IM) などのアプリケーションにおいて、低遅延はスムーズなユーザーエクスペリエンスを保証します。

  • モノのインターネット (IoT):リアルタイムデータ収集などのシナリオにおいて、低遅延はタイムリーなデータ分析と応答を保証し、システム全体の効率と精度を向上させます。

制限事項

  • クロスゾーン負荷分散の無効化をサポートしているのは、標準および WAF 対応の ALB インスタンスのみです。この機能は、ベーシック ALB インスタンスでは利用できません。

  • クロスゾーン負荷分散が無効になっている場合、セッション維持を有効にすることはできません。

  • リモート IP が有効になっている IP ベースのサーバーグループでは、クロスゾーン負荷分散を無効にすることはできません。

  • この設定は、Function Compute タイプのサーバーグループには適用されません。

シナリオ例

ある企業が、中国 (杭州) リージョンに高可用性アプリケーションをデプロイしており、デフォルトでクロスゾーン負荷分散が有効になっています。ビジネス要件の変更により、アプリケーションにはより低い遅延が求められるようになりました。

この新しい要件を満たすため、企業はクロスゾーン負荷分散を無効にします。これにより、ALB インスタンスは同じアベイラビリティゾーン内のバックエンドサーバーにのみトラフィックをルーティングするように設定され、遅延が削減され、アプリケーションの速度が向上します。

前提条件

  • 中国 (杭州) リージョンで標準 ALB インスタンスを作成し、作成時に複数のアベイラビリティゾーン (例:ゾーン H とゾーン K) を選択済みであること。詳細については、「ALB インスタンスの作成と管理」をご参照ください。

  • サーバーグループを作成済みであること。

  • ECS インスタンス ECS01 と ECS02 をサーバーグループに追加済みであること。ECS01 はアベイラビリティゾーン H に、ECS02 はアベイラビリティゾーン K に配置され、両方のインスタンスにアプリケーションサービスがデプロイされていること。

    ECS インスタンスにテストサービスをデプロイするためのサンプルコマンド

    ECS01 のサンプルコマンド:

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! This is ECS01." > index.html

    ECS02 のサンプルコマンド:

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! This is ECS02." > index.html
  • インスタンスにリスナーを設定し、作成したサーバーグループを関連付けていること。詳細については、「HTTP リスナーの追加」、「HTTPS リスナーの追加」、または「QUIC リスナーの追加」をご参照ください。

  • ドメイン名を登録し、ICP 登録を完了し、ドメイン名が ALB インスタンスを指すように CNAME レコードを設定済みであること。

操作手順

ステップ1:クロスゾーン負荷分散の無効化

このトピックでは、既存のサーバーグループでクロスゾーン負荷分散を無効にする方法を説明します。この機能は、サーバーグループの作成中に無効にすることもできます。

  1. Application Load Balancer (ALB) コンソールにログインします。

  2. サーバーグループ ページで、対象のサーバーグループを見つけてその ID をクリックします。

  3. 詳細 ページで、基本情報 セクションの 基本情報の変更 をクリックします。

  4. 基本情報の変更 ダイアログボックスで、詳細設定 をクリックし、クロスゾーン負荷分散 スイッチをオフにしてから、保存 をクリックします。

(任意) ステップ2:トラフィックルーティングの検証

説明

この検証はデモンストレーションのみを目的としています。本番環境では、ドメイン名を使用してサービスにアクセスし、「ステップ3」で説明されているように遅延をテストしてください。

対象インスタンスの インスタンスの詳細 ページの ゾーン セクションで、ゾーン Hゾーン K の EIP (Elastic IP) をコピーします。

  1. ブラウザを使用してアベイラビリティゾーン H の EIP (例:http://<elastic IP address>) にアクセスします。ブラウザを複数回更新します。アベイラビリティゾーン H のバックエンドサーバー ECS01 にのみアクセスできます。

    ページには Hello World ! This is ECS01. と表示されます。

  2. ブラウザを使用してアベイラビリティゾーン K の EIP (例:http://<elastic IP address>) にアクセスします。ブラウザを複数回更新します。アベイラビリティゾーン K のバックエンドサーバー ECS02 にのみアクセスできます。

    Hello World ! This is ECS02.

ステップ3:遅延のテスト

説明

テスト結果は、リージョンやアベイラビリティゾーンによって異なる場合があります。以下の結果はデモンストレーションのみを目的としており、実際の結果とは異なる場合があります。

  1. テストクライアントとして使用するために、ドイツ (フランクフルト) リージョンにインターネット向けの ECS インスタンス (ECS03) を作成します。すでにテストサーバーがある場合は、このステップをスキップできます。

  2. テストクライアント (ECS03) にログインし、次のコマンドを実行して遅延をテストします。

    curl http://www.example.com  -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" 

    パラメーターの説明:

    • time_connect:接続時間。リクエストの開始から TCP 接続が確立されるまでの時間 (秒)。

    • time_starttransfer:最初のバイトまでの時間 (TTFB)。クライアントがリクエストを送信してから、バックエンドサーバーから最初の応答バイトを受信するまでの時間 (秒)。

    • time_total:合計時間。クライアントがリクエストを送信してから、バックエンドサーバーが応答を完了するまでの時間 (秒)。

    クロスゾーン負荷分散が有効な場合の応答時間:

    [ecs-assist-user@xxx ~]$ curl http://xxx -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n"
    Hello World ! This is ECS02.
    time_connect: 0.170654
    time_starttransfer: 0.347200
    time_total: 0.347234
    [ecs-assist-user@xxx ~]$ curl http://xxx -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n"
    Hello World ! This is ECS01.
    time_connect: 0.178056
    time_starttransfer: 0.357358
    time_total: 0.357397

    クロスゾーン負荷分散が無効な場合の応答時間:

    [ecs-assist-user@xxx ~]$ curl http://xxx -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n"
    Hello World ! This is ECS01.
    time_connect: 0.152544
    time_starttransfer: 0.307768
    time_total: 0.307797

    テスト結果から、クロスゾーン負荷分散を無効にすると、接続時間、TTFB、合計時間が短縮されることがわかります。

よくある質問

503 エラーが返されるのはなぜですか?

このエラーは、リクエストを受信したアベイラビリティゾーンに関連付けられたサーバーグループ内に、利用可能なバックエンドサーバーがない場合に発生します。リクエストを転送できないため、ALB インスタンスは 503 エラーを返します。

セッション維持がサポートされていないのはなぜですか?

セッション維持では、例えばゾーン A からゾーン B の特定のサーバーへといった、アベイラビリティゾーンをまたいだリクエストのルーティングが必要です。クロスゾーン負荷分散を無効にするとこのルーティングが妨げられるため、2つの機能は互換性がありません。

クロスゾーンサーバーのヘルスステータスはどうなりますか?

クロスゾーン負荷分散が無効になっている場合、ヘルスチェックは同じアベイラビリティゾーン内でのみ実行されます。そのため、異なるアベイラビリティゾーンにあるバックエンドサーバーのヘルスチェックステータスは [未使用] になります。

参考