リスナーは接続リクエストをチェックします。Application Load Balancer (ALB) インスタンスにリスナーを作成し、ビジネスニーズに基づいてクライアントリクエストを転送できます。作成したリスナーは、変更、開始、停止、または削除することもできます。
リスナープロトコルの選択
リスナーを作成する前に、ビジネスニーズに適したリスナープロトコルを選択します。Application Load Balancer (ALB) は、HTTP、HTTPS、QUIC の 3 つのレイヤー 7 リスナープロトコルをサポートしています。次の表に、各プロトコルのユースケースと構成要件を示します。
|
プロトコル |
ユースケース |
SSL 証明書が必要 |
サポートされているバックエンドプロトコル |
機能 |
|
HTTP |
Web アプリケーションやモバイルのカジュアルゲームなど、コンテンツ検査が必要なアプリケーション。 |
いいえ |
HTTP、HTTPS |
WebSocket プロトコルをデフォルトでサポートしています。 |
|
HTTPS |
暗号化されたデータ転送が必要なアプリケーション。ALB インスタンスとクライアントの間で SSL/TLS 暗号化セッションを確立します。 |
はい (サーバー証明書が必要です。相互認証には CA 証明書が必要です)。 |
HTTP、HTTPS、gRPC gRPC バックエンドプロトコルを使用するには、リスナーで HTTP/2 を有効にする必要があります。 |
HTTP/2、相互認証 (CA 証明書を使用)、TLS セキュリティポリシー、QUIC アップグレードをサポートしています。WSS プロトコルをデフォルトでサポートしています。 |
|
QUIC |
ネットワーク信号が弱い場合や、Wi-Fi とモバイルネットワークの切り替えが頻繁に発生するシナリオ。ネットワークや動画のスタッタリングを効果的に軽減し、音声・動画リソースのアクセス効率を高め、データ転送のセキュリティを確保します。 |
はい (サーバー証明書が必要です) |
HTTP |
UDP 上で動作し、より高速に接続を確立し、コネクションマイグレーション (ネットワーク切り替え時も接続が維持されます) をサポートします。単独で使用することも、HTTPS リスナーと併用することもできます。 |
ALB Extensible Edition のリスナープロトコルは、他の Edition とは次の点が異なります:QUIC リスナーはサポートされません。gRPC バックエンドプロトコルはサポートされません。相互認証 (CA 証明書を使用) と QUIC アップグレードはサポートされません。
前提条件
-
ALB インスタンスの作成とサーバーグループの作成を完了しておく必要があります。
-
HTTPS リスナーまたは QUIC リスナーを作成するには、Certificate Management Service でサーバー証明書を購入またはアップロードしておく必要があります。詳細については、「証明書の管理」をご参照ください。
リスナーの作成
リスナーは、次の 2 つの方法で作成できます。
-
[リスナーの作成]:詳細設定のカスタマイズをサポートする、ステップバイステップ形式のウィザードです。
-
[リスナーのクイック作成]:リスナープロトコル、リスナーポート、サーバーグループのみを設定する簡易的な方法です。HTTPS リスナーと QUIC リスナーの場合は、サーバー証明書も設定する必要があります。HTTPS リスナーの場合は、TLS セキュリティポリシーも選択する必要があります。
コンソール
ステップ 1:[リスナーの設定]
-
ALB コンソールの[インスタンス] ページに移動し、対象インスタンスの ID をクリックして、リスナー タブで リスナーの作成 をクリックします。
-
リスナーの設定 ウィザードで、以下の設定を行い、次へ をクリックします。
-
[リスナープロトコルの選択]:[HTTP]、[HTTPS]、または [QUIC] を選択します。
ALB Extensible Edition は QUIC リスナーをサポートしていません。
-
[リスナーポート]:有効な値は 1 ~ 65535 です。HTTP は通常ポート 80 を使用し、HTTPS は通常ポート 443 を使用します。
同じ ALB インスタンス内では、同じプロトコルのリスナーは同じポートを使用できません。また、HTTP リスナーと HTTPS リスナーは同じポートを使用できません。
-
[リスナー名]:リスナーのカスタム名を入力します。
-
[タグ]:キーと値のペアでリスナーにタグを設定します。
-
[詳細設定]: 変更 をクリックして展開します。
-
[HTTP/2 の有効化]:HTTPS リスナーでのみ使用できます。
ALB Extensible Edition は、HTTP/2 をデフォルトで有効にしており、無効にすることはできません。
-
[アイドル接続タイムアウト期間]:有効な値は 1 ~ 600 秒です。デフォルト値は 15 秒です。この期間が経過すると、ALB は接続を閉じます。より大きい最大タイムアウト値が必要な場合は、Quota Center にアクセスしてください。
-
[接続リクエストタイムアウト]:有効な値は 1 ~ 600 秒です。デフォルト値は 60 秒です。タイムアウトを超えた場合、ALB は HTTP 504 エラーを返します。より大きい最大タイムアウト値が必要な場合は、Quota Center にアクセスしてください。
-
[圧縮]:この機能を有効にすると、レスポンスコンテンツの
Content-Lengthが 1024 バイトを超える場合にコンテンツが圧縮されます。この機能は Brotli と Gzip (レベル 4) をサポートしています。クライアントが両方をサポートしている場合、Brotli が優先されます。サポートされている Gzip タイプ:
text/xml、text/plain、text/css、application/javascript、application/x-javascript、application/rss+xml、application/atom+xml、application/xml、application/json -
[実際のクライアントソース IP を見つける]:有効にすると、ALB は X-Forwarded-For ヘッダーから実際のクライアント IP を抽出します。この機能を使用するには、信頼できる IP リストを設定する必要があります。
-
0.0.0.0/0:X-Forwarded-For ヘッダーから最も左側のアドレスを取得します。 -
proxy1 IP;proxy2 IP;..:右から順に見て、リストに含まれていない最初の値を取得します。
この機能を有効にすると、SourceIp マッチングと QPS (クライアント IP あたり) アクションを使用する転送ルールは、実際のクライアント IP を使用します。
このオプションは QUIC リスナーではサポートされていません。
この機能は Standard and WAF-enabled Edition インスタンスでのみ利用可能です。Basic Edition または Extensible Edition インスタンスではサポートされていません。
-
-
[カスタム HTTP ヘッダー]:クライアント IP アドレス、リスナープロトコル、リスナーポートなどの情報を取得するための HTTP ヘッダーを選択します。各ヘッダーの詳細については、「HTTP ヘッダー」をご参照ください。
-
[QUIC アップデート]: このオプションは、HTTPS リスナーと QUIC リスナーを併用する場合に適用されます。 関連付けられた QUIC リスナー ドロップダウンリストで、既存の QUIC リスナーを選択します。 このオプションを有効にすると、ALB は HTTP/3 プロトコルをクライアントにアドバタイズします。 HTTP/3 をサポートするクライアントは QUIC リスナーを使用し、サポートしないクライアントは自動的に HTTPS にフォールバックします。
このオプションは HTTPS リスナーでのみサポートされており、ALB Extensible Edition ではサポートされていません。
-
ステップ 2:[SSL 証明書の設定] (HTTPS リスナーと QUIC リスナーの場合)
|
証明書 |
説明 |
片方向認証での要否 |
相互認証での要否 |
|
サーバー証明書 |
サーバーの身元を証明するもので、クライアントによって検証され、信頼できることが確認されます。詳細については、「SSL 証明書とは」をご参照ください。 |
必要 |
必要 |
|
CA 証明書 |
サーバーは CA 証明書を使用してクライアント証明書の署名を検証します。検証に失敗した場合、接続は拒否されます。 |
不要 |
必要 |
-
新しい証明書は、適用後に有効になるまで通常 1 ~ 3 分かかります。
-
QUIC リスナーにはサーバー証明書のみが必要で、相互認証はサポートしていません。
-
複数のドメインをサポートする必要がある場合、または複数のサーバー証明書を使用する場合は、リスナーに追加の証明書を追加できます。
-
SSL 証明書の設定 ウィザードで、サーバー証明書 を選択します。
選択可能なサーバー証明書がない場合は、SSL 証明書の作成 をクリックして証明書管理サービスに移動し、そこでサーバー証明書を 購入 または アップロード できます。
-
HTTPS リスナーの場合のみ:TLS セキュリティポリシー を選択します。
システムには、複数の事前定義されたポリシーが用意されています。TLS プロトコルバージョンと暗号スイートをカスタマイズする場合は、TLS セキュリティポリシーの作成、カスタムポリシーの作成 の順にクリックします。詳細については、「TLS セキュリティポリシー」をご参照ください。
ALB Extensible Edition は、デフォルトの TLS セキュリティポリシー
tls_cipher_policy_1_0_to_1_3のみをサポートしており、カスタム TLS セキュリティポリシーはサポートしていません。 -
HTTPS リスナーのみ (任意): 相互認証の有効化 を有効にし、次に CA 証明書ソースと CA 証明書を選択します。
-
CA 証明書ソース を Alibaba Cloud に設定し、CA 証明書 ドロップダウンリストから CA 証明書を選択します。利用可能な CA 証明書がない場合は、CA 証明書の購入 をクリックして 新しい CA 証明書を作成します。
-
CA 証明書ソース を サードバーティ に設定し、CA 証明書 ドロップダウンリストから CA 証明書を選択します。利用可能な CA 証明書がない場合は、自己署名 CA 証明書のアップロード をクリックして、証明書リポジトリを使用して 自己署名 CA 証明書をアップロードします。
相互認証は Standard and WAF-enabled Edition インスタンスでのみ利用可能です。Basic Edition または Extensible Edition インスタンスではサポートされていません。
-
ステップ 3:サーバーグループの選択
サーバーグループの選択 ウィザードで、サーバーグループを選択し、バックエンドサーバー情報を確認してから、次へ をクリックします。
ステップ 4:設定の確認
設定の確認 ページで設定を確認し、送信 をクリックします。
[リスナーのクイック作成]
-
ALB コンソールのインスタンスページに移動し、対象のインスタンスの ID をクリックして、リスナー タブで リスナーのクイック作成 をクリックします。
-
リスナーのクイック作成 ダイアログボックスで、次のパラメーターを設定し、OK をクリックします。
-
[リスナープロトコルの選択]:[HTTP]、[HTTPS]、または [QUIC] を選択します。
ALB Extensible Edition は QUIC リスナーをサポートしていません。
-
[リスナーポート]:有効な値は 1 ~ 65535 です。HTTP は通常ポート 80 を使用し、HTTPS は通常ポート 443 を使用します。
-
[サーバー証明書] (HTTPS および QUIC リスナー用): サーバー証明書を選択します。選択可能なサーバー証明書がない場合は、SSL 証明書の作成 をクリックして証明書管理サービスに移動し、サーバー証明書を購入またはアップロードできます。
-
[TLS セキュリティポリシー] (HTTPS リスナーのみ):TLS セキュリティポリシーを選択します。TLS プロトコルバージョンと暗号スイートをカスタマイズする場合は、TLS セキュリティポリシーの作成 をクリックし、次に カスタムポリシーの作成 をクリックします。詳細については、「TLS セキュリティポリシー」をご参照ください。
ALB Extensible Edition は、デフォルトの TLS セキュリティポリシー
tls_cipher_policy_1_0_to_1_3のみをサポートしており、カスタム TLS セキュリティポリシーはサポートしていません。 -
[サーバーグループ]:バックエンドサーバーグループのタイプとバックエンドサーバーを選択します。
-
API
CreateListener API を使用してリスナーを作成します。
リスナーの編集
リスナーを作成した後、リスナープロトコルやリスナーポートは変更できません。これらを変更するには、リスナーを削除して新しいリスナーを作成する必要があります。
コンソール
-
ALB コンソールの[インスタンス] ページに移動し、ターゲットインスタンスの ID をクリックします。
-
リスナー タブをクリックし、対象のリスナーを見つけ、次のいずれかの方法でその基本情報を編集します:
-
リスナー ID をクリックするか、操作 列の 詳細を表示 をクリックします。リスナーの詳細 タブで、基本情報 セクションの リスナーの変更 をクリックします。
-
操作 列で、
> リスナーの変更 を選択します。
-
-
リスナーの変更 ダイアログボックスで、リスナー名または詳細設定を変更し、保存 をクリックします。
API
UpdateListenerAttribute API を使用して、リスナーの設定を更新します。
リスナーの開始または停止
リスナーを開始または停止すると、リスナーは一時的に 設定中 状態になります。この間は、リスナーの削除、編集、またはサーバーグループの変更はできません。
リスナーを停止すると、トラフィックが中断されます。慎重に実行してください。
コンソール
-
ALB コンソールの [インスタンス] ページに移動し、ターゲットインスタンスの ID をクリックします。
-
リスナー タブをクリックし、目的のリスナーを見つけ、次のいずれかの方法で開始または停止します。
-
操作 列で、
> 有効化 または 無効化 を選択します。表示されたダイアログボックスで、OK をクリックします。 -
リスナー ID をクリックし、リスナーの詳細 タブの右上隅にある 有効化 または 無効化 をクリックします。
-
API
-
StartListener API を呼び出してリスナーを開始します。
-
StopListener API を呼び出してリスナーを停止します。
サーバーグループの変更
コンソール
-
ALB コンソールの [インスタンス] ページに移動し、ターゲットインスタンスの ID をクリックします。
-
リスナー タブをクリックし、対象のリスナーを探し、次のいずれかの方法でサーバーグループを変更します。
-
操作 列で、
> サーバーグループの変更 (デフォルトの転送ルール) を選択します。 -
リスナー ID をクリックします。リスナーの詳細 タブの サーバーグループ (デフォルトの転送ルール) セクションで、サーバーグループの変更 (デフォルトの転送ルール) をクリックします。
-
-
表示されたダイアログボックスで、使用するサーバーグループを選択するか、ドロップダウンリストでサーバーグループの作成をクリックして新しいサーバーグループを作成し、それを選択します。 次に、保存をクリックします。
API
UpdateListenerAttribute API を使用して、サーバーグループの変更を含むリスナーの設定を更新します。
バックエンドプロトコルとバックエンドサービスが一致しない場合のトラブルシューティング
ALB リスナーが 502 Bad Gateway エラーを返す場合、サーバーグループのバックエンドプロトコルが、バックエンドサービスで実際に実行されているプロトコルと一致していない可能性があります。たとえば、サーバーグループのバックエンドプロトコルが HTTPS に設定されているが、バックエンドサービスが実際には HTTP で実行されている場合、ALB は HTTPS でバックエンドにリクエストを転送し、SSL ハンドシェイクが失敗して 502 エラーが返されます。
この問題をトラブルシューティングして修正するには、次の手順を実行します。
-
ALB コンソールの[インスタンス]ページに移動して対象インスタンスの ID をクリックし、[リスナー] タブで 502 エラーを返すリスナーを見つけ、[転送ルールの表示/編集] をクリックします。
-
転送ルールの一覧で、デフォルト転送ルールに関連付けられているサーバーグループのバックエンドプロトコルが、バックエンドサービスで実際に実行されているプロトコルと一致しているかどうかを確認します。
-
プロトコルが一致しない場合は、デフォルトの転送ルールで [編集] をクリックし、[サーバーグループ] ドロップダウンリストから正しいバックエンドプロトコルを使用するサーバーグループを選択してから、[保存] をクリックします。 適切なサーバーグループがない場合は、まず 正しいバックエンドプロトコルを使用するサーバーグループを作成してから、サーバーグループを変更します。
サーバーグループを作成するときは、[バックエンドプロトコル] パラメーターが、バックエンドサービスで実際に実行されているプロトコル (HTTP または HTTPS) と一致することを確認してください。そうしないと、プロトコルの不一致が原因で、リクエストがバックエンドに転送されるときに 502 エラーが発生します。
証明書の管理
コンソール
API
-
UpdateListenerAttribute API を使用して、リスナーの証明書設定を更新します。
-
AssociateAdditionalCertificatesWithListener API を使用して、リスナーに追加の証明書を関連付けます。
-
DissociateAdditionalCertificatesFromListener API を使用して、リスナーから追加の証明書の関連付けを解除します。
TLS セキュリティポリシーの変更 (HTTPS リスナーのみ)
コンソール
-
リスナーの詳細 タブで、SSL 証明書 セクションを見つけ、TLS セキュリティポリシー の右側にある
アイコンをクリックします。 -
表示される TLS セキュリティポリシーの変更 ダイアログボックスで、TLS セキュリティポリシーを選択し、保存 をクリックします。
システムには、複数の事前定義されたポリシーが用意されています。TLS プロトコルバージョンと暗号スイートをカスタマイズしたい場合は、TLS セキュリティポリシーの作成 をクリックし、次に カスタムポリシーの作成 をクリックします。詳細については、「TLS セキュリティポリシー」をご参照ください。
ALB Extensible Edition は、デフォルトの TLS セキュリティポリシー
tls_cipher_policy_1_0_to_1_3のみをサポートしており、カスタム TLS セキュリティポリシーはサポートされていません。
API
UpdateListenerAttribute を呼び出してリスナーの設定を更新し、SecurityPolicyId パラメーターで TLS セキュリティポリシーを指定します。
分散トレーシングの管理
分散トレーシングは、スタンダード版および WAF 有効版の ALB インスタンスでのみサポートされています。ベーシック版または拡張版のインスタンスではサポートされていません。詳細については、「ALB 分散トレーシングを使用したエンドツーエンドリクエストの分析」をご参照ください。
分散トレーシングを有効にすると、Managed Service for OpenTelemetry および Log Service の料金が発生します。
リスナーの削除
コンソール
-
ALB コンソールの [インスタンス] ページに移動し、ターゲットインスタンスの ID をクリックします。リスナー タブで、ターゲットリスナーを見つけて、操作 列で
[>] 削除 を選択します。 -
表示されたダイアログボックスで、OK をクリックします。
API
DeleteListener オペレーションを使用してリスナーを削除します。
課金
リスナーは個別に課金されません。ただし、リスナーのトラフィックと転送ルールの設定は LCU 料金に影響します。ALB インスタンスの課金ルールについては、「ALB の課金」をご参照ください。
クォータ
|
クォータ名 |
説明 |
デフォルト |
最大値 |
調整可能 |
|
alb_quota_loadbalancer_listeners_num_basic_edition |
Basic Edition の ALB インスタンスに追加できるリスナーの最大数 |
50 |
80 |
|
|
alb_quota_loadbalancer_listeners_num_standard_edition |
Standard Edition の ALB インスタンスに追加できるリスナーの最大数 |
50 |
100 |
|
|
alb_quota_loadbalancer_listeners_num_standardwithwaf_edition |
WAF-enabled Edition の ALB インスタンスに追加できるリスナーの最大数 |
50 |
100 |
|
|
alb_quota_max_idle_timeout |
リスナーに設定できるアイドルタイムアウトの最大値 |
600 秒 |
3,600 秒* |
|
|
alb_quota_max_request_timeout |
リスナーに設定できるリクエストタイムアウトの最大値 |
600 秒 |
3,600 秒* |
* アップグレードされた ALB インスタンスのみ、alb_quota_max_request_timeoutおよびalb_quota_max_idle_timeoutクォータを最大 3,600 秒まで引き上げることができます。未アップグレードのインスタンスは、最大 900 秒までしか対応していません。