サーバーグループは、クライアントリクエストをバックエンドサーバーにルーティングします。リスナーを追加する際には、サーバーグループを指定する必要があります。リスナーは、設定されたプロトコルとポートでクライアントの接続リクエストを受け入れ、トラフィックをサーバーグループに転送します。Network Load Balancer (NLB) は、ヘルスチェックを使用してバックエンドサーバーの可用性を判断します。
NLB サーバーグループのタイプと説明
サーバーグループタイプ | バックエンドサーバータイプ | 説明 |
サーバータイプ | バックエンドサーバーとして Elastic Compute Service (ECS) インスタンス、Elastic Network Interface (ENI)、および Elastic Container Instance (ECI) インスタンスをサポートします。 | 追加されたクラウドサーバーは、NLB インスタンスから転送されたリクエストを受信するために、サーバーグループと同じ Virtual Private Cloud (VPC) 内にある必要があります。 |
IP アドレスタイプ | バックエンドサーバーとして IP アドレスをサポートします。 | IP アドレスは、サーバーグループが属する VPC の CIDR ブロックに限定されません。リージョン間、VPC 間、またはオンプレミスのデータセンターにあるサーバーの IP アドレスを追加できます。これらの IP アドレスは、NLB インスタンスから転送されたリクエストを受信するバックエンドサービスとして機能します。
プライベート IP アドレスのみがサポートされています。パブリック IP アドレスはサポートされていません。 |
NLB インスタンスのバックエンドサーバーがリリースされたり、プライベート IP アドレスが変更されたりしても、NLB はバックエンドサーバー情報を自動的に更新しません。サービスの中断を防ぐため、バックエンドサーバーをリリースまたは変更する前に、NLB サーバーグループから削除する必要があります。
サーバーグループの作成
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 を持つリクエストは、同じバックエンドサーバーにハッシュされます。
重要QUIC は draft-ietf-quic-transport-10 に基づいて実装されており、急速に進化しています。そのため、すべての QUIC バージョンとの互換性は保証されません。本番環境にプロトコルを適用する前に、テストを実施することを推奨します。
[加重最小接続]:各バックエンドサーバーの重みとアクティブな接続数の両方に基づいてリクエストを分散します。バックエンドサーバーの重みが同じ場合、アクティブな接続数が最も少ないサーバーがより多くのリクエストを受信します。
バックエンドプロトコルが UDP の場合にのみ、QUIC ID ハッシュを選択できます。
[リソースグループの選択]
リソースグループを選択します。
[タグ]
[タグキー] と [タグ値] を設定します。
[IP プロトコルバージョン]
IP プロトコルバージョンを選択します:
[IPv4] (デフォルト):IPv4 バックエンドターゲットのみ追加できます。
[IPv4/v6 デュアルスタック]:IPv4 と IPv6 の両方のバックエンドターゲットを追加できます。
サーバーグループの VPC で IPv6 が有効になっていない場合、IPv4 のみ選択できます。
IP バージョン アフィニティ モード
[IP プロトコルバージョン] を [IPv4/v6 デュアルスタック] に設定した場合、[IP バージョンアフィニティモード] を設定できます:
[アフィニティなし] (デフォルト):ソースの IP バージョンに関係なく、スケジューリングアルゴリズムに基づいて正常なバックエンドサーバーにリクエストが転送されます。
[アフィニティ]:ソースの IP バージョンに基づいてリクエストが転送されます。IPv4 リクエストは IPv4 バックエンドサーバーにのみ転送され、IPv6 リクエストは IPv6 バックエンドサーバーにのみ転送されます。
[アフィニティ] を選択した場合、サーバーグループに正常な IPv4 と IPv6 の両方のターゲットが含まれていることを確認してください。そうでない場合、対応するプロトコルバージョンのリクエストは転送できません。
グレースフル・シャットダウン
接続ドレインを有効にするかどうかを選択します。この機能はデフォルトで無効になっています。
接続ドレインを有効にする場合は、[接続ドレインのタイムアウト] を設定する必要があります。値の範囲は 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 を [ヘルスチェックプロトコル] として選択できるのは、サーバーグループのバックエンドプロトコルが UDP の場合のみです。
ヘルスチェック方法
ヘルスチェックメソッドを選択します:
[GET]:応答パケットが 8 KB を超える場合、切り捨てられます。これはヘルスチェックの結果には影響しません。
[HEAD]:デフォルトでは HTTP ヘルスチェックに HEAD メソッドが使用されます。バックエンドサーバーが HEAD リクエストをサポートしていることを確認してください。バックエンドアプリケーションサーバーが HEAD メソッドをサポートしていないか、HEAD メソッドが無効になっている場合、ヘルスチェックが失敗する可能性があります。この場合、ヘルスチェックには GET メソッドを使用してください。
このパラメーターは、ヘルスチェックプロトコルが HTTP の場合にのみ有効になります。
[ヘルスチェックプロトコルバージョン]
HTTP バージョンを選択します:[HTTP1.0] (デフォルト) または [HTTP1.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 の購入 をクリックします。
ENI を選択するには、セカンダリ ENI がターゲット ECS インスタンスに アタッチ されており、[詳細モード] スイッチが有効になっていることを確認してください。次に、ターゲット ECS インスタンス ID の右側にある
アイコンをクリックし、ENI を選択します。サーバーグループの [IP プロトコルバージョン] が [IPv4/v6 デュアルスタック] の場合、[IP アドレス] テーブルヘッダーの横にある設定アイコンをクリックできます。表示される IP アドレス ダイアログボックスで、IP アドレスポリシーを選択します:
[IPv4 を優先]:プライマリ IPv4 アドレスが優先的に選択されます。
[IPv6 を優先]:利用可能な IPv6 アドレスが優先的に選択されます。NIC に複数の IPv6 アドレスがある場合、アドレスの順序に基づいて最初の利用可能な IPv6 アドレスが選択されます。
[デュアルスタック]:プライマリ IPv4 アドレスと最初の利用可能な IPv6 アドレスが選択されます。
このオプションはデフォルトの NIC アドレスを設定するだけであり、IP アドレス列で手動でアドレスを調整することは依然として可能です。
サーバータイプが [ECI] の場合、ターゲットサーバーを選択するか、右上隅の Elastic Container インスタンスの購入 をクリックします。
サーバーのポートと重みを設定し、OK をクリックします。
サーバーグループでマルチポート転送が有効になっている場合、バックエンドサーバーを追加する際にポートを指定する必要はありません。NLB はフロントエンドリクエストのポートに基づいてトラフィックをバックエンドサーバーに転送します。
デフォルトの重みは 100 です。重みが大きいサーバーほど多くのリクエストを受信します。
アイコンにカーソルを合わせると、サーバーの重みとポートを一括で変更できます:[以下に複製] をクリック:現在のサーバーの重みまたはポートを変更すると、それ以下のすべてのサーバーの重みまたはポートも変更されます。
[以上に複製] をクリック:現在のサーバーの重みまたはポートを変更すると、それ以上のすべてのサーバーの重みまたはポートも変更されます。
[すべてに複製] をクリック:現在のサーバーの重みまたはポートを変更すると、サーバーグループ内のすべてのサーバーの重みまたはポートも変更されます。
[リセット] をクリック:
[重み] 列で [リセット] をクリック:サーバーグループ内のすべてのサーバーの重みをデフォルト値にリセットします。
[ポート] 列で [リセット] をクリック:サーバーグループ内のすべてのサーバーのポート番号をクリアします。
警告重みを 0 に設定すると、そのサーバーは新しいリクエストを受信しなくなります。
IP アドレスをバックエンドサービスとして追加
IP タイプのサーバーグループを作成した場合、転送されたリクエストを処理するために IP アドレスをバックエンドサービスとして追加する必要があります。すべてのポートでポートフォワーディングが有効になっているサーバーグループに、同じ IP アドレスを追加することはできません。
同じ VPC 内の NLB インスタンスの VIP や、 以降に同じ VPC で作成された ALB インスタンスの VIP を追加することはできません。
プライベート IP アドレスのみがサポートされています。パブリック IP アドレスはサポートされていません。
サーバーグループ ページで、管理したいサーバーグループを見つけ、次のいずれかの方法で IP アドレスを追加します。
操作 列で、バックエンドサーバーの変更 をクリックします。
サーバーグループ ID をクリックします。
バックエンドサーバーグループの詳細ページで、バックエンドサーバー タブをクリックし、IP アドレスの追加 をクリックします。
[サーバーの選択] タブの [バックエンドサーバーの追加] パネルで、IP アドレスを入力し、[次へ] をクリックします。
追加した IP アドレスに対して、複数のポートと重みを設定できます。
ポート/重み タブで、追加した IP アドレスのポートと重みを設定し、OK をクリックします。
サーバーグループでマルチポート転送が有効になっている場合、バックエンドサーバーを追加する際にポートを指定する必要はありません。NLB はフロントエンドリクエストのポートに基づいてトラフィックをバックエンドサーバーに転送します。
デフォルトの重みは 100 です。重みが大きいサーバーほど多くのリクエストを受信します。
アイコンにカーソルを合わせると、サーバーの重みとポートを一括で変更できます:[以下に複製] をクリック:現在のサーバーの重みまたはポートを変更すると、それ以下のすべてのサーバーの重みまたはポートも変更されます。
[以上に複製] をクリック:現在のサーバーの重みまたはポートを変更すると、それ以上のすべてのサーバーの重みまたはポートも変更されます。
[すべてに複製] をクリック:現在のサーバーの重みまたはポートを変更すると、サーバーグループ内のすべてのサーバーの重みまたはポートも変更されます。
[リセット] をクリック:
[重み] 列で [リセット] をクリック:サーバーグループ内のすべてのサーバーの重みをデフォルト値にリセットします。
[ポート] 列で [リセット] をクリック:サーバーグループ内のすべてのサーバーのポート番号をクリアします。
警告重みを 0 に設定すると、そのサーバーは新しいリクエストを受信しなくなります。
その他の操作
操作 | 手順 |
サーバーグループの基本情報を編集する | サーバーグループ ページで、対象のサーバーグループを見つけ、基本情報の変更 をクリックし、基本情報の変更 ダイアログボックスで、スケジューリングアルゴリズム、IP バージョンアフィニティモード (サーバーグループの [IP プロトコルバージョン] が [IPv4/v6 デュアルスタック] の場合のみ利用可能)、接続ドレイン、およびクライアント IP の保持パラメーターを変更します。 |
ヘルスチェックを編集する | サーバーグループ ページで、対象のサーバーグループを見つけ、ヘルスチェック設定の変更 をクリックします。ヘルスチェック設定の変更 ダイアログボックスで、ヘルスチェック設定パラメーターを変更します。 警告
|
バックエンドサーバーを削除する | 必要に応じて、サーバーグループからバックエンドサーバーを削除できます。 警告 バックエンドサーバーをサーバーグループから直接削除すると、業務に支障をきたす可能性があります。まず、バックエンドサーバーの重みを 0 に設定してから、サーバーグループから削除してください。
|
サーバーグループを削除する | どのリスナー転送ルールにも関連付けられていない場合、サーバーグループを削除できます。サーバーグループを削除しても、サーバーには影響しません。登録済みの ECS、ENI、または ECI インスタンスが不要になった場合は、インスタンスを停止またはリリースできます。 サーバーグループ ページで、目的のサーバーグループを見つけ、操作 列で を選択し、次に OK をクリックします。 |
参照
CreateServerGroup:NLB インスタンスのサーバーグループを作成します。
DeleteServerGroup:NLB インスタンスのサーバーグループを削除します。
AddServersToServerGroup:NLB インスタンスのサーバーグループにバックエンドサーバーを追加します。
RemoveServersFromServerGroup:NLB インスタンスのサーバーグループからバックエンドサーバーを削除します。
UpdateServerGroupAttribute:NLB インスタンスのサーバーグループの設定を更新します。
> 削除