サーバーグループは、クライアントリクエストをバックエンドサーバーにルーティングします。リスナーを追加するときは、サーバーグループを指定する必要があります。リスナーは、設定されたプロトコルとポートでクライアントの接続リクエストを受け入れ、トラフィックをサーバーグループに転送します。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 は、NLB インスタンスのバックエンドサーバーがリリースされたり、そのプライベート IP アドレスが変更されたりしても、バックエンドサーバー情報を自動的に更新しません。サービスの中断を防ぐために、バックエンドサーバーをリリースまたは変更する前に、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 ハッシュを選択できます。
リソースグループの選択
リソースグループを選択します。
タグ
[タグキー] と [タグ値] を設定します。
IPv6 のマウント
IPv6 アタッチメントを有効にするかどうかを選択します。
IPv6 アタッチメントを有効にすると、サーバーグループは IPv4 および IPv6 バックエンドサーバーを持つことができます。
IPv6 アタッチメントを有効にしない場合、サーバーグループは IPv4 バックエンドサーバーのみを持つことができます。
説明サーバーグループに選択された VPC で IPv6 が有効になっていない場合、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: HEAD メソッドは、デフォルトで HTTP ヘルスチェックに使用されます。バックエンドサーバーが 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/Elastic Network Interface (ENI)] を選択します。次に、ターゲットサーバーを選択するか、右上隅の ECS の購入 をクリックします。
説明ENI を選択するには、セカンダリ ENI がターゲット ECS インスタンスにアタッチされており、[詳細モード] スイッチが有効になっていることを確認してください。次に、ターゲット ECS インスタンス ID の右側にある
アイコンをクリックし、ENI を選択します。サーバータイプが [Elastic Container Instance 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 永続化パラメーターを変更します。 |
ヘルスチェックの編集 | サーバーグループ ページで、ターゲットサーバーグループを見つけ、ヘルスチェック設定の変更をクリックします。ヘルスチェック設定の変更 ダイアログボックスで、ヘルスチェック設定パラメーターを変更します。 警告
|
バックエンドサーバーの削除 | 必要に応じて、サーバーグループからバックエンドサーバーを削除できます。 警告 サーバーグループからバックエンドサーバーを直接削除すると、ビジネスが中断される可能性があります。まず、バックエンドサーバーの重みを 0 に設定してから、サーバーグループから削除します。
|
サーバーグループの削除 | リスナーの転送ルールに関連付けられていないサーバーグループは削除できます。サーバーグループを削除しても、サーバーには影響しません。登録済みの ECS、ENI、または ECI インスタンスが不要になった場合は、インスタンスを停止またはリリースできます。 サーバーグループ ページで、目的のサーバーグループを見つけ、操作 列で を選択し、 OK をクリックします。 |
リファレンス
CreateServerGroup: NLB インスタンスのサーバーグループを作成します。
DeleteServerGroup: NLB インスタンスのサーバーグループを削除します。
AddServersToServerGroup: NLB インスタンスのサーバーグループにバックエンドサーバーを追加します。
RemoveServersFromServerGroup: NLB インスタンスのサーバーグループからバックエンドサーバーを削除します。
UpdateServerGroupAttribute: NLB インスタンスのサーバーグループの設定を更新します。
> 削除