リスナーは接続リクエストを監視します。Application Load Balancer (ALB) インスタンスに対してリスナーを作成することで、クライアントからのリクエストを転送できます。
リスナープロトコルの選択
リスナーを作成する前に、ビジネス要件に適したリスナープロトコルを選択してください。Application Load Balancer (ALB) は、レイヤー 7 のリスナープロトコルとして HTTP、HTTPS、および QUIC の 3 種類をサポートしています。以下の表では、各プロトコルの利用シーンと構成要件について説明します。
|
プロトコル |
利用シーン |
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 上で動作し、接続をより高速に確立でき、ネットワーク切り替え時の接続移行(接続維持)をサポートします。単体で使用することも、HTTPS リスナーと併用することも可能です。 |
前提条件
-
ALB インスタンスおよびサーバーグループを作成済みである必要があります。
-
HTTPS または QUIC リスナーを作成するには、Certificate Management Service でサーバー証明書を購入またはアップロードしておく必要があります。詳細については、「証明書の管理」をご参照ください。
リスナーの作成
リスナーは次のいずれかの方法で作成できます。
-
リスナーの作成:詳細設定をカスタマイズ可能なステップバイステップウィザードです。
-
リスナーのクイック作成:リスナープロトコル、リスナーポート、およびサーバーグループのみを設定する簡易的な方法です。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 秒です。この期間が経過すると、ALB は接続を閉じます。最大タイムアウト値を引き上げるには、[クォータセンター]に移動してください。
リスナープロトコルが HTTP の場合、アイドルタイムアウトは HTTP/2 リクエストには適用されません。
-
接続リクエストタイムアウト:有効な値は 1~600 秒です。デフォルト値は 60 秒です。タイムアウトを超えると、ALB は HTTP 504 エラーを返します。最大タイムアウト値を引き上げるには、[クォータセンター]に移動してください。
-
圧縮:この機能を有効にすると、応答コンテンツの
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 Edition および WAF 対応 Edition のインスタンスでのみ利用可能です。Basic Edition のインスタンスではサポートされていません。
-
-
カスタム HTTP ヘッダー:クライアント IP アドレス、リスナープロトコル、リスナーポートなどの情報を取得するために追加する HTTP ヘッダーを選択します。各ヘッダーの詳細については、「HTTP ヘッダー」をご参照ください。
-
QUIC アップデート:このオプションは、HTTPS リスナーと QUIC リスナーを併用する場合に適用されます。関連付けられた QUIC リスナー ドロップダウンリストで、事前に作成済みの QUIC リスナーを選択します。このオプションを有効にすると、ALB はクライアントに対して HTTP/3 プロトコルを通知します。HTTP/3 をサポートするクライアントは QUIC リスナーを使用し、サポートしないクライアントは自動的に HTTPS にフォールバックします。
このオプションは HTTPS リスナーでのみサポートされます。
-
ステップ 2:SSL 証明書の設定(HTTPS および QUIC リスナーの場合)
|
証明書 |
説明 |
一方向認証に必須 |
相互認証に必須 |
|
サーバー証明書 |
サーバーの ID を証明し、クライアントが信頼されていることを検証します。詳細については、「SSL 証明書とは」をご参照ください。 |
はい |
はい |
|
CA 証明書 |
サーバーは CA 証明書を使用してクライアント証明書の署名を検証します。検証に失敗した場合は、接続が拒否されます。 |
いいえ |
はい |
-
新しい証明書は、適用後通常 1~3 分で有効になります。
-
QUIC リスナーではサーバー証明書のみが必要であり、相互認証はサポートされていません。
-
複数のドメインをサポートする必要がある場合や複数のサーバー証明書を使用する必要がある場合は、リスナーに 追加の証明書を追加できます。
-
SSL 証明書の設定ウィザードで、サーバー証明書を選択します。
選択可能なサーバー証明書がない場合は、SSL 証明書の作成をクリックして Certificate Management Service に移動し、サーバー証明書を購入またはアップロードします。
-
HTTPS リスナーの場合のみ:TLS セキュリティポリシーを選択します。
システムには複数の事前定義ポリシーが用意されています。TLS プロトコルバージョンおよび暗号スイートをカスタマイズする場合は、TLS セキュリティポリシーの作成をクリックしてから、カスタムポリシーの作成をクリックします。詳細については、「TLS セキュリティポリシー」をご参照ください。
-
HTTPS リスナーの場合のみ(オプション):相互認証の有効化を有効にしてから、CA 証明書のソースおよび CA 証明書を選択します。
-
CA 証明書ソースをAlibaba Cloudに設定し、デフォルトの CA 証明書ドロップダウンリストから CA 証明書を選択します。CA 証明書が利用できない場合は、CA 証明書の購入をクリックして新しい CA 証明書を作成します。
-
CA 証明書ソースをサードバーティに設定し、デフォルトの CA 証明書ドロップダウンリストから CA 証明書を選択します。CA 証明書が利用できない場合は、自己署名 CA 証明書のアップロードをクリックして、証明書リポジトリを使用して自己署名 CA 証明書をアップロードします。
相互認証は Standard Edition および WAF 対応 Edition のインスタンスでのみ利用可能です。Basic Edition のインスタンスではサポートされていません。
-
ステップ 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 セキュリティポリシー」をご参照ください。
-
サーバーグループ:バックエンドサーバーグループのタイプおよびバックエンドサーバーを選択します。
-
API
CreateListener 操作を使用してリスナーを作成します。
リスナーの変更
リスナー作成後は、リスナープロトコルまたはリスナーポートを変更できません。これらを変更するには、リスナーを削除して新しいリスナーを作成する必要があります。
コンソール
-
ALB コンソールの[インスタンス]ページに移動し、対象インスタンスの ID をクリックします。
-
リスナータブをクリックし、対象リスナーを見つけたら、以下のいずれかの方法で基本情報を変更します。
-
リスナー ID をクリックするか、操作列の詳細を表示をクリックします。リスナーの詳細タブで、基本情報セクションのリスナーの変更をクリックします。
-
操作列で、
> リスナーの変更を選択します。
-
-
リスナーの変更ダイアログボックスで、リスナー名または詳細設定を変更してから、保存をクリックします。
API
UpdateListenerAttribute 操作を使用してリスナーの構成を更新します。
リスナーの開始または停止
リスナーを開始または停止すると、一時的に Configuring 状態になります。この間は、リスナーを削除、編集、またはそのサーバーグループを変更することはできません。
リスナーを停止するとトラフィックが中断されます。慎重に操作してください。
コンソール
-
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 Edition および WAF 対応 Edition のALBインスタンスでのみサポートされます。分散トレーシングの詳細な説明および有効化手順については、「ALB 分散トレーシングによるエンドツーエンドリクエストの分析」をご参照ください。
分散トレーシングを有効化すると、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 対応 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 秒までしかサポートされません。