ネットワーク・ロード・バランサーについて

IBM Cloud® Network Load Balancer for VPC (NLB) を使用すると、VPC の同一リージョン内の複数のサーバー・インスタンス間にトラフィックを分散できます。

NLB は 3 つのアベイラビリティー・ゾーンすべてにわたってメンバーを受け入れることができますが、NLB 自体は 1 つの特定のゾーンに常駐します。 詳しくは、マルチゾーン・サポートを参照してください。

お客様ごとにポートを割り当てることはできますが、VP ゲートウェイ・レベルでのポート適用はありません。

ネットワーク・ロード・バランサーの種類

VPC のロード・バランサーの概要 で説明されているように、多くのタイプの NLB が使用可能です。

  • パブリック- パブリック・ロードバランサーとは、DNSに登録された、外部からアクセス可能なIPアドレスを持つロードバランサーのことです。

  • プライベート-プライベート・ロード・バランサーは、VPC ネットワーク内からのみアクセス可能です。VPC ネットワークでは、クライアントは同じ VPC 内にあるか、到達可能性があります (例えば、 Direct Link、 Transit Gateway、またはその両方を介して)。 プライベート・ロード・バランサーの場合、サブネットにカスタム経路が構成されていない専用サブネットが必要です。

  • ルーティングモードを有効にしたプライベート- ルーティングモードを有効にしたプライベートNLBは、バックエンドターゲットとして仮想ネットワーク機能(VNF)デバイスをサポートする。 NATなしでダイレクト・ルーティングを行い、VNFデバイスがそのままパケットを検査できるようにする。

    対称トラフィックと非対称トラフィックの両方がサポートされており、各ゾーン内のルーティングモードが設定された複数のプライベートNLBが、 重み付き転送 を使用していつでも非同期にトラフィックを受信できます。 詳細については、「 ルーティングモードを使用したネットワークロードバランサーの作成 」を参照してください。

  • プライベート・パス-サービス・プロバイダーはプライベート・パス NLB を使用して、 IBM Cloud を IBM Cloud プライベート・ネットワーク上のサード・パーティーの VPC ホスト・サービスに安全に接続します。 プライベート・パスNLBは、 プライベート・パス・サービスを 使用して、ネットワーク・トラフィックをインターネットと交わることのないプライベート・パスに保つ場合に必要です。 詳しくは、 プライベート・パス・ソリューション・ガイド を参照してください。

    プライベートパスNLBは、プライベートパスサービスでのみ使用できる。

始めに

ネットワーク・ロード・バランサーの使用を開始するには、以下の手順を実行します。

  1. ネットワークロードバランサーに関する既知の問題を 確認する。
  2. 特定の NLB の指示に従います。

詳しくは、 ロード・バランサーのタイプ および ロード・バランサーの比較グラフ を参照してください。

ロード・バランシング方式

バックエンドのアプリケーション・サーバー間にトラフィックを分散させる方式として、ラウンドロビン、重み付きラウンドロビン、および最小接続という 3 つのロード・バランシング方式を使用できます。

最小接続

この方法では、特定の時点で接続数が最も少ないバックエンドサーバーインスタンスが、次のクライアント接続を受け付けます。

プライベートパスNLBは最小接続方式をサポートしていない。

ラウンドロビン

ラウンドロビンがデフォルトのロード・バランシング方式です。 この方式では、ロード・バランサーは、着信クライアント接続をラウンドロビン形式でバックエンド・サーバーに転送します。 その結果として、すべてのバックエンド・サーバーは、ほぼ同数のクライアント接続を受信します。

重み付き転送

重み付き転送は、ルーティングモードを使用するプライベートNLBでのみサポートされています。

重み付き転送では、NLBはIPハッシュアルゴリズムを使用して、各ターゲットに割り当てられた重みに基づいてパケットを分散させます。 重み付き転送はステートレスであるため、NLBは接続状態を保持しません。 その代わりに、各パケットはヘッダーに基づいて個別に評価され、現在のハッシュ結果と設定された重みに応じて転送されます。 その結果、既存の接続状態が存在しない場合でも、トラフィックを受け入れ、転送されます。

この動作により、パブリックIPアドレス範囲を使用する場合など、同一ゾーン内のトラフィックの流れが対称的ではない展開環境を含め、非対称なルーティングシナリオへの対応が可能になります。 また、 weighted_forwarding プールアルゴリズムで構成されたプライベートNLBが、どのゾーンでも非同期にトラフィックを受信できるマルチゾーン展開もサポートされています。 対称的なトラフィックフローの場合、NLBは他のプールアルゴリズムと同様に、決定論的なハッシュベースの転送を継続して提供するため、重み付き転送はあらゆるルートモードのNLB導入環境に適しています。

ルートモードのNLBが、ゾーンのステータスが「不健全」になった場合、または健全なバックエンドメンバーが残っていないために「不健全」になった場合、NLBは関連付けられたVPCインバウンドルーティングアドバタイズメントを自動的に撤回します。 その後、トラフィックは、正常なゾーンにある正常なルートモードのNLBにリダイレクトされます。

例えば、2つの正常なバックエンドメンバーを持つルートモードのプライベートNLBを考えてみましょう。サーバーAの重みは 8 、サーバーBの重みは 2 です。 受信パケット1,000パケットのうち、約800パケットがサーバーAに転送され、200パケットがサーバーBに転送されます。しかし、重み付き転送はステートレスであるため、NLBは接続状態を保持しません。 各パケットは、パケットヘッダー情報に基づいて個別に評価され、その時点のハッシュ結果および設定された重みに応じて転送されます。 つまり、同じフローに属するパケットは、異なるルートモードのNLBを経由して到着・戻ってきても、観測された分布が設定された重み比と異なっていても、正常に転送されるということです。

この動作により、非対称ルーティングのシナリオが可能になります。 詳細については、「 ユースケース 8:非対称ルーティングによるマルチゾーン・高可用性 」を参照してください。

重み付きラウンドロビン

この方式では、ロード・バランサーは、バックエンド・サーバーに割り当てられた重みに比例して、着信クライアント接続をバックエンド・サーバーに転送します。 各サーバーには、デフォルトの重み 50 が割り当てられます。この重みは、0 - 100 までの範囲の任意の値にカスタマイズできます。

例えば、アプリケーション・サーバー A、B、および C の重みが 60、60、および 30 の場合、サーバー A と B は等しい数の接続を受信し、サーバー C はその半数の接続を受信します。

サーバーの重みの値は、「重み付きラウンドロビン」方式を使用する場合にのみ適用されます。 ラウンドロビンおよび最小接続のロード・バランシング方式では、これらの値は無視されます。

サーバーに重み 0 を設定することは、そのサーバーに新規接続が転送されなくなることを意味します。ただし、既存のトラフィックのフローは継続されます。 0 のウェイトを使用することで、サーバーを段階的に停止させ、サービスローテーションから除外することができます。

フロントエンド・リスナーおよびバックエンド・プール

フロントエンド・リスナーはロード・バランサーが着信要求を受信するためのアプリケーション・ポートであるのに対し、バックエンド・プールはロード・バランサーの背後に位置するアプリケーション・サーバーです。 最大 10 個のフロントエンド・リスナーを定義し、それらをバックエンド・アプリケーション・サーバーのバックエンド・プールにマップすることができます。 パブリック NLB の場合、ロードバランサーに割り当てられた FQDN およびフロントエンドのリスナーポートは、インターネットに公開されます。 着信ユーザー要求はこれらのポートで受信されます。 TCP および UDP は、フロントエンド・リスナーおよびバックエンド・プールでサポートされているプロトコルです。

バックエンド・プールには最大 50 台の仮想サーバー・インスタンスを接続できます。 トラフィックは、指定されたデータ・ポートの各インスタンスに送信されます。 このデータ・ポートは、フロントエンド・リスナー・ポートと同じである必要はありません。

バックエンドプールのフェイルセーフポリシー

ロードバランサーのバックエンドプールを編集するとき、以下のフェイルセーフポリシーアクションの1つを指定できます:

  • Forward:- ロードバランサーはリクエストを指定されたバックアッププールに ルートします。 これにより、アプリケーション・サーバーの別のセットへのクリーンなフェイルオーバー経路が提供される。 既存のバックアッププールが設定され、トラフィックを受信できる状態になっている必要があります。
  • バイパス:- ロードバランサはリクエストをメンバーの宛先IPアドレスに直接送り、ロードバランサを完全にバイパスします。 このオプションは通常、ネットワーク・ロードバランサーや仮想ネットワーク機能(VNF)デバイスなど、特定のネットワーキング・セットアップで使用される。
  • Drop:- ロードバランサーは全てのリクエストを受け取り拒否し、クライアントは応答を受け取りません。

適用可能なバックアッププールのリストからフェイルセーフターゲットを選択できます。

フェイルセーフ・ターゲット・プールの要件(アクションがフォワードの場合):

  • は同じロードバランサに属していなければならない
  • プロトコルが同じか互換性がなければならない( TCP は TCP とのみ互換性があるが、 HTTP と HTTPS の組み合わせは互換性がある)

最大接続数

ネットワークロードバランサーのデフォルト接続数や最大接続数は定義されていない。 同時接続の総数は、割り当てられたリソースやネットワークのスループットなどの要因に依存する。

VPC のネットワーク・ロード・バランサーの図

図1は、一般的なネットワークロードバランサー構成のVPC表現を示しています。 NLB は VPC の 1 つのサブネットにプロビジョンされます。 NLB でネットワークデータパスを構成するには、リスナー、プール、および少なくとも 1 つのメンバーを作成する必要があります。 リスナーとは、NLBがお客様リクエストを待機するためのフロントエンドポートのことです。 それらの要求は、リスナーに関連付けられているプールのターゲットに転送されます。 _プール_とは、特定のリスナーに対してNLBに届くネットワークリクエストを分散させるために使用されるターゲットのグループのことです。 メンバー とは、要求を listen するように構成された、指定されたポートを持つバックエンド・サーバーです。

ネットワークロードバランサーの作業フロー
の作業
ネットワークロードバランサーの作業フローネットワークロードバランサーの作業フロー

レイヤー 4 のロード・バランシング

Network Load Balancer for VPC は、VPC 内のユーザーのサーバーにレイヤー 4 (トランスポート層) によるロード・バランシング・サービスを提供します。 このサービスは、パケット・ヘッダー内の送信元 IP アドレスと宛先 IP アドレス、およびポートに基づいてトラフィックの送信先を決定します。 ロード・バランサーがパケットの内容の検査を実行することはありません。

レイヤー 4 のロード・バランシングに必要な計算処理は、より高度なロード・バランシング (レイヤー 7 など) に比べて少ないので、CPU 使用率とメモリーが効率的に使用されます。

ユース・ケース 1: パブリック・ネットワーク・ロード・バランサー

パブリック NLB は、Direct Server Return (DSR) をサポートします。 アプリケーション・ロード・バランサーはこの機能をサポートしていません。

図 2 は、パブリック NLB がどのように機能するかを示しています。 コンシューマーは、ロード・バランサーの FQDN を使用して、ロード・バランサーの IP アドレスを DNS に登録します。 コンシューマーは、オプションで DNS サーバーに照会します。 DNS は、ロード・バランサーの IP アドレスで応答します。 コンシューマーはロードバランサーに TCP、データを要求するリクエストを送り、ロードバランサーはそのリクエストをバックエンドのターゲットに転送する。 ターゲットは応答を生成し、応答は DSR を使用してコンシューマーに直接送信されます。

caption-side=bottom"
公開ロードバランサー
*公開ロードバランサー

ユース・ケース 2: プライベート・ネットワーク・ロード・バランサー

プライベート NLB には、コンシューマーが到達可能な VPC ネットワーク内からのみアクセスできます (例えば、 Direct Link、 Transit Gateway、またはその両方からアクセスできます)。

プライベート・ロード・バランサーの場合、サブネットにカスタム経路が構成されていない専用サブネットが必要です。

図 3 は、プライベート NLB がどのように機能するかを示しています。 コンシューマーは、ロード・バランサーの FQDN を使用して、ロード・バランサーの IP アドレスを DNS で照会します。 コンシューマーは、オプションで DNS サーバーに照会します。 DNS は、ロード・バランサーの IP アドレスで応答します。 コンシューマーはダイレクトリンクまたはTransit Gateway、ロードバランサーに TCP、データを要求するリクエストを送り、ロードバランサーはそのリクエストをバックエンドのターゲットに転送する。 ターゲットは応答を生成し、応答は DSR を使用してコンシューマーに直接送信されます。

プライベート・ロード・バランサー
プライベート・ロード・バランサー

ユース・ケース 3: ルーティング・モードが有効になっているプライベート・ネットワーク・ロード・バランサー

route_mode が true に設定されている NLB は、ファイアウォールなどの仮想ネットワーク機能 (VNF) アプライアンスのみをバックエンド・ターゲットとしてサポートするプライベート・ロード・バランサーです。

図 4 は、ルーティング・モードのプライベート NLB がどのように機能するかを示しています。 コンシューマーは、ロード・バランサーの FQDN を使用して、ロード・バランサーの IP アドレスを DNS で照会します。 コンシューマーは、オプションで DNS サーバーに照会します。 DNS は、ロード・バランサーの IP アドレスで応答します。 コンシューマーはダイレクトリンクまたはTransit Gateway、ロードバランサーに TCP、データを要求する。 ロード・バランサーは、要求を VNF デバイスに転送してから、バックエンド・ターゲットに転送します。 ターゲットは応答を生成し、その応答は NLB に送り返され、クライアントに戻る前に再度 VNF デバイスに送信されます。

ルーティングモードが有効なプライベートロードバランサー
なプライベートロードバランサー* ルーティングモードが
なプライベートロードバランサー* ルーティングモードが有効なプライベートロードバランサー

各ゾーンでルーティングモードが有効になっている複数のプライベートNLBは、いつでも非同期にトラフィックを受信できます。 ルートモードのNLBの状態が「正常でない」状態になると、そのNLBはトラフィックの受信を停止し、トラフィックはゾーン内の「正常」な状態のルートモードNLBに自動的に切り替わります。 詳細については、「 重み付き転送 」を参照してください。

使用例4:ネットワークロードバランサーを使用したマルチゾーン高可用性

図5は、複数のゾーンをサポートするためにNLBをデプロイする方法を示している。 この導入シナリオでは、多くの場合、 IBM Cloud Internet Services(CIS)。

このユースケースには 既知の制限が ある。 同じインスタンスとポートを持つ2つのメンバーが同時に存在することはできません。 代わりに、同じインスタンスで別のポートを使うことができる。

NLBがDSRを通じて実現する高いスループット性能(および低レイテンシ)を活用するとよいでしょう。 さらに、高可用性(HA)環境においてワークロードの可用性を高めるため、複数のゾーンにワークロードを展開することをお勧めします。

このデプロイメント・シナリオを使用して、高可用性を取得し、ロード・バランサーの障害が発生した場合に複数のアベイラビリティー・ゾーンでワークロードを使用できるようにすることができます。 1 つのアベイラビリティー・ゾーン内のロード・バランサーに障害状態が発生した場合、GLB はそのアベイラビリティー・ゾーンにトラフィックを送信しなくなります。 例えば、アベイラビリティー・ゾーン 1 で障害が発生した場合、GLB はトラフィックをアベイラビリティー・ゾーン 2 またはアベイラビリティー・ゾーン 3 に送信します。 シナリオの例としては、1 つの NLB からアベイラビリティー・ゾーン全体に至るまで、すべての障害が多数発生する可能性があります。

マルチゾーン・パブリック・ネットワーク・ロードバランサー*
ゾーン・ネットワーク・

ゾーンごとに1つのNLBが必要なのは、パブリックNLBとプライベートNLBだけである。 プライベート・パスNLBはもともとリージョナルなので、ゾーンごとに定義する必要はない。

使用例5:プライベート・パス・ネットワークのロード・バランサー

プライベートパスNLBは、プロバイダーとコンシューマー間のすべてのトラフィックチェックポイントを IBM Cloud インフラストラクチャ内に保持する。 データはインターネットに流れない。

他のNLBとは異なり、Private Pathネットワークロードバランサーは地域的な可用性を提供し、単一のサブネットが選択された場合でもゾーン障害に強い。 ゾーン障害に対する回復力を確保するために、複数のPrivate Pathロードバランサーを作成したり、複数のサブネットを指定したりする必要はありません。 サブネットの選択はロードバランサーに関連するIPアドレスにのみ影響します。

プライベート・パス NLB は、プライベート・パス・サービスでのみ使用できます。 詳しくは、 プライベート・パス・サービスについて を参照してください。

図 6 は、プライベート・パス・サービスをサポートするプライベート・パス NLB の動作を示している。 プライベート・パス NLB が DNS サーバーに登録されます。 コンシューマーは、オプションで DNS サーバーに照会します。 その後、コンシューマーはVPEゲートウェイを通じてプライベートパスNLBに TCP、データを要求するリクエストを送信し、プライベートパスNLBはリクエストをターゲットに転送する。 ターゲットはレスポンスを生成し、そのレスポンスはダイレクトサーバーリターンでVPEに送られ、コンシューマーに送られる。

プライベート・パス・ネットワーク・ロードバランサー
パブリック・ロードバランサー

ユースケース 8:非対称ルーティングによるマルチゾーン・高可用性

以下の設定は、ルーティングモードが有効になっているプライベート NLB でのみ使用できます。

図9は、プライベート・ルートモードのNLBが、非対称ルーティングを通じてマルチゾーンの高可用性を実現する仕組みを示しています。 まず、消費者がVPN、 Direct Link、または Transit Gateway などのプライベート接続経路を通じて、プロバイダーのハブVPCにリクエストを送信します。 プロバイダーのプライベートルートモードNLBは、 Transit Gatewayを経由して、スポークVPC内の仮想サーバーインスタンスにリクエストを送信します。 重み付き転送が有効になっている場合、返信トラフィックは、以前に確立された接続状態に依存することなく、元のリクエストとは異なる経路をたどることができます。

たとえば、リクエストパケットはアベイラビリティゾーン 1 の NLB を経由して流入し、スポーク VPC 内の仮想サーバーインスタンスに転送される一方で、レスポンスパケットはアベイラビリティゾーン 2 の NLB を経由して戻ってくる場合があります。 転送は元の接続経路とは独立しているため、応答は正常に受け入れられ、正しく転送されます。 設定された重み付けは、マルチゾーンの高可用性を維持しつつ、バックエンドの仮想サーバーインスタンス間でのトラフィックの分散方法に引き続き影響を与えます。

さらに、ゾーンが利用不可になった場合、またはルートモードのネットワーク負荷分散(NLB)に、関連付けられたアクティブなファイアウォールインスタンスが一切存在しなくなった場合、対応するルートアドバタイズメントは自動的に取り消されます。 この動的なルート削除メカニズムにより、正常に動作していないサービスエンドポイントへのトラフィックの転送が防止され、稼働中のVNFベースのファイアウォール機器のみを経由してトラフィックがルーティングされることが保証されることで、地域単位の高可用性(HA)が実現されます。

非対称ルーティングを利用したマルチゾーン・高可用性
非対称ルーティングを利用したマルチゾーン・高可用性