リスナーは、接続リクエストを確認するために使用されます。Web アプリケーションやモバイルゲームなどのアプリケーションでデータコンテンツを識別する必要がある場合は、HTTP リスナーを作成して HTTP リクエストを転送できます。
前提条件
Application Load Balancer (ALB) インスタンスが作成されていること。詳細については、「ALB インスタンスの作成と管理」をご参照ください。
バックエンドサーバーグループが作成されていること。詳細については、「サーバーグループの作成と管理」をご参照ください。
手順
このトピックでは、HTTP リスナーを作成する 2 つの方法について説明します。必要に応じていずれかを選択できます。
手動作成
- ALB コンソール にログオンします。
上部のナビゲーションバーで、ALB インスタンスが存在するリージョンを選択します。
次のいずれかの方法を使用して、リスナー構成ウィザードを開きます。
インスタンス ページで、管理する ALB インスタンスを見つけ、操作 列の [リスナーの作成] をクリックします。
インスタンス ページで、管理する ALB インスタンスの ID をクリックします。リスナー タブで、[リスナーの作成] をクリックします。
リスナーの設定 ステップで、次の表に示すパラメータを構成し、[次へ] をクリックします。
パラメータ
説明
リスナープロトコルの選択
リスナープロトコルを選択します。
この例では、[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/xml
、text/plain
、text/css
、application/javascript
、application/x-javascript
、application/rss+xml
、application/atom+xml
、application/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>, …
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 はリクエストで元の形式を保持します。
[サーバーグループの選択] ステップで、サーバーグループを選択し、バックエンドサーバーを表示して、次へ をクリックします。
確定 ステップで、構成を確認し、送信 をクリックします。
クイック作成
この方法を選択した場合は、リスナープロトコル、リスナーポート、およびサーバーグループのみを指定する必要があります。
- ALB コンソール にログオンします。
上部のナビゲーションバーで、ALB インスタンスが存在するリージョンを選択します。
[インスタンス] ページで、管理する ALB インスタンスを見つけ、その ID をクリックします。
[リスナー] タブをクリックします。[リスナー] タブで、[リスナーのクイック作成] をクリックします。
[リスナーのクイック作成] ダイアログボックスで、パラメータを構成し、[OK] をクリックします。次の表にパラメータを示します。
パラメータ
説明
[リスナープロトコル]
リスナープロトコルを選択します。この例では、[HTTP] が選択されています。
リスナーポート
リクエストを受信してバックエンドサーバーに転送するために使用されるフロントエンドポート。
一般的に使用されるポートを選択するか、ポート番号を入力できます。有効な値: 1 ~ 65535。
[リソースグループ]
サーバーグループのリソースグループを選択します。
サーバーグループ
バックエンド [サーバーグループ] タイプを選択します。次に、選択したタイプに基づいて、バックエンドサーバーが追加された既存のサーバーグループを選択するか、新しいサーバーグループを作成します。
関連情報
ALB は、さまざまな高度な転送ルールをサポートしています。詳細については、「リスナーの転送ルールを管理する」をご参照ください。
ALB によって返された異常な状態コードが発生した場合は、「ALB の状態コード」をご参照ください。
ヘルスチェックの問題が解決しない場合は、「ALB ヘルスチェックの問題のトラブルシューティング」をご参照ください。
その他の関連情報