外部 TCP / UDP ネットワーク負荷分散の概要

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Google Cloud の外部 TCP / UDP ネットワーク負荷分散(以降はネットワーク負荷分散と呼びます)は、リージョンのパススルー ロードバランサです。ネットワーク ロードバランサは、同じリージョン内の仮想マシン(VM)インスタンス間で外部トラフィックを分散します。

TCP、UDP、ESP、GRE、ICMP、ICMPv6 のトラフィック用にネットワーク ロードバランサを構成できます。

ネットワーク ロードバランサは、以下からのトラフィックを受信できます。

  • インターネット上のすべてのクライアント
  • 外部 IP を持つ Google Cloud VM
  • Cloud NAT またはインスタンス ベースの NAT 経由でインターネットにアクセスできる Google Cloud VM

ネットワーク負荷分散には次の特長があります。

  • ネットワーク負荷分散はマネージド サービスです。
  • ネットワーク負荷分散は、Andromeda 仮想ネットワーキングGoogle Maglev で実装されます。
  • ネットワーク ロードバランサはプロキシではありません。
    • ロード バランシングされたパケットは、パケットの送信元 IP アドレス、宛先 IP アドレス、プロトコル(プロトコルがポートベースの場合は、送信元ポートと宛先ポートは変更されていません)を持つバックエンド VM によって受信されます。
    • 負荷分散接続はバックエンド VM によって終端されます。
    • バックエンド VM からのレスポンスは、ロードバランサを経由せず、クライアントに直接送信されます。これを業界用語で Direct Server Return といいます。

次の図に、カリフォルニア、ニューヨーク、シンガポールのユーザーを示します。これらのユーザーは、myapp、test、travel というバックエンド リソースに接続しています。範囲がエニーキャストになっているため、シンガポールのユーザーが us-central1 のバックエンドに接続しても、トラフィックは最も近いシンガポールに送信されます。そこから、トラフィックはリージョン バックエンドにルーティングされます。

3 つのリージョン バックエンドと 3 つの転送ルール(クリックして拡大)
ネットワーク負荷分散の例(クリックして拡大)

スコープ

ネットワーク ロードバランサはインターネットからのトラフィックを分散します。

ネットワーク ロードバランサのスコープは、グローバルではなくリージョンです。つまり、ネットワーク ロードバランサが複数のリージョンにまたがることはできません。ロードバランサは単一リージョン内のすべてのゾーンにサービスを提供します。

ユースケース

ネットワーク ロード バランシングは次のような状況で使用します。

  • TCP 以外のトラフィックのロード バランシングが必要な場合。または、他のロードバランサでサポートされていない TCP ポートのロード バランシングが必要な場合。
  • ロードバランサではなく、バックエンドで SSL トラフィックの復号を行う場合。ネットワーク ロードバランサはこのタスクを実行できません。SSL トラフィックをバックエンドで復号すると、VM の CPU 使用量が非常に多くなります。
  • バックエンド VM の SSL 証明書を自己管理する場合。Google マネージド SSL 証明書は HTTP(S) ロード バランシングと外部 SSL プロキシ ロード バランシングでのみ使用できます。
  • プロキシを経由せずに元のパケットを転送する必要がある場合。たとえば、クライアントの送信元 IP を保持する必要がある場合など。
  • 既存の環境でパススルー ロードバランサを使用していて、これを変更せずに移行する場合。
  • ネットワーク ロードバランサに高度なネットワーク DDoS 対策が必要です。詳細については、Google Cloud Armor を使用して高度なネットワーク DDoS 対策を構成するをご覧ください。

GKE アプリケーションのロード バランシング

GKE でアプリケーションを構築する場合は、組み込みの GKE Service コントローラを使用することをおすすめします。このコントローラは GKE ユーザーに代わって Google Cloud ロードバランサをデプロイします。これは、スタンドアロンのロード バランシング アーキテクチャと同じですが、ライフサイクルが GKE によって完全に自動化、制御される点で異なります。

関連する GKE のドキュメント:

アーキテクチャ

ネットワーク ロードバランサのアーキテクチャは、バックエンド サービスベースのネットワーク ロードバランサとターゲット プールベースのネットワーク ロードバランサのどちらを使用するかによって異なります。

バックエンド サービスベースのネットワーク ロードバランサ

ネットワーク ロードバランサは、リージョン バックエンド サービスを使用して作成できます。リージョン バックエンド サービスでは、ロードバランサの動作と、バックエンド インスタンス グループにトラフィックを分散する方法が定義されます。バックエンド サービスを使用すると、従来のターゲット プールではサポートされていない機能が有効になります。具体的には、非レガシー ヘルスチェック(TCP、SSL、HTTP、HTTPS、HTTP/2)のサポート、マネージド インスタンス グループによる自動スケーリング、コネクション ドレイン、構成可能なフェイルオーバー ポリシーなどです。

バックエンド サービスベースのネットワーク ロードバランサは、IPv4 トラフィックと IPv6 トラフィックをサポートします。TCP、UDP、ESP、GRE、ICMP、ICMPv6 のトラフィックをロードバランサできます。送信元 IP ベースのトラフィック ステアリングを使用して、トラフィックを特定のバックエンドに転送することもできます。

アーキテクチャの詳細については、リージョン バックエンド サービスを使用したネットワーク ロードバランサをご覧ください。

既存のターゲット プールベースのネットワーク ロードバランサを移行して、バックエンド サービスを使用することもできます。手順については、ターゲット プールからバックエンド サービスへのネットワーク ロードバランサの移行をご覧ください。

ターゲット プールベースのネットワーク ロードバランサ

ターゲット プールは、Google Cloud のネットワーク ロードバランサでサポートされているレガシー バックエンドです。ターゲット プールでは、ロードバランサから受信トラフィックを受け取るインスタンスのグループを定義します。

ターゲット プールベースのネットワーク ロードバランサは、TCP または UDP のいずれかのトラフィックをサポートします。ターゲット プールベースのネットワーク ロードバランサの転送ルールは、外部 IPv4 アドレスのみをサポートします。

アーキテクチャの詳細については、ターゲット プールのバックエンドを使用するネットワーク ロードバランサをご覧ください。

ネットワーク負荷分散と他の Google Cloud ロードバランサの比較

Google Cloud の各種ロードバランサの違いについては、次のドキュメントをご覧ください。