パフォーマンスと大規模な TLS オフロードに対する要件が高いシナリオで、Network Load Balancer (NLB) インスタンスに TCP リクエストを転送させる場合は、NLB インスタンスに TCP/SSL リスナーを追加できます。
前提条件
NLB インスタンスが作成されていること。詳細については、「NLB インスタンスの作成と管理」をご参照ください。
サーバーグループが作成されていること。詳細については、「NLB サーバーグループ」をご参照ください。
操作手順
以下のいずれかの方法で TCP/SSL リスナーを作成できます。
TCP/SSL リスナーの追加:標準的な設定方法です。リスナーがポート範囲でリッスンするように有効化し、詳細設定を構成できます。
TCP/SSL リスナーの追加 (クイック設定):クイック設定方法です。リスナープロトコル、リスナーポート、サーバー証明書、TLS セキュリティポリシー、およびサーバーグループを指定するだけで済みます。
TCP/SSL リスナーの追加
ステップ 1:リスナーの設定
NLB コンソールにログインします。
上部のナビゲーションバーで、NLB インスタンスがデプロイされているリージョンを選択します。
[インスタンス] ページで、管理する NLB インスタンスを見つけ、次のいずれかの方法でリスナー設定ウィザードを開きます。
[操作] 列の [リスナーの作成] をクリックします。
NLB インスタンスの ID をクリックし、[リスナー] タブをクリックします。[リスナー] タブで、リスナーリストの上にある [リスナーの作成] をクリックします。
インスタンス ID をクリックします。インスタンス詳細ページで、ウィザードの [リスナーの作成] をクリックします。
インスタンス ID をクリックします。インスタンス詳細ページの右上隅にある [リスナーの作成] をクリックします。
[リスナーの設定] ステップで、パラメーターを設定し、[次へ] をクリックします。以下の表にパラメーターを示します。
パラメーター
操作手順
リスナープロトコル
リスナープロトコルを選択します。この例では、[TCPSSL] が選択されています。
[複数ポートのリッスン/転送]
リスナーがポート範囲でリッスンするかどうかを指定します。この機能を有効にすると、NLB インスタンスは指定されたリスナーポート範囲内のすべてのポートでリッスンし、それらのポート宛てのリクエストをバックエンドサーバーにリダイレクトします。
説明この機能は、ポート範囲でリッスンするリスナーに関連付けられたサーバーグループで有効にする必要があります。
[リスナーポート範囲]
リスナーがポート範囲でリッスンするように有効にする場合は、最初と最後のポートを指定してリスナーポート範囲を定義します。
重要リスナーポート範囲は、リスナーの作成後に変更することはできません。
リスナーポート
NLB インスタンスがリッスンする [ポート] を指定します。NLB インスタンスはこのポートを使用してリクエストを受信し、バックエンドサーバーに転送します。
一般的に使用されるポートを選択するか、ポート番号を入力できます。有効値:1~65535。
[ポート範囲でリッスン] が有効になっている場合、リスナーポートを設定する必要はありません。
[リスナー名]
リスナーの名前を入力します。
[タグ]
[タグキー] と [タグ値] パラメーターを設定してタグを追加します。1 つ以上のタグを追加できます。
タグを指定すると、[リスナー] タブでタグによってリスナーをフィルターできます。
[詳細設定]
[変更] をクリックして詳細設定を構成します。
アイドル接続タイムアウト期間
アイドル状態の TCP/SSL 接続のタイムアウト期間を指定します。タイムアウト期間内にリクエストが受信されない場合、NLB は現在の接続を閉じます。別のリクエストが受信されると、NLB は新しい接続を確立します。
単位:秒。有効値:1~900。デフォルト値:900。
[新規接続の制限]
新規接続数を制限するかどうかを指定します。
[秒間最大新規接続数]
[新規接続の制限] をオンにした場合は、各ゾーンでリスナーが処理できる秒間最大新規接続数を指定する必要があります。各ゾーンは仮想 IP アドレス (VIP) を提供します。
重要この値は現在のリスナーにのみ適用されます。他のリスナーへの接続は影響を受けません。他のリスナーの速度制限値を確認するには、それらのリスナーの設定を確認してください。
プロキシプロトコルの有効化
Proxy Protocol を有効にするかどうかを指定します。Proxy Protocol を有効にすると、クライアント IP アドレスがバックエンドサーバーに渡されます。
詳細については、「NLB がクライアント IP アドレスを保持し、バックエンドサーバーに渡すように有効化する」をご参照ください。
重要Proxy Protocol は、プロキシサーバーとバックエンドサーバーの両方で有効になっている場合にのみ有効になります。バックエンドサーバーが Proxy Protocol ヘッダーを解析できないにもかかわらず Proxy Protocol が有効になっている場合、バックエンドサーバーで解析エラーが発生し、サービスの可用性が損なわれる可能性があります。
ALPN ポリシーの有効化
アプリケーション層プロトコルネゴシエーション (ALPN) を有効にするかどうかを指定します。ALPN を使用すると、クライアントとサーバーは通信に使用するプロトコルをより適切に管理できます。これにより、通信の効率とセキュリティが向上します。たとえば、HTTP 2.0 を優先的に使用すると、レイテンシーと帯域幅の消費を削減できます。
定義:ALPN は、クライアントとサーバーが TLS ハンドシェイク中にアプリケーション層プロトコルをネゴシエートできるようにする TLS 拡張機能です。これにより、クライアントとサーバーは、HTTP 1.0、HTTP 1.1、HTTP 2.0 などの最適なプロトコルを使用して通信できます。
注意:ALPN は TLS ハンドシェイクの拡張機能です。TCP/SSL リスナーを作成し、NLB インスタンスで ALPN を有効にすると、クライアントと NLB インスタンスの間で TLS ハンドシェイクが実行されます。クライアントはサポートされているプロトコルのリストを NLB に送信します。NLB はこれらのプロトコルのいずれかを使用し、ハンドシェイクが完了した後にクライアントにプロトコルを通知します。
[ALPN ポリシー]
ALPN を有効にした後、ALPN ポリシーを選択します。
[HTTP1Only]:HTTP 1.x のみを使用します。HTTP 1.1 の優先度は HTTP 1.0 よりも高くなります。
[HTTP2Only]:HTTP 2.0 のみを使用します。
[HTTP2Optional]:HTTP 2.0 よりも HTTP 1.x を優先的に使用します。HTTP 1.1 の優先度は HTTP 1.0 よりも高く、HTTP 1.0 の優先度は HTTP 2.0 よりも高くなります。
[HTTP2Preferred]:HTTP 1.x よりも HTTP 2.0 を優先的に使用します。HTTP 2.0 の優先度は HTTP 1.1 よりも高く、HTTP 1.1 の優先度は HTTP 1.0 よりも高くなります。
[HTTP2Optional] または [HTTP2Preferred] を選択する場合は、バックエンドサーバーが HTTP 1.x と HTTP 2.0 の両方をサポートしていることを確認してください。バックエンドサーバーと NLB インスタンスでサポートされている HTTP プロトコルのバージョンが異なる場合、NLB は期待どおりにリクエストをバックエンドサーバーに転送できません。
gRPC は HTTP/2.0 を使用するプロトコルであるため、リスナーが gRPC リクエストをチェックする場合は [HTTP2Only] を選択してください。
ステップ 2:SSL 証明書の設定
TCP/SSL リスナーを作成するには、安全なデータ転送を確保するために、ID 認証用の SSL 証明書を設定する必要があります。
証明書 | 操作手順 | 一方向認証に必要 | 相互認証に必要 |
サーバー証明書 | サーバー証明書は、サーバーの ID を認証するために使用されます。 ご利用のブラウザは、サーバーから送信された証明書が信頼できる認証局 (CA) によって署名および発行されているかどうかを確認します。詳細については、「SSL 証明書とは」をご参照ください。 | はい Certificate Management Service コンソールでサーバー証明書を購入またはアップロードできます。NLB は Certificate Management Service から証明書を取得して使用します。 | はい Certificate Management Service コンソールでサーバー証明書を購入またはアップロードできます。NLB は Certificate Management Service から証明書を取得して使用します。 |
CA 証明書 | CA 証明書は、サーバーがクライアント証明書の署名を検証するために使用されます。署名が無効な場合、接続リクエストは拒否されます。 説明 クライアント証明書は、クライアントがサーバーと通信する際にクライアントの ID を認証するために使用されます。クライアント証明書はクライアントにのみインストールする必要があります。 | いいえ | はい Certificate Management Service コンソールで CA 証明書を購入できます。NLB は Certificate Management Service から証明書を取得して使用します。 |
複数のドメイン名にアクセスしたり、複数のサーバー証明書を追加したりする場合は、TCP/SSL リスナーに追加の証明書を追加できます。詳細については、「追加証明書の追加」をご参照ください。
[SSL 証明書の設定] ステップで、[サーバー証明書] ドロップダウンリストからサーバー証明書を選択します。
利用可能なサーバー証明書がない場合は、ドロップダウンリストの [SSL 証明書の作成] をクリックして Certificate Management Service コンソールに移動します。その後、サーバー証明書を購入またはアップロードできます。詳細については、「SSL 証明書の購入」および「SSL 証明書のアップロード」をご参照ください。
(オプション) [相互認証の有効化] をオンにします。[デフォルト CA 証明書] ドロップダウンリストから CA 証明書を選択します。
利用可能な CA 証明書がない場合は、[CA 証明書の購入] をクリックして CA 証明書を作成します。詳細については、「プライベート CA の購入と有効化」をご参照ください。
説明相互認証を無効にする場合は、次の操作を実行します。
[インスタンス] ページで、管理する NLB インスタンスの ID をクリックします。
[リスナー] タブで、TCP/SSL リスナーの ID をクリックします。
[リスナー詳細] タブで、[SSL 証明書] セクションに移動し、相互認証を無効にします。
[TLS セキュリティポリシー] を選択し、[次へ] をクリックします。
利用可能な TLS セキュリティポリシーがない場合は、[TLS セキュリティポリシーの作成] をクリックして作成します。詳細については、「TLS セキュリティポリシー」をご参照ください。
ステップ 3:サーバーグループの選択
[サーバーグループの選択] ステップで、バックエンドサーバーグループを選択し、バックエンドサーバーを確認してから、[次へ] をクリックします。
サーバーグループのバックエンドプロトコルは TCP である必要があります。NLB からバックエンドサーバーに送信されるリクエストは SSL 復号化され、バックエンドサーバーは受信したリクエストに対して SSL 復号化を実行する必要はありません。
TCP 上で SSL を使用するリスナーを、[クライアント IP の保持] が有効になっているサーバーグループに関連付けることはできません。この機能がサーバーグループで無効になっていることを確認してください。
ステップ 4:設定の確認
[設定の確認] ステップで、設定内容を確認し、[送信] をクリックします。
TCP/SSL リスナーの追加 (クイック設定)
この方法を選択した場合、リスナープロトコル、リスナーポート、サーバー証明書、TLS セキュリティポリシー、およびサーバーグループを指定するだけで済みます。
NLB コンソールにログインします。
上部のナビゲーションバーで、NLB インスタンスがデプロイされているリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
インスタンス ページで、管理する NLB インスタンスの ID をクリックします。
[リスナー] タブをクリックします。[リスナー] タブで、[リスナーのクイック作成] をクリックします。
[リスナーのクイック作成] ダイアログボックスで、パラメーターを設定し、[OK] をクリックします。以下の表にパラメーターを示します。
パラメーター
説明
リスナープロトコル
リスナープロトコルを選択します。この例では、[TCPSSL] が選択されています。
リスナーポート
リクエストを受信し、バックエンドサーバーに転送するために使用されるフロントエンドポートを指定します。
一般的に使用されるポートを選択するか、ポート番号を入力できます。有効値:1~65535。
[サーバー証明書]
ドロップダウンリストからサーバー証明書を選択します。
利用可能なサーバー証明書がない場合は、[SSL 証明書の作成] をクリックして作成します。詳細については、「SSL 証明書の購入」をご参照ください。
TLS セキュリティポリシー
ドロップダウンリストから TLS セキュリティポリシーを選択します。
利用可能な TLS セキュリティポリシーがない場合は、[TLS セキュリティポリシーの作成] をクリックして作成します。詳細については、「TLS セキュリティポリシー」をご参照ください。
[サーバーグループ]
バックエンドサーバーグループを選択します。
関連ドキュメント
チュートリアル:
NLB と SSL 証明書を設定して、一方向認証を使用しながら TCP 上で SSL オフロードを実行する方法の詳細については、「NLB を使用して TCP 上で SSL オフロードを有効にする (一方向認証)」をご参照ください。
NLB、SSL 証明書、および CA 証明書を設定して、相互認証を使用しながら TCP 上で SSL オフロードを実行する方法の詳細については、「NLB を使用して TCP 上で SSL オフロードを有効にする (相互認証)」をご参照ください。
関連 API:
CreateListener:NLB インスタンスの TCP、UDP、または TCP/SSL リスナーを作成します。
DeleteListener:NLB インスタンスからリスナーを削除します。
ListListeners:NLB インスタンスに追加されたリスナーを照会します。
UpdateListenerAttribute:NLB リスナーの設定を変更します。
StartListener:NLB リスナーを有効にします。
StopListener:NLB インスタンスのリスナーを無効にします。
GetListenerAttribute:NLB リスナーの詳細を照会します。
GetListenerHealthStatus:NLB リスナーのヘルスステータスを照会します。