リスナーは接続リクエストをチェックします。Web アプリケーションやモバイルゲームなどのアプリケーションでデータコンテンツを検査する必要がある場合は、HTTP リスナーを追加して、HTTP プロトコルを使用するリクエストを転送できます。
前提条件
ALB インスタンスを作成済みであること。詳細については、「ALB インスタンスの作成と管理」をご参照ください。
サーバーグループを作成済みであること。詳細については、「サーバーグループの作成と管理」をご参照ください。
手順
このトピックでは、HTTP リスナーを作成する 2 つのメソッドについて説明します。お好みのメソッドを選択できます。
HTTP リスナーの作成: 詳細設定をカスタマイズします。
HTTP リスナーのクイック作成: リスナープロトコル、リスナーポート、およびバックエンドサーバーグループのみを設定してリスナーを作成します。
HTTP リスナーの作成
上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。
次のいずれかの方法で、リスナー設定ウィザードを開きます。
インスタンス ページで、ターゲットインスタンスを見つけ、操作 列の [リスナーの作成] をクリックします。
インスタンス ページで、ターゲットインスタンスの ID をクリックします。リスナー タブで、[リスナーの作成] をクリックします。
リスナーの設定 ウィザードで、次のパラメーターを設定し、[次へ] をクリックします。
リスナーの設定
説明
リスナープロトコルの選択
リスナープロトコルを選択します。
この例では、[HTTP] が選択されています。
リスナーポート
リクエストを受信してバックエンドサーバーに転送するリスナーポートを入力します。ポート番号は 1 から 65535 の範囲である必要があります。通常、HTTP にはポート 80、HTTPS にはポート 443 が使用されます。
説明同じ ALB インスタンス内では、同じプロトコルのリスナーは同じポートを使用できません。HTTP リスナーと HTTPS リスナーは同じポートを使用できません。
この例では、80 と入力します。
リスナー名
リスナーの名前を入力します。
タグ
[タグキー] と [タグ値] を設定します。
タグを追加すると、[リスナー] タブでタグによってリスナーをフィルターできます。
詳細設定
[変更] をクリックして詳細設定を展開します。
アイドル接続タイムアウト期間
アイドルタイムアウト期間を指定します。有効値: 1 から 600 秒。デフォルト値: 15 秒。クォータの引き上げをリクエストするには、Quota Center に移動します。
タイムアウト期間内にリクエストが受信されない場合、ALB は接続を閉じます。次のリクエストが到着すると、新しい接続が確立されます。
説明この機能は HTTP/2 リクエストには効果がありません。
接続リクエストタイムアウト
リクエストタイムアウト期間を指定します。有効値: 1 から 600 秒。デフォルト値: 60 秒。クォータの引き上げをリクエストするには、Quota Center に移動します。
バックエンドサーバーがタイムアウト期間内に応答しない場合、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が 1024 バイトを超えた場合にのみトリガーされます。クライアントリクエストが Brotli と Gzip の両方をサポートしている場合、ALB はより効率的な Brotli を使用します。
クライアントが Gzip のみをサポートし、ファイルタイプが Gzip でサポートされていない場合、ALB はファイルを圧縮しません。
実際のクライアントソース IP を見つける
この機能を有効にすると、ALB は X-Forwarded-For ヘッダーフィールドから送信元のクライアント IP アドレスを取得できます。この機能を有効にした後、信頼できる IP アドレスのリストを設定する必要があります。
信頼できる IP アドレスのリストを
0.0.0.0/0に設定した場合: X-Forwarded-For リクエストヘッダーから最も左の IP アドレスを送信元のクライアント IP アドレスとして取得します。信頼できる IP アドレスのリストを
proxy1 IP;proxy2 IP;..に設定した場合: このリストにない右から最初の IP アドレスを送信元のクライアント IP アドレスとして取得します。
シナリオ:
X-Forwarded-For リクエストヘッダーには、
X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …のように複数の IP アドレスを含めることができます。最も左のアドレスがクライアントの IP アドレスです。ALB 転送ルールで [SourceIp] 一致条件と [QPS (クライアントソース IP に基づくスロットリング)] 機能を使用するには、[送信元クライアント IP アドレスの検索] を有効にします。これにより、ALB は X-Forwarded-For ヘッダーフィールドから送信元のクライアント IP アドレスを見つけることができます。詳細については、「転送ルールの追加」をご参照ください。説明標準および WAF 対応の ALB インスタンスのみがこの機能をサポートします。Basic ALB インスタンスはサポートしません。
追加の HTTP ヘッダーフィールド
追加するカスタム 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 を取得します。X-Forwarded-Protoヘッダーフィールドを追加して、インスタンスのリスナープロトコルを取得します。X-Forwarded-Portヘッダーフィールドを追加して、インスタンスのリスナーポートを取得します。X-Forwarded-Hostヘッダーフィールドを追加して、クライアントが ALB インスタンスへのアクセスに使用したドメイン名を取得します。X-Forwarded-Client-srcportヘッダーフィールドを追加して、クライアントが ALB インスタンスへのアクセスに使用したポートを取得します。
説明ALB によって作成されリクエストに追加される X-Forwarded-For ヘッダーは、常に大文字の「X」で始まります。
X-Forwarded-For を除き、上記のヘッダーについては、ALB は上記で説明したルールに従って処理します。その他のヘッダーについては、ALB はリクエスト内の元の形式で保持します。
[サーバーグループの選択] ウィザードで、サーバーグループを選択し、バックエンドサーバー情報を表示してから、次へ をクリックします。
確定 ウィザードで、設定を確認し、送信 をクリックします。
HTTP リスナーのクイック作成
リスナーをクイック作成するには、リスナープロトコル、リスナーポート、およびバックエンドサーバーグループのみを設定する必要があります。
上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。
[インスタンス] ページで、ターゲットインスタンスを見つけ、その ID をクリックします。
[リスナー] タブをクリックし、[リスナー] タブで [リスナーのクイック作成] をクリックします。
[リスナーのクイック作成] ダイアログボックスで、次のパラメーターを設定し、[OK] をクリックします。
リスナーの設定
説明
リスナープロトコルの選択
ロードバランシングプロトコルを選択します。このトピックでは、[HTTP] が選択されています。
リスナーポート
リスナーがリクエストを受信し、バックエンドサーバーに転送するために使用するフロントエンドポート。
一般的なポート番号をクリックしてポートを自動的に入力するか、カスタムポート番号を入力できます。ポート番号は 1 から 65535 の範囲である必要があります。
リソースグループの選択
サーバーグループが属するリソースグループを選択します。
サーバーグループ
バックエンドサーバーグループのタイプとバックエンドサーバーを選択します。
関連資料
ALB は、さまざまな詳細転送ルールを提供します。詳細については、「リスナー転送ルールの設定」をご参照ください。
異常なエラーコードが発生した場合は、「ALB のステータスコード」をご参照ください。
ヘルスチェックが異常な場合は、「ALB の異常なヘルスチェックのトラブルシューティング」をご参照ください。
さまざまなシナリオに関するチュートリアルについては、次のトピックをご参照ください:
ALB を使用して HTTP リクエストを HTTPS にリダイレクトする: ALB リスナー転送ルールを使用して、HTTP リクエストを HTTPS にリダイレクトします。これにより、転送中にデータが暗号化され、中間者攻撃やデータ侵害を防ぐことができます。このメソッドは、最新のセキュリティ基準を満たすネットワークアーキテクチャを構築するのに役立ちます。
ALB のトラフィックミラーリング機能を使用してシミュレーションストレステストを実行する: ALB のトラフィックミラーリング機能を使用して、オンラインのトラフィックをテスト環境のバックエンドサーバーにミラーリングすることにより、シミュレーションストレステストを実行します。ALB は、ミラーリングされたバックエンドサーバーからの応答を自動的に破棄して、テストサービスがオンラインサービスに影響を与えないようにします。
ALB を使用して段階的リリースを実装する: 特定の条件または異なるサーバーグループのトラフィックの重みに基づいてリスナー転送ルールを設定します。このメソッドを使用すると、リクエストの一部を新しいアプリケーションバージョンに転送し、その安定性を徐々に検証し、段階的リリースを実装できます。