サーバーグループは、クライアントリクエストをバックエンドサーバーにルーティングします。リスナーを追加する場合は、サーバーグループを指定する必要があります。リスナーは、設定したプロトコルとポートに基づいて、トラフィックを対応するサーバーグループに転送します。Network Load Balancer (NLB) は、ヘルスチェックによりバックエンドサーバーのヘルスを監視します。
NLB サーバーグループのタイプ
|
サーバーグループタイプ |
バックエンドサーバータイプ |
説明 |
|
サーバータイプ |
ECS、ENI、および ECI インスタンスをバックエンドサーバーとして追加できます。 |
NLB インスタンスからリクエストを受信するには、バックエンドサーバーがサーバーグループと同じ VPC に存在する必要があります。 |
|
IP タイプ |
IP アドレスをバックエンドサーバーとして追加できます。 |
IP アドレスは、サーバーグループが属する VPC の CIDR ブロックに限定されません。リージョン間、VPC 間、またはオンプレミスデータセンターのサーバーの IP アドレスを追加できます。これらの IP アドレスは、NLB インスタンスからリクエストを受信するバックエンドサーバーとして機能します。
プライベート IP アドレスのみがサポートされています。パブリック IP アドレスはサポートされていません。 |
バックエンドサーバーがリリースされた場合、またはそのプライベート IP アドレスが変更された場合、NLB はバックエンドサーバーの情報を自動的に更新しません。サービスの中断を防ぐために、サーバーをリリースするか構成を変更する前に、サーバーグループからサーバーを削除してください。
サーバーグループの作成
- NLBコンソールにログインします。
上部のナビゲーションバーで、NLBインスタンスがデプロイされています。
左側のナビゲーションウィンドウで、を選択します。
サーバーグループページで[サーバーグループの作成] をクリックします。
-
サーバーグループの作成 ダイアログボックスで、以下の設定を行い、作成 をクリックします。
パラメーター
説明
[サーバーグループタイプ]
サーバーグループタイプを選択します:
-
[サーバータイプ]:ECS、ENI、ECI インスタンスをバックエンドサーバーとして追加できます。
-
[IP アドレスタイプ]:IP アドレスをバックエンドサーバーとして追加できます。
プライベート IP アドレスのみサポートされています。パブリック IP アドレスはサポートされていません。
[VPC]
ドロップダウンリストから VPC を選択します。
[バックエンドサーバープロトコル]
バックエンドプロトコルを選択します:
-
TCP:サーバーグループを TCP および TCP/SSL リスナーに関連付けます。
-
UDP:サーバーグループを UDP リスナーに関連付けます。
[スケジューリングアルゴリズム]
スケジューリングアルゴリズムを選択します:
-
[ラウンドロビン]:リクエストをバックエンドサーバーに順番に分散します。
-
[重み付けラウンドロビン] (デフォルト):リクエストを重みに基づいてバックエンドサーバーに分散します。重みが大きいバックエンドサーバーほど、多くのリクエストが振り分けられます。
-
[ソース IP ハッシュ]:ソース IP アドレスに基づいてコンシステントハッシュを使用します。同じソース IP アドレスからのリクエストは、同じバックエンドサーバーにルーティングされます。
-
[4 タプルハッシュ]:4つの要素 (ソース IP、宛先 IP、ソースポート、宛先ポート) に基づいてコンシステントハッシュを使用します。同じストリームからのパケットは、同じバックエンドサーバーにルーティングされます。
-
[QUIC ID ハッシュ]:QUIC 接続 ID に基づいてコンシステントハッシュを使用します。同じ QUIC ID を持つリクエストは、同じバックエンドサーバーにルーティングされます。
バックエンドプロトコルが UDP の場合にのみ、QUIC ID ハッシュを選択できます。
QUIC プロトコルは急速に進化しています。このアルゴリズムは draft-ietf-quic-transport-10 に基づいて実装されています。すべての QUIC バージョンとの互換性は保証されていません。本番環境でこのアルゴリズムを使用する前に、十分なテストを実行することを推奨します。
-
[重み付け最小接続]:各バックエンドサーバーの重みと実際の負荷 (接続数) の両方に基づいてリクエストを分散します。バックエンドサーバーの重みが同じ場合、接続数が最も少ないサーバーに、より多くのリクエストが振り分けられます。
[リソースグループ]
サーバーグループのリソースグループを選択します。
[タグ]
[タグキー]と[タグ値]を設定します。
[IP バージョン]
IP バージョンを選択します:
-
IPv4 (デフォルト):IPv4 バックエンドサーバーのみを追加できます。
-
[IPv4/IPv6 デュアルスタック]:IPv4 と IPv6 の両方のバックエンドサーバーを追加できます。
選択した VPC で IPv6 が有効になっていない場合は、IPv4 のみを選択できます。
[IP バージョンアフィニティ]
[IP バージョン]を[IPv4/IPv6 デュアルスタック]に設定した場合、[IP バージョンアフィニティ]を設定できます:
-
[アフィニティなし] (デフォルト):リクエストは、ソースの IP バージョンに関係なく、スケジューリングアルゴリズムに基づいて正常なバックエンドサーバーに分散されます。
-
[アフィニティモード]:リクエストは、ソース IP バージョンに基づいてルーティングされます。IPv4 リクエストは IPv4 バックエンドサーバーにのみルーティングされ、IPv6 リクエストは IPv6 バックエンドサーバーにのみルーティングされます。
[アフィニティモード]を選択する場合は、サーバーグループに正常な IPv4 および IPv6 バックエンドが含まれていることを確認してください。そうでない場合、対応する IP バージョンのリクエストは正しく転送できません。
[グレースフル・シャットダウン]
コネクションドレイニングを有効にするかどうかを指定します。この機能はデフォルトで無効になっています。
コネクションドレイニングを有効にする場合は、[接続ドレインタイムアウト]も設定する必要があります。タイムアウトは 0〜900 秒の範囲で設定できます。値 0 は、接続がすぐにドレインされることを示します。
バックエンドサーバーが削除されたり、ヘルスチェックに失敗した場合:
-
コネクションドレイニングが無効 (デフォルト) の場合、既存の接続はアクティブに中断されません。クライアントが切断するか、セッションが期限切れになった後にのみ中断されます。
-
コネクションドレイニングが有効な場合、既存の接続はタイムアウトが終了するまで維持されます。その後、接続はアクティブに閉じられ、スムーズなサービス移行が保証されます。
[クライアントアドレスの保持]
クライアント IP の保持を有効にするかどうかを指定します。この機能を有効にすると、バックエンドサーバーはクライアントのソース IP アドレスを取得できます。
この機能を無効にすると、バックエンドサーバーから同じ NLB インスタンスへのアクセスが可能になります。クライアントのソース IP アドレスを取得するには、リスナーで Proxy Protocol を有効にすることができます。
IP ベースのサーバーグループでクライアント IP の保持を有効にしても、クライアントのソース IP アドレスはバックエンドサーバーに自動的に渡されません。ソース IP アドレスを取得するには、リスナーで Proxy Protocol を使用する必要があります。
[フルポート転送]
マルチポート転送を有効にするかどうかを指定します。この機能を有効にすると、バックエンドサーバーを追加するときにポートを指定する必要はありません。 NLB は、受信リクエストのポートに基づいて、バックエンドサーバーにトラフィックを転送します。
リスナーでマルチポートフォワーディング機能を有効にする場合は、バックエンドサーバーグループでもこの機能を有効にする必要があります。
[ヘルスチェック]
ヘルスチェックを有効にするかどうかを指定します。
[ヘルスチェックの設定]
ヘルスチェックを有効にすると、変更をクリックしてヘルスチェック設定を変更できます。
[ヘルスチェックプロトコル]
ヘルスチェックのプロトコルを選択します:
-
TCP (デフォルト):SYN パケットを送信して、サーバーポートに到達可能かどうかを確認します。
-
HTTP:HEAD または GET リクエストを送信して、サーバー上のアプリケーションが正常であるかどうかを確認します。
-
UDP:ICMP Echo Request および UDP プローブパケットを送信して、ステータス情報を取得します。
ヘルスチェックプロトコルで[ヘルスチェックプロトコル] を選択できるのは、サーバーグループのバックエンドプロトコルがUDP の場合のみです。
[ヘルスチェック方法]
ヘルスチェック方式を選択します:
-
GET:応答パケットが 8 KB を超える場合、パケットは切り捨てられます。これはヘルスチェックの結果には影響しません。
-
HEAD:HTTP リスナーのヘルスチェックでは、デフォルトで HEAD が使用されます。バックエンドサーバーが HEAD リクエストをサポートしていることを確認してください。バックエンドアプリケーションが HEAD リクエストをサポートしていないか、無効にしている場合、ヘルスチェックが失敗する可能性があります。この場合は、GET 方式を使用してください。
このパラメーターは、ヘルスチェックプロトコルがHTTP の場合にのみ有効です。
[ヘルスチェックプロトコルバージョン]
HTTP バージョンを選択します:HTTP/1.0 (デフォルト) またはHTTP/1.1。
-
ヘルスチェックプロトコルのバージョンは、バックエンドアプリケーションでサポートされている HTTP バージョンと一致している必要があります。そうでない場合、ヘルスチェックが失敗する可能性があります。バックエンドサーバーが:
-
HTTP 1.0 のみをサポートしている場合は、HTTP/1.0 を選択する必要があります。
-
HTTP 1.1 のみをサポートしている場合は、HTTP/1.1 を選択する必要があります。
-
HTTP 1.0 と HTTP 1.1 の両方をサポートしている場合は、どちらのバージョンでも選択できます。
-
このパラメーターは、ヘルスチェックプロトコルが HTTP の場合にのみ有効です。
[ヘルスチェックポート]
ヘルスチェックサービスがバックエンドサーバーへのアクセスに使用するプローブポートを選択します。
-
[バックエンドサーバーポート]:デフォルトでは、ヘルスチェックサービスはバックエンドサーバーのポートを使用します。
-
[カスタムポート]:ヘルスチェック用のポートを指定します。
マルチポートフォワーディングを有効にする場合は、ヘルスチェックポートを指定する必要があります。
[ヘルスチェックパス]
ヘルスチェックページの URL を入力します。
このパラメーターは、ヘルスチェックプロトコルがHTTP の場合にのみ有効です。
[ヘルスチェックドメイン名]
ヘルスチェック用のドメイン名を入力します。
-
[バックエンドサーバーのイントラネット IP] (デフォルト):バックエンドサーバーのプライベート IP アドレスがヘルスチェック用のドメイン名として使用されます。
-
[カスタムドメイン名]:ドメイン名を入力します。
このパラメーターは、ヘルスチェックプロトコルがHTTP の場合にのみ有効です。
[ヘルスチェックステータスコード]
ヘルスチェックが成功したことを示すステータスコードを選択します。http_2xx (デフォルト)、http_3xx、http_4xx、http_5xx を選択できます。
このパラメーターは、ヘルスチェックプロトコルがHTTP の場合にのみ有効です。
[カスタムリクエスト / レスポンス]
UDP リスナーのヘルスチェックを設定する際に、[カスタムリクエスト / レスポンス]を有効にできます。次に、[カスタムリクエスト]フィールドにリクエスト内容 (例:youraccountID) を入力し、[カスタムレスポンス]フィールドに期待されるレスポンス (例:slb123) を入力します。
また、バックエンドサーバー上のアプリケーションに対応するヘルスチェック応答ロジックを追加する必要があります。たとえば、アプリケーションが
youraccountID を含むリクエストを受信した場合、slb123 を含むレスポンスを返す必要があります。
NLB インスタンスがバックエンドサーバーから期待される応答を受信した場合、ヘルスチェックは成功します。そうでない場合、ヘルスチェックは失敗します。この方法により、UDP ヘルスチェックの信頼性が最大限に高まります。
このパラメーターは、ヘルスチェックプロトコルがUDP の場合にのみ有効です。
[応答タイムアウト期間]
ヘルスチェックリクエストへの応答を待つ期間。バックエンドサーバーが指定された期間内に応答しない場合、ヘルスチェックは失敗します。
[ヘルスチェック間隔]
ヘルスチェックが実行される間隔。
[ヘルスチェックプロトコル]をUDP に設定する場合、[ヘルスチェック間隔]の値が[応答タイムアウト間隔]の値以上であることを確認してください。これにより、タイムアウトが原因で UDP プローブが応答なしと誤って判断されるのを防ぎます。
[正常しきい値]
バックエンドサーバーのステータスを非正常から正常に変更するために必要な連続したヘルスチェックの成功回数。
[異常しきい値]
バックエンドサーバーのステータスを正常から非正常に変更するために必要な連続したヘルスチェックの失敗回数。
-
バックエンドサーバーの追加 (サーバータイプ)
サーバータイプのサーバーグループを作成した場合は、受信リクエストを処理するためにバックエンドサーバーを追加する必要があります。マルチポートフォワーディングが有効なサーバーグループには、同じ ECS、ENI、または ECI インスタンスを複数回追加できません。
-
サーバーグループ ページで、管理するサーバーグループを見つけ、次のいずれかの方法でバックエンドサーバーページを開きます。
-
操作 列で、バックエンドサーバーの変更 をクリックします。
-
サーバーグループ ID をクリックします。サーバーグループの詳細ページで、バックエンドサーバー タブをクリックします。
-
-
バックエンドサーバー タブで、バックエンドサーバーの追加 をクリックします。
-
バックエンドサーバーの追加 パネルで、サーバータイプ を選択し、次へ をクリックします。
-
ECS/ENI として ECS の購入 を選択した場合は、対象サーバーを選択するか、右上の ECS の購入 をクリックします。
ENI を選択するには、対象の ECS インスタンスにセカンダリ ENI がアタッチされていること、および 上級モード スイッチがオンになっていることを確認してください。その後、対象の ECS インスタンス ID の右側にある
アイコンをクリックし、ENI を選択します。サーバーグループの IP バージョン が IPv4/IPv6 デュアルスタック の場合は、IP 列ヘッダーの横にある設定アイコンをクリックします。IP アドレス ダイアログボックスで、IP アドレスポリシーを選択します:
-
[IPv4 優先]:使用可能なプライマリ IPv4 アドレスがデフォルトで選択されます。
-
[IPv6 優先]:使用可能な IPv6 アドレスがデフォルトで選択されます。ENI に複数の IPv6 アドレスがある場合は、リスト内の順序に基づいて、最初に使用可能な IPv6 アドレスが選択されます。
-
[デュアルスタック]:使用可能なプライマリ IPv4 アドレスと、最初に使用可能な IPv6 アドレスが選択されます。
このオプションは、ENI に対してデフォルトで選択される IP アドレスのみを設定します。IP アドレス列では、引き続き手動で選択を変更できます。
-
-
ECI として ECI を選択した場合は、対象サーバーを選択するか、右上の Elastic Container インスタンスの購入 をクリックします。
-
-
サーバーのポートと重みを設定し、OK をクリックします。
サーバーグループでマルチポートフォワーディングが有効な場合、バックエンドサーバーを追加する際にポートを指定する必要はありません。NLB は受信リクエストのポートに基づいて、バックエンドサーバーにトラフィックを転送します。
デフォルトの重みは 100 です。重みが大きいサーバーほど、多くのリクエストを受信します。
アイコンにポインターを合わせると、複数サーバーの重みとポートを一括で変更できます:-
下方向へコピー をクリックします:現在のサーバーの重みまたはポートを変更すると、その下にあるすべてのサーバーの重みまたはポートが同じ値に変更されます。
-
上方向へコピー をクリックします:現在のサーバーの重みまたはポートを変更すると、その上にあるすべてのサーバーの重みまたはポートが同じ値に変更されます。
-
すべてコピー をクリックします:現在のサーバーの重みまたはポートを変更すると、サーバーグループ内のすべてのサーバーの重みまたはポートが同じ値に変更されます。
-
リセット をクリックします:
-
重み の横にある リセット をクリックすると、サーバーグループ内のすべてのサーバーの重みがデフォルト値に復元されます。
-
ポート の横にある リセット をクリックすると、サーバーグループ内のすべてのサーバーのポート番号がクリアされます。
-
警告サーバーの重みを 0 に設定すると、そのサーバーは新しいリクエストを受信しなくなります。
-
バックエンドサーバーの追加 (IP タイプ)
IP タイプのサーバーグループを作成した場合は、受信リクエストを処理するために、バックエンドサーバーとして IP アドレスを追加する必要があります。マルチポートフォワーディングが有効なサーバーグループには、同じ IP アドレスを複数回追加できません。
-
同じ VPC 内の NLB インスタンスの仮想 IP アドレス (VIP)、または 以降に同じ VPC 内で作成された ALB インスタンスの VIP は追加できません。
-
プライベート IP アドレスのみをサポートしています。パブリック IP アドレスはサポートしていません。
-
サーバーグループ ページで対象のサーバーグループを見つけ、次のいずれかの方法で IP アドレスを追加します。
-
操作 列で、バックエンドサーバーの変更 をクリックします。
-
サーバーグループ ID をクリックします。
-
-
サーバーグループの詳細ページで、バックエンドサーバー タブをクリックし、IP アドレスの追加 をクリックします。
-
バックエンドサーバーの追加 パネルの サーバーの選択 タブで IP アドレスを入力し、次へ をクリックします。
IP アドレスには、複数のポートと重みを設定できます。
-
ポート/重み タブで、追加した IP アドレスのポートと重みを設定し、OK をクリックします。
サーバーグループでマルチポートフォワーディングが有効な場合、バックエンドサーバーを追加する際にポートを指定する必要はありません。NLB は受信リクエストのポートに基づいて、バックエンドサーバーにトラフィックを転送します。
デフォルトの重みは 100 です。重みが大きいサーバーほど、多くのリクエストを受信します。
アイコンにポインターを合わせると、複数サーバーの重みとポートを一括で変更できます:-
下方向へコピー をクリックします:現在のサーバーの重みまたはポートを変更すると、その下にあるすべてのサーバーの重みまたはポートが同じ値に変更されます。
-
上方向へコピー をクリックします:現在のサーバーの重みまたはポートを変更すると、その上にあるすべてのサーバーの重みまたはポートが同じ値に変更されます。
-
すべてコピー をクリックします:現在のサーバーの重みまたはポートを変更すると、サーバーグループ内のすべてのサーバーの重みまたはポートが同じ値に変更されます。
-
リセット をクリックします:
-
重み の横にある リセット をクリックすると、サーバーグループ内のすべてのサーバーの重みがデフォルト値に復元されます。
-
ポート の横にある リセット をクリックすると、サーバーグループ内のすべてのサーバーのポート番号がクリアされます。
-
警告サーバーの重みを 0 に設定すると、そのサーバーは新しいリクエストを受信しなくなります。
-
その他の操作
|
操作 |
手順 |
|
基本情報の編集 |
サーバーグループ ページで対象のサーバーグループを見つけ、基本情報の変更 をクリックします。基本情報の変更 ダイアログボックスで、スケジューリングアルゴリズム、IP バージョンアフィニティ (サーバーグループの IP バージョン が IPv4/IPv6 デュアルスタック の場合にのみ利用可能)、接続ドレイン、クライアント IP の保持の設定を変更できます。 |
|
ヘルスチェック設定の編集 |
サーバーグループ ページで対象のサーバーグループを見つけ、ヘルスチェック設定の変更 をクリックします。ヘルスチェック設定の変更 ダイアログボックスで、ヘルスチェック設定を変更します。 警告
|
|
バックエンドサーバーの削除 |
必要に応じて、サーバーグループからバックエンドサーバーを削除できます。 警告
サーバーグループからバックエンドサーバーを直接削除すると、サービスが中断される可能性があります。これを回避するには、まずサーバーの重みを 0 に設定してから、サーバーグループから削除してください。
|
|
サーバーグループの削除 |
サーバーグループは、いずれのリスナー転送ルールにも関連付けられていない場合にのみ削除できます。サーバーグループを削除しても、バックエンドサーバーには影響しません。バックエンドサーバーとして登録した ECS、ENI、または ECI インスタンスが不要になった場合は、それらを停止または解放できます。 サーバーグループ ページで対象のサーバーグループを見つけ、操作 列で を選択し、OK をクリックします。 |
API リファレンス
-
CreateServerGroup:NLB インスタンスのサーバーグループを作成します。
-
DeleteServerGroup:NLB インスタンスのサーバーグループを削除します。
-
AddServersToServerGroup:NLB インスタンスのサーバーグループにバックエンドサーバーを追加します。
-
RemoveServersFromServerGroup:NLB インスタンスのサーバーグループからバックエンドサーバーを削除します。
-
UpdateServerGroupAttribute:NLB インスタンスのサーバーグループの構成を更新します。