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

Server Load Balancer:HTTP リスナーを追加する

最終更新日:Mar 13, 2025

リスナーは、接続リクエストを確認するために使用されます。Web アプリケーションやモバイルゲームなどのアプリケーションでデータコンテンツを識別する必要がある場合は、HTTP リスナーを作成して HTTP リクエストを転送できます。

前提条件

手順

このトピックでは、HTTP リスナーを作成する 2 つの方法について説明します。必要に応じていずれかを選択できます。

  • 手動作成: ビジネス要件に基づいて HTTP リスナーを作成し、高度な機能を構成できます。

  • クイック作成: テンプレートを使用して HTTP リスナーをすばやく作成できます。リスナープロトコル、リスナーポート、およびバックエンドサーバーグループを指定するだけで済みます。

手動作成

  1. ALB コンソール にログオンします。
  2. 上部のナビゲーションバーで、ALB インスタンスが存在するリージョンを選択します。

  3. 次のいずれかの方法を使用して、リスナー構成ウィザードを開きます。

    • インスタンス ページで、管理する ALB インスタンスを見つけ、操作 列の [リスナーの作成] をクリックします。

    • インスタンス ページで、管理する ALB インスタンスの ID をクリックします。リスナー タブで、[リスナーの作成] をクリックします。

  4. リスナーの設定 ステップで、次の表に示すパラメータを構成し、[次へ] をクリックします。

    パラメータ

    説明

    リスナープロトコルの選択

    リスナープロトコルを選択します。

    この例では、[HTTP] が選択されています。

    リスナーポート

    ALB インスタンスが listen するポートを選択します。ALB インスタンスは、指定されたポートでリクエストを listen し、リクエストをバックエンドサーバーに転送します。有効な値: 1 ~ 65535。ほとんどの場合、ポート 80 は HTTP に使用され、ポート 443 は HTTPS に使用されます。

    説明

    同じ ALB インスタンスでは、同じプロトコルを使用するリスナーのポートは一意である必要があります。HTTP リスナーと HTTPS リスナーは異なるポートを使用する必要があります。

    この例では、ポート 80 が使用されています。

    リスナー名

    リスナーの名前を入力します。

    タグ

    [タグキー] パラメータと [タグ値] パラメータを構成して、タグを追加します。1 つ以上のタグを追加できます。

    タグを指定した後、[リスナー] タブでタグ別にリスナーをフィルタリングできます。

    詳細設定

    [変更] をクリックして、詳細設定を構成できます。

    アイドル接続タイムアウト期間

    アイドル接続のタイムアウト期間を指定します。単位: 秒。有効な値: 1 ~ 60。より長いタイムアウト期間を指定するには、クォータセンターコンソール にアクセスしてください。

    指定されたタイムアウト期間内にリクエストが受信されない場合、ALB は接続を閉じます。別のリクエストが受信されると、ALB は新しい接続を確立します。

    説明

    この機能は、HTTP/2 リクエストでは使用できません。

    接続リクエストタイムアウト

    リクエストタイムアウト期間を指定します。単位: 秒。有効な値: 1 ~ 180。より長いタイムアウト期間を指定するには、クォータセンターコンソール にアクセスしてください。

    リクエストタイムアウト期間内にバックエンドサーバーから応答が受信されない場合、ALB はクライアントに HTTP 504 エラーコードを返します。

    圧縮

    圧縮を有効にすると、特定の種類のファイルが圧縮されます。圧縮を無効にすると、ファイルは圧縮されません。

    • Brotli はすべてのファイルタイプをサポートしています。

    • GZIP は、次のファイルタイプをサポートしています: text/xmltext/plaintext/cssapplication/javascriptapplication/x-javascriptapplication/rss+xmlapplication/atom+xmlapplication/xml、および application/json

    説明
    • クライアントリクエストで Brotli と GZIP の両方の圧縮が許可されている場合、ALB はより効率的な Brotli 圧縮を使用します。

    • クライアントリクエストで GZIP 圧縮のみが許可されており、少なくとも 1 つのファイルが GZIP でサポートされていない形式である場合、ALB はファイルを圧縮しません。

    実際のクライアントソース IP を見つける

    ALB インスタンスが X-Forwarded-For ヘッダーからクライアント IP アドレスを取得できるようにするかどうかを指定します。この機能を有効にする場合は、信頼できる IP アドレスを指定する必要があります。

    • 信頼できる IP アドレスリストを 0.0.0.0/0 に設定すると、ALB インスタンスは X-Forwarded-For ヘッダーの左端の IP アドレスを取得します。この IP アドレスは、ソースクライアント IP アドレスです。

    • 信頼できる IP アドレスリストを proxy1 IP;proxy2 IP;.. の形式で設定すると、ALB インスタンスは X-Forwarded-For ヘッダーの IP アドレスを右から左へ、信頼できる IP アドレスリストと比較します。信頼できる IP アドレスリストにない最初の IP アドレスが、ソースクライアント IP アドレスと見なされます。

    使用上の注意

    X-Forwarded-For ヘッダーに複数の IP アドレス (例: X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …) が含まれている場合、左端の IP アドレスがソースクライアント IP アドレスです。ALB 転送ルールで [ソース IP アドレスに基づくマッチング] 機能と [クライアント IP アドレスごとの QPS に基づくスロットリング] 機能を有効にする場合は、[クライアント IP の取得] スイッチをオンにして、ALB インスタンスが X-Forwarded-For ヘッダーからソースクライアント IP アドレスを取得できるようにする必要があります。詳細については、「転送ルールの作成」をご参照ください。

    説明

    [クライアント IP の取得] は、標準 ALB インスタンスと WAF 対応 ALB インスタンスでのみサポートされており、ベーシック ALB インスタンスではサポートされていません。

    [HTTP ヘッダーの追加]

    次のオプションを選択できます。

    • X-Forwarded-For ヘッダーを使用してクライアント IP アドレスを取得するかどうかを選択します。

      • クライアント IP アドレスを保持するために X-Forwarded-For を追加する を選択すると、ALB はリクエストをバックエンドサーバーに転送する前に、リクエストに X-Forwarded-For ヘッダーを追加したり、リクエストから X-Forwarded-For ヘッダーを削除したりできます。

        • [追加] (デフォルト)

          [追加] を選択すると、ALB はリクエストをバックエンドサーバーに転送する前に、リクエストの X-Forwarded-For ヘッダーに最後のホップの IP アドレスを追加します。リクエストに X-Forwarded-For ヘッダーが含まれていない場合、ALB は値が最後のホップの IP アドレスである X-Forwarded-For ヘッダーを作成し、リクエストにヘッダーを追加します。リクエストの X-Forwarded-For ヘッダーには、コンマ (,) で区切られた複数の IP アドレスが含まれている場合があります。

        • [削除]

          [削除] を選択すると、ALB はリクエストをバックエンドサーバーに転送する前に、リクエストから X-Forwarded-For ヘッダーを削除します。

      • クライアント IP アドレスを保持するために X-Forwarded-For を追加する を選択しないと、ALB はリクエストをバックエンドサーバーに転送する前に、リクエストの X-Forwarded-For ヘッダーに対して何も行いません。

      形式:

      X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …

      クリックして、バックエンドサーバーが受信するリクエストの X-Forwarded-For ヘッダーの例を参照してください。

      この例では、最後のホップの IP アドレスは 127.0.0.1 です。

      リクエストの説明

      リクエストの例

      選択クライアント IP アドレスを保持するために X-Forwarded-For を追加するクライアント IP アドレスを保持するために X-Forwarded-For を追加する

      選択しない X-Forwarded-For を追加してクライアント IP アドレスを保持する

      追加

      削除

      ALB が受信したリクエストに X-Forwarded-For ヘッダーが含まれていません。

      GET /index.html HTTP/1.1

      Host: example.com

      X-Forwarded-For: 127.0.0.1

      X-Forwarded-For ヘッダーは存在しません。

      X-Forwarded-For ヘッダーは存在しません。

      ALB が受信したリクエストに X-Forwarded-For ヘッダーとクライアント IP アドレスが含まれています。

      GET /index.html HTTP/1.1

      Host: example.com

      X-Forwarded-For: 127.0.0.2

      X-Forwarded-For: 127.0.0.2, 127.0.0.1

      X-Forwarded-For ヘッダーは存在しません。

      X-Forwarded-For: 127.0.0.2

      ALB が受信したリクエストに X-Forwarded-For ヘッダーと複数のクライアント IP アドレスが含まれています。

      GET /index.html HTTP/1.1

      Host: example.com

      X-Forwarded-For: 127.0.0.2, 127.0.0.3

      X-Forwarded-For: 127.0.0.2, 127.0.0.3, 127.0.0.1

      X-Forwarded-For ヘッダーは存在しません。

      X-Forwarded-For: 127.0.0.2, 127.0.0.3

      ALB でクライアント IP アドレスを保持する方法の詳細については、「ALB でクライアント IP アドレスを保持する」をご参照ください。

    • SLB インスタンス ID を保持するために SLB-ID を追加する: ALB インスタンスの ID を格納するために SLB-ID ヘッダーを追加します。

    • リスナープロトコルを保持するために X-Forwarded-Proto を追加する: リスナープロトコルを格納するために X-Forwarded-Proto ヘッダーを追加します。

    • SLB リスナーポートを保持するために X-Forwarded-Port を追加する: リスナーポートを格納するために X-Forwarded-Port ヘッダーを追加します。

    • クライアントドメイン名を保持するために X-Forwarded-Host を追加する: ALB にアクセスするクライアントのドメイン名を格納するために X-Forwarded-Host ヘッダーを追加します。

    • クライアントポートを保持するために X-Forwarded-Client-srcport を追加する: クライアントポートを格納するために X-Forwarded-Client-srcport ヘッダーを追加します。

    説明

    リクエストヘッダーを処理する際に、バックエンドサーバーは大文字と小文字を区別しない HTTP 標準に従って構成することをお勧めします。

    • ALB によって作成され、リクエストに追加される X-Forwarded-For ヘッダーは、常に大文字の「X」で始まります。

    • X-Forwarded-For を除き、上記のヘッダーについては、ALB は上記で説明したルールに従って処理します。その他のヘッダーについては、ALB はリクエストで元の形式を保持します。

  5. [サーバーグループの選択] ステップで、サーバーグループを選択し、バックエンドサーバーを表示して、次へ をクリックします。

  6. 確定 ステップで、構成を確認し、送信 をクリックします。

クイック作成

この方法を選択した場合は、リスナープロトコル、リスナーポート、およびサーバーグループのみを指定する必要があります。

  1. ALB コンソール にログオンします。
  2. 上部のナビゲーションバーで、ALB インスタンスが存在するリージョンを選択します。

  3. [インスタンス] ページで、管理する ALB インスタンスを見つけ、その ID をクリックします。

  4. [リスナー] タブをクリックします。[リスナー] タブで、[リスナーのクイック作成] をクリックします。

  5. [リスナーのクイック作成] ダイアログボックスで、パラメータを構成し、[OK] をクリックします。次の表にパラメータを示します。

    パラメータ

    説明

    [リスナープロトコル]

    リスナープロトコルを選択します。この例では、[HTTP] が選択されています。

    リスナーポート

    リクエストを受信してバックエンドサーバーに転送するために使用されるフロントエンドポート。

    一般的に使用されるポートを選択するか、ポート番号を入力できます。有効な値: 1 ~ 65535。

    [リソースグループ]

    サーバーグループのリソースグループを選択します。

    サーバーグループ

    バックエンド [サーバーグループ] タイプを選択します。次に、選択したタイプに基づいて、バックエンドサーバーが追加された既存のサーバーグループを選択するか、新しいサーバーグループを作成します。

関連情報