リスナーは、接続リクエストをチェックするプロセスです。Application Load Balancer (ALB) インスタンスのリスナーを作成して、ビジネス要件に基づいてクライアントリクエストを転送できます。また、リスナーの変更、開始、停止、削除などの管理も可能です。
リスナープロトコルの選択
リスナーを作成する前に、ビジネス要件に合ったリスナープロトコルを選択してください。ALB は、HTTP、HTTPS、QUIC の 3 つのレイヤー 7 リスナープロトコルをサポートしています。次の表に、各プロトコルのユースケースと設定要件を示します。
|
プロトコル |
ユースケース |
SSL 証明書が必要です |
サポートされるバックエンドプロトコル |
特徴 |
|
HTTP |
Web アプリやモバイルミニゲームなど、コンテンツの検査が必要なアプリケーション。 |
不要 |
HTTP、HTTPS |
デフォルトで WebSocket プロトコルをサポートします。 |
|
HTTPS |
暗号化されたデータ転送が必要なアプリケーション。ALB インスタンスとクライアント間で SSL/TLS 暗号化セッションを確立します。 |
必要 (サーバー証明書が必須。相互認証には CA 証明書が必須)。 |
HTTP、HTTPS、および gRPC (HTTP/2 の有効化が必要)。 |
HTTP/2、相互認証 (CA 証明書が必要)、TLS セキュリティポリシー、QUIC アップグレードをサポートします。デフォルトで WebSocket Secure (WSS) プロトコルをサポートします。 |
|
QUIC |
ネットワーク信号が弱い、または Wi-Fi とモバイルネットワーク間の切り替えが頻繁に発生するシナリオ。音声や動画のコマ落ちを減らし、ストリーミングリソースへのアクセス効率を向上させ、データ転送のセキュリティを確保します。 |
必要 (サーバー証明書が必須)。 |
HTTP |
UDP に基づいており、より高速な接続確立を実現し、接続移行をサポートするため、ネットワーク変更中に接続が失われることはありません。 |
前提条件
-
ALB インスタンスとサーバーグループが作成済みであること。
-
HTTPS または QUIC リスナーを作成するには、Certificate Management Service で購入またはアップロードされたサーバー証明書が必要です。詳細については、「証明書の管理」をご参照ください。
リスナーの作成または削除
コンソール
ALB は、以下の方法でリスナーを作成できます。
-
リスナーの作成:カスタムの詳細設定をサポートするステップバイステップのウィザードです。
-
リスナーのクイック作成:リスナープロトコル、リスナーポート、サーバーグループのみが必要です。HTTPS または QUIC リスナーの場合は、サーバー証明書も設定する必要があります。HTTPS リスナーの場合は、TLS セキュリティポリシーも選択する必要があります。
リスナーの作成
ステップ 1:リスナーの設定
-
ALB コンソールの [インスタンス] ページに移動し、ターゲットインスタンスの ID をクリックして、リスナー タブに移動します。次に、リスナーの作成 をクリックします。
-
リスナーの設定 ウィザードで、以下のパラメーターを設定し、次へ をクリックします。
-
リスナープロトコルの選択: HTTP、HTTPS、または QUIC を選択します。
-
リスナーポート:1 から 65535 までのポートを指定します。通常、HTTP にはポート 80、HTTPS にはポート 443 が使用されます。
同じ ALB インスタンス内で、同じプロトコルを使用するリスナーは同じポートを使用できません。また、HTTP リスナーと HTTPS リスナーも同じポートを使用できません。
-
リスナー名:リスナーのカスタム名を入力します。
-
タグ:キーと値のペアを使用してリスナーにタグを付けます。
-
詳細設定:変更 をクリックしてセクションを展開します。
-
HTTP/2 の有効化:このオプションは、HTTPS リスナーでのみ利用できます。
-
アイドル接続タイムアウト期間:1 から 600 秒の値を指定します。デフォルト値は 15 秒です。この期間アイドル状態が続くと、接続は閉じられます。より長いタイムアウトをリクエストするには、[クォータセンター] に移動してください。
リスナープロトコルが HTTP の場合、アイドルタイムアウトは HTTP/2 リクエストには適用されません。
-
接続リクエストタイムアウト:1 から 600 秒の値を指定します。デフォルト値は 60 秒です。この期間内にバックエンドサーバーが応答しない場合、ALB は HTTP 504 エラーを返します。より長いタイムアウトをリクエストするには、[クォータセンター] に移動してください。
-
圧縮:有効にすると、ALB は応答の
Content-Lengthが 1,024 バイトを超える場合にのみ応答を圧縮します。Brotli (すべてのタイプ) と Gzip がサポートされています。クライアントが両方のアルゴリズムをサポートしている場合、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;...:ALB は右から左にスキャンし、信頼リストにない最初の IP アドレスを使用します。
この機能を有効にすると、接続元 IP マッチングに基づく転送ルールと QPS (クライアント IP あたり) は、実際のクライアントソース IP を使用します。
この設定は QUIC リスナーではサポートされていません。
この機能は、Standard および WAF-enabled エディションのインスタンスで利用できますが、Basic エディションのインスタンスでは利用できません。
-
-
カスタム HTTP ヘッダー:追加するヘッダーを選択します。これらのヘッダーを使用して、クライアントの IP アドレス、リスナープロトコル、ポートなどの情報を取得できます。各ヘッダーの詳細については、「HTTP ヘッダーフィールド」をご参照ください。
-
QUIC アップデート:この設定は、HTTPS リスナーと QUIC リスナーを併用する場合に適用されます。関連付けられた QUIC リスナー ドロップダウンリストで、作成済みの QUIC リスナーを選択します。この機能を有効にすると、ALB はクライアントに HTTP/3 を通知します。ALB は HTTP/3 をサポートするクライアントを QUIC リスナーに誘導し、その他のクライアントは HTTPS にフォールバックします。
この設定は HTTPS リスナーでのみ使用できます。
-
ステップ 2:SSL 証明書の設定 (HTTPS および QUIC リスナーのみ)
|
証明書 |
説明 |
一方向認証に必要 |
相互認証に必要 |
|
サーバー証明書 |
サーバーの ID をクライアントに証明します。詳細については、「SSL 証明書とは」をご参照ください。 |
はい |
はい |
|
CA 証明書 |
リスナーは CA 証明書を使用してクライアントの証明書を検証します。検証に失敗した場合、リスナーは接続を拒否します。 |
いいえ |
はい |
-
新しく適用された証明書が有効になるまで、通常 1〜3 分かかります。
-
QUIC リスナーはサーバー証明書のみを必要とし、相互認証はサポートしていません。
-
複数のドメイン名をサポートしたり、複数のサーバー証明書をアタッチしたりするには、リスナーに追加証明書を追加できます。
-
SSL 証明書の設定 ウィザードで、サーバー証明書 を選択します。
利用可能なサーバー証明書がない場合は、SSL 証明書の作成 をクリックして Certificate Management Service に移動し、サーバー証明書を購入またはアップロードします。
-
HTTPS リスナーのみ:TLS セキュリティポリシー を選択します。
ALB は複数の事前定義ポリシーを提供しています。TLS プロトコルのバージョンと暗号スイートをカスタマイズするには、TLS セキュリティポリシーの作成 をクリックし、次に カスタムポリシーの作成 をクリックします。詳細については、「TLS セキュリティポリシー」をご参照ください。
-
HTTPS リスナーのみ (オプション):相互認証の有効化 をオンにし、CA 証明書ソースを選択してから、CA 証明書を選択します。
-
CA 証明書ソース を Alibaba Cloud に設定した場合は、デフォルトの CA 証明書 ドロップダウンリストから CA 証明書を選択します。利用可能な CA 証明書がない場合は、CA 証明書の購入 をクリックして新しい CA 証明書を作成します。
-
CA 証明書ソース を サードバーティ に設定した場合は、デフォルトの CA 証明書 ドロップダウンリストから CA 証明書を選択します。利用可能な CA 証明書がない場合は、自己署名 CA 証明書のアップロード をクリックして、証明書申請リポジトリを使用して自己署名 CA 証明書をアップロードします。
相互認証は、Standard および WAF-enabled エディションのインスタンスで利用できますが、Basic エディションのインスタンスでは利用できません。
-
ステップ 3:サーバーグループの選択
サーバーグループの選択 ウィザードで、サーバーグループを選択し、バックエンドサーバー情報を表示してから、次へ をクリックします。
ステップ 4:設定の確認
設定の確認 ページで、設定を確認し、送信 をクリックします。
リスナーのクイック作成
-
ALB コンソールの [インスタンス] ページに移動し、ターゲットインスタンスの ID をクリックして、リスナー タブに移動します。次に、リスナーのクイック作成 をクリックします。
-
リスナーのクイック作成 ダイアログボックスで、以下のパラメーターを設定し、OK をクリックします。
-
リスナープロトコルの選択: HTTP、HTTPS、または QUIC を選択します。
-
リスナーポート:1 から 65535 までのポートを指定します。通常、HTTP にはポート 80、HTTPS にはポート 443 が使用されます。
-
サーバー証明書 (HTTPS および QUIC リスナーのみ):サーバー証明書を選択します。利用可能なサーバー証明書がない場合は、SSL 証明書の作成 をクリックして Certificate Management Service に移動し、サーバー証明書を購入またはアップロードします。
-
TLS セキュリティポリシー (HTTPS リスナーのみ):TLS セキュリティポリシーを選択します。TLS プロトコルのバージョンと暗号スイートをカスタマイズするには、TLS セキュリティポリシーの作成 をクリックし、次に カスタムポリシーの作成 をクリックします。詳細については、「TLS セキュリティポリシー」をご参照ください。
-
サーバーグループ:バックエンドサーバーグループのタイプとバックエンドサーバーを選択します。
-
リスナーの削除
-
ALB コンソールの [インスタンス] ページに移動し、ターゲットインスタンスの ID をクリックします。リスナー タブで、ターゲットリスナーを見つけます。操作 列で、
> 削除 を選択します。 -
表示されたダイアログボックスで、OK をクリックします。
API
-
CreateListener 操作を呼び出してリスナーを作成します。
-
DeleteListener 操作を呼び出してリスナーを削除します。
リスナーの変更
リスナー作成後にリスナープロトコルやポートを変更することはできません。これらの設定を変更するには、リスナーを削除して新しく作成する必要があります。
コンソール
-
ALB コンソールの [インスタンス] ページに移動し、ターゲットインスタンスの ID をクリックします。
-
リスナー タブをクリックし、ターゲットリスナーを見つけて、以下のいずれかの方法で基本情報を変更します。
-
ターゲットリスナーの ID をクリックするか、操作 列の 詳細を表示 をクリックします。リスナーの詳細 タブで、基本情報 セクションの リスナーの変更 をクリックします。
-
操作 列で、
> リスナーの変更 を選択します。
-
-
リスナーの変更 ダイアログボックスで、リスナー名または詳細設定を変更し、保存 をクリックします。
API
UpdateListenerAttribute 操作を呼び出して、リスナーの設定を更新します。
リスナーの開始または停止
リスナーを開始または停止すると、一時的に「設定中」状態になります。この間、リスナーのサーバーグループを削除、編集、または置換することはできません。
リスナーを停止すると、すべてのアクティブな接続が中断されます。操作には十分ご注意ください。
コンソール
-
ALB コンソールの [インスタンス] ページに移動し、ターゲットインスタンスの ID をクリックします。
-
リスナー タブをクリックし、ターゲットリスナーを見つけて、以下のいずれかの方法でリスナーを開始または停止します。
-
操作 列で、
> 有効化 または 無効化 を選択します。表示されたダイアログボックスで、OK をクリックします。 -
ターゲットリスナーの ID をクリックします。リスナーの詳細 タブの右上隅で、有効化 または 無効化 をクリックします。
-
API
-
StartListener 操作を呼び出してリスナーを開始します。
-
StopListener 操作を呼び出してリスナーを停止します。
サーバーグループの置換
コンソール
-
ALB コンソールの [インスタンス] ページに移動し、ターゲットインスタンスの ID をクリックします。
-
リスナー タブをクリックし、対象のリスナーを見つけ、次のいずれかの方法を使用してサーバーグループを置き換えます。
-
操作 列で、
> サーバーグループの変更 (デフォルトの転送ルール) を選択します。 -
ターゲットリスナーの ID をクリックします。リスナーの詳細 タブで、サーバーグループ (デフォルトの転送ルール) セクションの サーバーグループの変更 (デフォルトの転送ルール) をクリックします。
-
-
表示されたダイアログボックスで、置換するサーバーグループを選択するか、ドロップダウンリストの サーバーグループの作成 をクリックして新しいサーバーグループを作成して選択します。次に、保存 をクリックします。
API
UpdateListenerAttribute 操作を呼び出して、関連付けられたサーバーグループを含むリスナーの設定を更新します。
証明書の管理
コンソール
API
-
UpdateListenerAttribute 操作を呼び出して、リスナーの証明書設定を更新します。
-
AssociateAdditionalCertificatesWithListener 操作を呼び出して、リスナーに追加証明書を追加します。
-
DissociateAdditionalCertificatesFromListener 操作を呼び出して、リスナーから追加証明書を削除します。
TLS セキュリティポリシーの変更 (HTTPS リスナーのみ)
コンソール
-
リスナーの詳細 タブで、SSL 証明書 セクションを見つけ、TLS セキュリティポリシー の横にある
アイコンをクリックします。 -
TLS セキュリティポリシーの変更 ダイアログボックスで、TLS セキュリティポリシーを選択し、保存 をクリックします。
事前定義されたポリシーを選択できます。TLS プロトコルのバージョンと暗号スイートをカスタマイズするには、TLS セキュリティポリシーの作成 をクリックし、次に カスタムポリシーの作成 をクリックします。詳細については、「TLS セキュリティポリシー」をご参照ください。
API
UpdateListenerAttribute 操作を呼び出し、SecurityPolicyId パラメーターを使用して TLS セキュリティポリシーを指定します。
トレースの管理
トレースは、Standard および WAF-enabled エディションの ALB インスタンスでのみサポートされています。トレースを有効にする方法の詳細な説明と手順については、「ALB トレースを使用したエンドツーエンド分析」をご参照ください。
トレースを有効にすると、OpenTelemetry 向けマネージドサービスと Log Service の料金が発生します。
課金
リスナーは無料ですが、ALB インスタンスは従量課金制で課金されます。
クォータ
|
クォータ ID |
説明 |
デフォルト |
最大値 |
調整可能 |
|
alb_quota_loadbalancer_listeners_num_basic_edition |
Basic エディションの ALB インスタンスあたりの最大リスナー数。 |
50 |
80 |
|
|
alb_quota_loadbalancer_listeners_num_standard_edition |
Standard エディションの ALB インスタンスあたりの最大リスナー数。 |
50 |
100 |
|
|
alb_quota_loadbalancer_listeners_num_standardwithwaf_edition |
WAF-enabled エディションの 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 秒です。