リスナーは接続リクエストをチェックします。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 アップグレードをサポートします。デフォルトで WebSocket Secure (WSS) プロトコルをサポートします。 |
|
QUIC |
ネットワーク信号が弱い環境や、Wi-Fi とモバイルネットワーク間の頻繁な切り替えが発生するシナリオに適しています。ネットワークや動画の途切れを効果的に軽減し、音声および動画リソースのアクセス効率を向上させ、データ転送のセキュリティを確保します。 |
必要 (サーバー証明書が必要) |
HTTP、HTTPS |
UDP 上で動作し、接続の確立が高速で、コネクションマイグレーション (ネットワーク切り替え時に接続を維持) をサポートします。単独で使用することも、HTTPS リスナーと組み合わせて使用することもできます。 |
ALB Extensible 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 および 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 証明書の作成 をクリックして Certificate Management Service に移動し、サーバー証明書を購入またはアップロードできます。
-
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 および 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 証明書の作成 をクリックして Certificate Management Service に移動し、サーバー証明書を購入またはアップロードできます。
-
[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 を使用してリスナーの設定を更新します。
リスナーの開始または停止
リスナーを開始または停止すると、一時的に Configuring 状態になります。この間、そのサーバーグループを削除、編集、または変更することはできません。
リスナーを停止すると、トラフィックが中断されます。操作は慎重に行ってください。
コンソール
-
ALB コンソールの [インスタンス] ページで、ターゲットインスタンスの ID をクリックします。
-
リスナー タブをクリックし、対象のリスナーを見つけ、次のいずれかの方法で起動または停止します。
-
操作 列で、
> 有効化 または 無効化 を選択します。 表示されたダイアログボックスで、OK をクリックします。 -
リスナー ID をクリックし、リスナーの詳細 タブの右上隅にある 有効化 または 無効化 をクリックします。
-
API
-
StartListener API を呼び出してリスナーを開始します。
-
StopListener API を呼び出してリスナーを停止します。
サーバーグループの変更
コンソール
-
ALB コンソールの [インスタンス] ページで、ターゲットインスタンスの ID をクリックします。
-
リスナー タブをクリックし、対象のリスナーで、次のいずれかの方法でサーバーグループを変更します。
-
操作 列で、
> サーバーグループの変更 (デフォルトの転送ルール) を選択します。 -
リスナー ID をクリックします。サーバーグループ (デフォルトの転送ルール) タブの リスナーの詳細 セクションで、サーバーグループの変更 (デフォルトの転送ルール) をクリックします。
-
-
表示されたダイアログボックスで、使用するサーバーグループを選択するか、ドロップダウンリストで サーバーグループの作成 をクリックして 新しいサーバーグループを作成 して選択します。次に、保存 をクリックします。
API
UpdateListenerAttribute 操作を使用して、サーバーグループの変更を含むリスナーの設定を更新します。
証明書の管理
コンソール
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クォータを最大 3600 秒まで増やすことができます。アップグレードされていないインスタンスでは、最大 900 秒までしか増やすことができません。
よくある質問
バックエンドプロトコルの不一致による 502 Bad Gateway
ALB リスナーが 502 Bad Gateway エラーを返す場合、サーバーグループのバックエンドプロトコルが、バックエンドサービスで実際に使用されているプロトコルと一致していない可能性があります。 たとえば、サーバーグループのバックエンドプロトコルが HTTPS に設定されているにもかかわらず、バックエンドサービスが実際には HTTP を使用している場合、ALB は HTTPS 経由でバックエンドにリクエストを転送するため、SSL ハンドシェイクが失敗して 502 エラーが返されます。
バックエンドサービスで実際に使用されているプロトコルを確認した後、リスナーまたは転送ルールにバインドされているサーバーグループを、正しいバックエンドプロトコルを使用するサーバーグループに変更してください。 一致するプロトコルを使用するサーバーグループが存在しない場合は、まず作成してください。