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

Server Load Balancer:クロスゾーンロードバランシングを無効にして、アクセスの待ち時間を短縮

最終更新日:Dec 12, 2024

Application Load Balancer (ALB) は、ゾーン間の負荷分散をサポートし、単一ゾーンの負荷分散によって引き起こされるリソースのボトルネックを防ぎます。 ただし、金融の定量的取引やリアルタイム通信など、レイテンシに敏感なビジネスシナリオでは、ゾーン間の負荷分散により、不要なネットワークレイテンシが発生する可能性があります。 このような場合、ゾーン間の負荷分散を無効にして、リージョンの単一ゾーン内にリクエストを分散するようにALBを構成することで、ビジネスのリクエストアクセス速度を向上させることができます。

概要

デフォルトでは、ALBインスタンスでゾーン間負荷分散が有効になっています。 着信リクエストは、同じリージョン内のすべてのゾーンにデプロイされているバックエンドサービスに配信されます。 ALBインスタンスに関連付けられたバックエンドサーバーグループのゾーン間の負荷分散を無効にすると、リクエストは単一のゾーンにデプロイされたバックエンドサービスに分散されます。

警告

ALBサービスのゾーン間負荷分散を無効にする前に、適切なリソースを持つバックエンドサーバーが各ゾーンで使用可能であることを確認してください。 ビジネスへの望ましくない影響を避けるため、無効にする前にこの機能の仕組みを理解してください。

メリット

レイテンシの削減: 単一のゾーン内でリクエストを分散すると、ゾーン間のデータ転送によるネットワークのレイテンシがなくなり、ビジネスのリクエストアクセス速度が向上します。

適用シナリオ

レイテンシに敏感なシナリオ:

  • 金融取引: 集中的な定量取引は、迅速なトランザクション処理を可能にするために低レイテンシを必要とする。 これにより、トランザクションの失敗やタイムアウトのリスクが軽減されます.

  • リアルタイム通信: ビデオ会議とインスタントメッセージングは、シームレスでスムーズなユーザーエクスペリエンスのために低レイテンシを必要とします。

  • モノのインターネット (IoT): 迅速なデータ分析とリクエストへの迅速な応答を可能にするために、リアルタイムのデータ収集には低遅延が必要です。 これは、データ収集システムの全体的な効率及び精度を改善する。

制限事項

  • ゾーン間負荷分散が無効になっているサーバーグループは、標準およびWAF対応のALBインスタンスにのみ関連付けることができます。 基本ALBインスタンスに関連付けることはできません。

  • ゾーン間の負荷分散が無効になっている場合、Session Persistenceは有効にできません。

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

  • このパラメーターは、Function Computeタイプのサーバーグループでは使用できません。

シナリオ例

企業が中国 (杭州) リージョンに高可用性ビジネスを展開し、デフォルトでゾーン間の負荷分散が有効になっています。 ビジネスの変革により、同社は現在、レイテンシに関する要件が高くなっています。

この場合、会社はゾーン間の負荷分散を無効にして、ALBがリージョンの単一ゾーンにデプロイされたバックエンドサービスにのみリクエストを配信できるようにします。 このようにして、ネットワークの待ち時間を減らすことができ、会社のビジネスの要求アクセス速度を上げることができます。

image

前提条件

  • 標準ALBインスタンスは、中国 (杭州) リージョンの複数のゾーンに作成されます。 この例では、ALBインスタンスはゾーンHとゾーンKに作成されます。詳細については、「ALBインスタンスの作成」をご参照ください。

  • サーバーグループが作成されます。 詳細については、「サーバーグループの作成と管理」をご参照ください。

  • Elastic Compute Service (ECS) インスタンスECS01およびECS02が、ALBインスタンスに関連付けられたサーバーグループに追加されます。 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
  • リスナーはALBインスタンスに設定され、作成されたサーバーグループはALBインスタンスに関連付けられます。 詳細については、「HTTPリスナーの追加」、「HTTPSリスナーの追加」、および「QUICリスナーの追加」をご参照ください。

  • ドメイン名が登録され、ドメイン名のインターネットコンテンツプロバイダ (ICP) 番号が取得され、カスタムドメイン名をALBインスタンスのドメイン名にマッピングするようにCNAMEレコードが構成されます。 詳細については、「ジェネリックドメイン名の登録」、「ICP登録プロセス」、および「ALBインスタンスへのCNAMEレコードの追加」をご参照ください。

手順

ステップ1: クロスゾーン負荷分散を無効にする

この手順では、サーバーグループが作成されている状態で、ゾーン間の負荷分散を無効にするようにサーバーグループの構成を変更する方法について説明します。 サーバーグループを作成していない場合は、作成時にゾーン間の負荷分散を無効にできます。

  1. ALB コンソールにログインします。

  2. [サーバーグループ] ページで、管理するサーバーグループを見つけ、サーバーグループIDをクリックします。

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

  4. [基本情報の変更] ダイアログボックスで、[詳細設定] をクリックし、[ゾーン間ロードバランシング] をオフにして、[保存] をクリックします。

(オプション) ステップ2: クロスゾーンロードバランシングが無効になっていることを確認

説明

このステップは、構成変更が有効かどうかを検証するだけです。 ステップ3は、構成変更後の実際のネットワーク待ち時間をテストします。

ALBインスタンスの [インスタンスの詳細] ページの [ゾーン] タブで、ゾーンHゾーンKのElastic IPアドレス (EIP) をそれぞれコピーします。

  1. ブラウザを使用して、http://<EIP of Zone H> などのZone HのEIPにアクセスします。 ブラウザを複数回更新します。 ゾーンHにデプロイされたバックエンドサーバーECS01のみにアクセスできます。

    image

  2. ブラウザを使用して、http://<EIP of Zone K> などのゾーンKのEIPにアクセスします。 ブラウザを複数回更新します。 ゾーンKにデプロイされたバックエンドサーバーECS02のみにアクセスできます。

    image

ステップ3: ネットワーク遅延のテスト

説明

テスト結果は地域および地帯によって変わるかもしれません。 あなたのビジネスの実際のテスト結果が勝ちます。 この例では、パケット遅延がチェックされる。

  1. ドイツ (フランクフルト) リージョンにテストクライアントとしてインターネット向けインスタンス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: データ転送時間。 クライアントがバックエンドサーバーにリクエストを送信してから、最初のバイトがクライアントに送信されるまでの時間。 単位は秒です。

    • time_total: 合計接続時間です。 クライアントがバックエンドサーバーにリクエストを送信してから、クライアントがバックエンドサーバーから最後のバイトを受信するまでの時間。 単位は秒です。

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

    image

    ゾーン間負荷分散が無効になっている場合の応答時間:

    image

    テスト結果は、クロスゾーン負荷分散が無効になった後、接続時間、データ転送時間、および合計接続時間がすべて短縮されることを示しています。

よくある質問

ゾーン間の負荷分散を無効にした後、503ステータスコードが表示されるのはなぜですか。

考えられる理由は、ALBインスタンスに関連付けられているサーバーグループでは、ALBインスタンスがデプロイされている特定のゾーンでバックエンドサーバーを使用できないためです。 ALBインスタンスにはリクエストを転送するバックエンドサーバーがないため、503のステータスコードが返されます。

ゾーン間の負荷分散を無効にした後、セッション維持機能を有効にできないのはなぜですか?

セッション持続性を有効にすると、ALBインスタンスが1つのゾーンから受信したリクエストは、別のゾーンのバックエンドサーバーに常に転送されます。 ゾーン間の負荷分散を無効にすると、セッションの永続化を実装できません。

ALBサービスのどのゾーンにもデプロイされていないバックエンドサーバーのヘルスチェックステータスを教えてください。

ALBインスタンスのクロスゾーンロードバランシングが無効になった後、ALBサービスのどのゾーンにもデプロイされていないバックエンドサーバーはUnusedとして宣言されます。

関連ドキュメント