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

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

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

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

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

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

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

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

プロトコル、スキーム、スコープ

各ネットワーク ロードバランサは、TCP または UDP のいずれかのトラフィックをサポートします。

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

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

ユースケース

ネットワーク負荷分散は次のような状況で使用します。

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

アーキテクチャ

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

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

    現在、GKE は、ターゲット プールベースのネットワーク ロードバランサのみをサポートしています。その他の GKE 以外のユースケースの場合は、従来のターゲット プールベースのネットワーク ロードバランサではなく、バックエンド サービスベースのネットワーク ロードバランサを使用することをおすすめします。

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

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

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

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