リスナーは、接続リクエストを確認するために使用されます。Web アプリケーションやモバイルゲームなどのアプリケーションでデータコンテンツを識別する必要がある場合は、HTTP リスナーを作成して HTTP リクエストを転送できます。
前提条件
アプリケーションロードバランサー(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
。
説明応答の
Content-Length
の値が 1,024 バイトを超える場合にのみ、データ圧縮がトリガーされます。クライアントリクエストで 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 の取得 は、Standard ALB インスタンスと WAF 対応 ALB インスタンスでのみサポートされており、Basic 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>, …
Add SLB-ID to preserve SLB instance IDs
: SLB インスタンス ID を保持するために SLB-ID ヘッダーを追加します。Add X-Forwarded-Proto to preserve listener protocols
: リスナーのプロトコルを保持するために X-Forwarded-Proto ヘッダーを追加します。Add X-Forwarded-Port to preserve SLB listener ports
: SLB リスナーポートを保持するために X-Forwarded-Port ヘッダーを追加します。Add X-Forwarded-Host to preserve client domain names
: X-Forwarded-Host ヘッダーを追加して、ALB にアクセスするクライアントのドメイン名を保存します。Add X-Forwarded-Client-srcport to preserve client ports
: クライアントポートを保持するために 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 ヘルスチェックの問題のトラブルシューティング」をご参照ください。
その他の参照資料
HTTP リクエストを HTTPS リスナーにリダイレクトする: HTTP から HTTPS へのリダイレクトを行うための転送ルールを ALB リスナーに追加します。これにより、データ転送が暗号化され、中間者攻撃やデータ漏洩が防止され、最新の安全なネットワークアーキテクチャを構築できます。
トラフィックミラーリング機能を使用して、本番トラフィックをステージング環境にミラーリングする: ALB はトラフィックミラーリングをサポートしており、本番トラフィックをステージング環境のバックエンドサーバーにミラーリングできます。一方、ALB はステージング環境のバックエンドサーバーからの応答を自動的に破棄し、テストが本番環境のワークロードに影響を与えないようにします。
ALB を使用してカナリアリリースを実装する: 特定の条件または定義されたサーバーグループの重みを持つ転送ルールを ALB リスナーに追加して、一部のリクエストをアプリケーションの新しいバージョンに配信します。このアプローチにより、カナリアリリースで新しいアプリケーションバージョンの安定性をテストできます。