超高性能かつ大規模な TLS オフロードをサポートするため、Network Load Balancer (NLB) インスタンスに TCP/SSL リスナーを追加し、クライアントからの暗号化された TCP リクエストを転送できます。
前提条件
NLBインスタンスが作成されました。 詳細については、「NLB インスタンスの作成と管理」をご参照ください。
サーバーグループが作成されます。 詳細については、「サーバーグループの作成と管理」をご参照ください。
操作手順
このトピックでは、TCP/SSL リスナーを作成する2つの方法について説明します。 ビジネスニーズに最も適した方法を選択してください。
-
TCP/SSL リスナーの作成:標準的な方法であり、マルチポートリッスン/転送や詳細設定などの機能をカスタマイズできます。
-
TCP/SSL リスナーのクイック作成:この方法では、リスナープロトコル、リスナーポート、サーバー証明書、TLS セキュリティポリシー、およびリクエスト転送用のバックエンドサーバーグループのみを設定することで、リスナーを迅速に作成できます。
TCP/SSL リスナーの作成
ステップ1:リスナーの設定
- NLBコンソールにログインします。
上部のナビゲーションバーで、NLBインスタンスがデプロイされています。
-
インスタンス ページで、目的のインスタンスを見つけ、次のいずれかの方法でリスナー設定ウィザードを開きます:
-
操作 列で、リスナーの作成 をクリックします。
-
インスタンス ID をクリックし、リスナー タブをクリックします。リスナー タブで、リスナーリストの上にある リスナーの作成 をクリックします。
-
インスタンス ID をクリックし、次にインスタンス詳細ページの設定ウィザードで リスナーの作成 をクリックします。
-
インスタンス ID をクリックし、インスタンス詳細ページの右上隅にあるリスナーの作成をクリックします。
-
-
リスナーの設定 ページで、次のパラメーターを設定し、次へ をクリックします。
パラメーター
説明
[リスナープロトコルの選択]
[TCPSSL] を選択してください。
[ポート範囲ごとにリッスン]
この機能を有効にするかどうかを指定します。有効にした場合、NLB インスタンスは指定されたリスナーポート範囲内のすべてのポートでリッスンし、これらのポートからのリクエストをバックエンドサーバーの対応するポートに転送します。
マルチポートリスナーに追加されるサーバーグループも、マルチポート転送が有効になっている必要があります。
[リスナーポート範囲]
ポート範囲機能が有効な場合、リスナーポート範囲 の開始ポートと終了ポートを入力する必要があります。
重要リスナーポート範囲は、リスナーの作成後に変更することはできません。
[リスナーポート]
リクエストを受信し、バックエンドサーバーに転送するために使用するリスナーポートを指定します。
一般的に使用されるポートをクリックするか、ポート番号を入力できます。 有効なポート範囲は 1~65535 です。
このパラメーターは、ポート範囲ごとにリッスンが有効になっている場合は不要です。
[リスナー名]
リスナーのカスタム名を入力します。
[タグ]
タグキー と タグ値 を設定します。
タグを追加すると、リスナー タブでタグを使用してリスナーを絞り込むことができます。
[詳細設定]
変更 をクリックして詳細設定を展開します。
[アイドル接続タイムアウト期間]
TCP/SSL 接続のアイドルタイムアウトを指定します。 タイムアウト期間内にリクエストが受信されない場合、NLB インスタンスは現在の接続を切断します。 次のリクエストが到着すると、インスタンスは新しい接続を確立します。
有効範囲は 1~900 秒です。 デフォルト値は 900 です。
NLB インスタンスがアイドル状態の TCP 接続を閉じるのを防ぐために、クライアントまたはサーバーで TCP Keep-Alive メカニズムを有効にし、キープアライブ間隔をリスナーのアイドルタイムアウトよりも小さい値に設定できます。
[新規接続の制限]
接続のスロットリングを有効にするかどうかを指定してください。
[1 秒あたりの新規接続数]
[新規接続の制限] を有効にする場合、リスナーが各ゾーン (VIP) で処理できる秒間最大新規接続数を設定してください。
重要この制限は他のリスナーには影響しません。 それらの制限は、それぞれ独自の設定に依存します。
[Proxy Protocol の有効化]
Proxy Protocol を有効にして、クライアント IP アドレスをバックエンドサーバーに渡すかどうかを指定してください。
詳細については、「NLB インスタンスを使用してクライアント IP アドレスを取得する」をご参照ください。
重要重要:Proxy Protocol は、プロキシサーバー (この場合は NLB リスナー) とバックエンドサーバーの両方でサポートされている必要があります。この機能を有効にしてもバックエンドサーバーが Proxy Protocol ヘッダーを解析できない場合、リクエストの解析が失敗し、サービス可用性に影響を与える可能性があります。
[ALPN ポリシーの有効化]
アプリケーション層プロトコルネゴシエーション (ALPN) を有効にするかどうかを指定してください。 ALPN を使用すると、クライアントとサーバーは、通信に使用するプロトコルをより適切に制御して、パフォーマンスとセキュリティを向上させることができます。 たとえば、HTTP/2.0 を優先することで、レイテンシーと帯域幅の使用量を削減できます。
-
定義:アプリケーション層プロトコルネゴシエーション (ALPN) は、Transport Layer Security (TLS) の拡張機能であり、TLS ハンドシェイク中にアプリケーション層が使用するプロトコルをネゴシエートできるようにします。 これにより、クライアントとサーバーは、HTTP/1.0、HTTP/1.1、HTTP/2.0など、通信に最も適したプロトコルを選択できます。
-
説明:ALPN は、TLS ハンドシェイクの拡張フィールドで定義されます。 NLB インスタンスに対して ALPN ポリシーが有効になっている TCP/SSL リスナーを使用する場合、TLS ハンドシェイクはクライアントと NLB インスタンスの間で行われます。 クライアントは、サポートされているプロトコルのリストを NLB インスタンスに送信します。 NLB インスタンスはリストからプロトコルを選択し、ハンドシェイクの完了後に選択したプロトコルをクライアントに通知します。
[ALPN ポリシー]
ALPNポリシーを有効にする場合は、ポリシーを選択してください。
-
HTTP1Only:HTTP/1.x プロトコルのみを使用します。 優先度:HTTP/1.1 > HTTP/1.0。
-
HTTP2Only:HTTP/2.0 プロトコルのみを使用します。
-
HTTP2Optional:HTTP/1.x プロトコルを優先的に使用しますが、HTTP/2.0 もサポートします。 優先度:HTTP/1.1 > HTTP/1.0 > HTTP/2.0。
-
HTTP2Preferred:HTTP/2.0 プロトコルを優先的に使用しますが、HTTP/1.x プロトコルもサポートします。 優先度:HTTP/2.0 > HTTP/1.1 > HTTP/1.0。
[HTTP2Optional] または [HTTP2Preferred] を選択する場合は、バックエンドサーバーが HTTP/1.x と HTTP/2.0 の両方をサポートしていることを確認してください。 リスナーとバックエンドサーバーでサポートされているHTTPバージョンに一貫性がない場合、ロードバランサーはリクエストを正しく転送できません。
gRPC は HTTP/2.0 に基づいています。 リスナーがgRPCリクエストを転送する場合は、ALPN ポリシーとして [HTTP2Only] を選択してください。
-
ステップ2:SSL証明書の設定
TCP/SSL リスナーを追加する際は、データを暗号化し、サービスを認証するためにSSL証明書を設定する必要があります。 次の表に、必要な証明書を示します。
|
証明書 |
説明 |
一方向認証 |
相互認証 |
|
サーバー証明書 |
サーバーのアイデンティティを検証します。 ブラウザーは、サーバーから送信された証明書が信頼できる認証局 (CA) によって発行されたものであるかどうかを確認します。 詳細については、「SSL証明書とは」をご参照ください。 |
はい。 証明書管理サービスコンソールでサーバー証明書を購入またはアップロードできます。NLB インスタンスはコンソールから証明書を取得して使用します。 |
はい。 証明書管理サービスコンソールでサーバー証明書を購入またはアップロードできます。NLB インスタンスは、コンソールから証明書を取得して使用します。 |
|
CA証明書 |
サーバーは CA 証明書を使用してクライアント証明書の署名を検証します。 検証に失敗した場合、サーバーは接続を拒否します。 クライアント証明書は、サーバーとの通信中にクライアントのアイデンティティを検証します。 クライアントにのみインストールする必要があります。 |
いいえ |
はい。 証明書管理サービスコンソールで CA 証明書を購入できます。NLB インスタンスはコンソールから証明書を取得します。 |
複数のドメイン名をサポートする必要がある場合、または複数のサーバー証明書を使用する必要がある場合は、TCP/SSL リスナーを作成した後に追加の証明書を追加できます。 詳細については、「追加証明書の追加」をご参照ください。
-
SSL 証明書の設定 ページで、サーバー証明書 ドロップダウンリストから証明書を選択します。
サーバー証明書が利用できない場合は、ドロップダウンリストでSSL 証明書の作成をクリックして、証明書管理サービスコンソールに移動します。コンソールで、サーバー証明書を購入またはアップロードできます。詳細については、「公式証明書を購入する」および「SSL 証明書をアップロードする」をご参照ください。
-
TLS セキュリティポリシー を選択します。相互認証の有効化 を行わない場合は、次へ をクリックします。
ドロップダウンリストでTLS セキュリティポリシーの作成をクリックして、カスタムTLSセキュリティポリシーを作成できます。
-
任意:相互認証の有効化 を有効にします。 CA 証明書 ドロップダウンリストで、CA 証明書を選択します。
CA 証明書がない場合は、ドロップダウンリストで CA 証明書の購入 をクリックして新しい証明書を作成します。詳細については、「プライベート CA を購入して有効化する」をご参照ください。
後で TCP/SSL リスナーの詳細ページの SSL 証明書 セクションで 相互認証 を切り替えることができます。
ステップ3:サーバーグループの選択
サーバーグループの選択ページで、次のパラメーターを設定し、次へをクリックします。
|
パラメーター |
説明 |
|
サーバーグループタイプ |
サーバータイプと IP タイプの両方がサポートされています。 |
|
サーバーグループ |
指定したタイプのバックエンドサーバーグループを選択してください。 |
|
重み |
ターゲットサーバーグループの重みを設定してください。 重みが大きいほど、リスナーはより多くのリクエストをサーバーグループに転送します。 有効な値: 0~1000。 デフォルト値: 1000。 |
|
[サーバグループの追加] |
重要
複数サーバーグループは、許可リストに登録されたユーザーのみが利用できる機能です。 この機能を使用するには、アカウントマネージャーに連絡してアクセスを申請してください。 サーバグループの追加 をクリックして、複数のサーバーグループを追加します。 複数のサーバーグループを追加すると、NLB インスタンスは各サーバーグループの重みに基づいて新しい接続を分散します。 リスナーには最大 5 個のサーバーグループを追加できます。 複数のサーバーグループを使用する場合、少なくとも1つのサーバーグループの重みが0より大きい必要があり、すべてのサーバーグループが同じバックエンドプロトコルを使用する必要があります。 各サーバーグループは最小のスケジューリング単位です。 同じIPアドレスを持つバックエンドサーバーが異なるサーバーグループに存在する場合でも、それらは別々のバックエンドと見なされ、独立してトラフィックを受信します。 |
-
サーバーグループのバックエンドプロトコルは TCP である必要があります。 トラフィックが NLB インスタンスを通過した後、NLB インスタンスは SSL 暗号化を終端します。 バックエンドサーバーは SSL 暗号文を処理する必要がなくなります。
-
TCP/SSL リスナーを クライアントアドレスの保持 が有効になっているサーバーグループに関連付けることはできません。 作成するサーバーグループでは、この機能が無効になっていることを確認してください。
ステップ4:設定の確認
設定の確認 ページで、設定を確認し、送信 をクリックします。
TCP/SSL リスナーのクイック作成
左側のナビゲーションウィンドウで、を選択します。
-
インスタンス ページで、目的のインスタンスを見つけ、その ID をクリックします。
-
リスナー タブで、リスナーのクイック作成 をクリックします。表示されるダイアログボックスで、次のパラメーターを設定し、OK をクリックします。
パラメーター
説明
[リスナープロトコルの選択]
リスナープロトコルを選択してください。 この例では、 [TCPSSL] を選択します。
[リスナーポート]
バックエンドサーバーへのリクエストを受信および転送するために使用するリスナーポートを指定してください。
一般的に使用されるポートをクリックするか、ポート番号を入力できます。 有効なポート範囲は 1~65535 です。
[サーバー証明書]
ドロップダウンリストからサーバー証明書を選択してください。
使用できるサーバー証明書がない場合は、SSL 証明書の作成 をクリックして新しい証明書を作成します。詳細については、「公式証明書を購入する」をご参照ください。
[TLS セキュリティポリシー]
ドロップダウンリストからTLSセキュリティポリシーを選択してください。
ドロップダウンリストでTLS セキュリティポリシーの作成をクリックして、カスタム TLS セキュリティポリシーを作成できます。
[サーバーグループ]
サーバーグループタイプを選択し、対応するバックエンドサーバーグループを選択してください。 複数のサーバーグループを追加し、重みを設定できます。 詳細については、「ステップ3:サーバーグループの選択」をご参照ください。
関連ドキュメント
-
チュートリアル:
-
ネットワークイングレスに NLB インスタンスをデプロイし、SSL 証明書を設定して一方向認証で TLS オフロードを実装する必要がある場合は、「NLBを使用したTCP/SSLオフロード (一方向認証) の実装」をご参照ください。
-
ネットワークイングレスに NLB インスタンスをデプロイし、SSL 証明書と CA 証明書を設定して相互認証で TLS オフロードを実装する必要がある場合は、「NLBを使用したTCP/SSLオフロード (相互認証) の実装」をご参照ください。
-
-
APIリファレンス:
-
CreateListener:Network Load Balancer (NLB) インスタンスの TCP、UDP、または TCP/SSL リスナーを作成します。
-
DeleteListener:NLB インスタンスのリスナーを削除します。
-
ListListeners:NLB インスタンスのリスナーを照会します。
-
UpdateListenerAttribute:NLB インスタンスのリスナーの属性を更新します。
-
StartListener:NLB インスタンスのリスナーを開始します。
-
StopListener:NLB インスタンスのリスナーを停止します。
-
GetListenerAttribute:NLB インスタンスのリスナーの詳細を照会します。
-
GetListenerHealthStatus:NLB インスタンスのリスナーのヘルスステータスを照会します。
-