負荷分散の概要

このドキュメントでは、Google Cloud Platform で使用できるさまざまな負荷分散ソリューションの概要を説明します。

Google Cloud Platform の負荷分散は、単一または複数のリージョンに負荷分散されたコンピューティングリソースを分散し、高可用性の要件を満たすことができます。また、単一のエニーキャスト IP の背後にリソースを配置し、インテリジェントな自動スケーリングによりリソースをスケールアップまたはスケールダウンできます。Cloud Load Balancing は、Cloud CDN と完全に統合され、最適なコンテンツ配信を実現します。

Cloud Load Balancing によって、1 秒当たり 100 万を超えるクエリに対応できるシステム上で、可能な限りユーザーに近い場所でコンテンツを処理できます。Cloud Load Balancing は、完全分散された、ソフトウェア定義型のマネージド サービスです。インスタンス ベースでもデバイスベースでもないため、物理的な負荷分散インフラストラクチャを管理する必要はありません。

Cloud Load Balancing の種類

次の表は、ロードバランサが内部外部のいずれの IP アドレスを使用するか、ロードバランサがリージョンかグローバルか、サポートされるトラフィックの種類はどれかなど、Cloud のそれぞれのロードバランサの特性をまとめたものです。

内部または外部 ロードバランサの種類 リージョンまたはグローバル サポート対象のネットワーク階層 プロキシまたは
パススルー
トラフィックの種類
内部 内部 TCP / UDP リージョン プレミアム階層 パススルー TCP または UDP
内部 HTTP(S) リージョン プロキシ HTTP または HTTPS
外部 ネットワーク TCP / UDP リージョン プレミアム階層
スタンダード階層
パススルー TCP または UDP
TCP プロキシ プレミアム階層ではグローバル
スタンダード階層では実質的にリージョン1
プロキシ TCP
SSL プロキシ プロキシ SSL
HTTP(S) プロキシ HTTP または HTTPS

1 実質的にリージョンとは、バックエンド サービスがグローバルであっても、スタンダード階層を選択した場合に、外部転送ルールと外部 IP アドレスはリージョンであり、グローバル バックエンド サービスに接続されているバックエンド インスタンス グループや NEG は、転送ルールと IP アドレスと同じリージョンにあることが要求されます。HTTP(S) LB および TCP / SSL プロキシのスタンダード階層の構成をご覧ください。

グローバル負荷分散とリージョン負荷分散の比較

バックエンドが複数のリージョンに分散し、ユーザーに同じアプリケーションやコンテンツへのアクセスが必要であり、単一のエニーキャスト IP アドレスを使用してアクセスを提供する場合は、グローバル負荷分散を使用します。グローバル負荷分散は、IPv6 終端も提供します。

バックエンドが同一のリージョン内にあり、IPv4 終端のみが必要な場合は、リージョンの負荷分散を使用します。

外部負荷分散と内部負荷分散

GCP のロードバランサは、外部ロードバランサと内部ロードバランサに分けられます。外部ロードバランサは、インターネットからのトラフィックを GCP ネットワークに配信します。内部ロードバランサは、GCP ネットワーク内でトラフィックを分散します。

外部と内部の負荷分散タイプ(クリックして拡大)
外部と内部の負荷分散タイプ(クリックして拡大)

次の図は、外部負荷分散と内部負荷分散をともに一般的な使用例を示しています。この図では、サンフランシスコ、アイオワ、シンガポールのユーザーからのトラフィックが外部ロードバランサに転送され、ここから GCP ネットワークの複数のリージョンにトラフィックが分散されます。次に、内部ロードバランサが us-central-1a ゾーンと us-central-1b ゾーン間でトラフィックを分散します。

外部と内部の負荷分散を連携させる方法
外部と内部の負荷分散を連携させる方法

外部負荷分散

インターネットから GCP ネットワークへのトラフィックを分散する必要がある場合は、外部負荷分散を使用します。

GCP 外部負荷分散には次の機能があります。

  • HTTP または HTTPS トラフィック: グローバル HTTP(S) 負荷分散
  • SSL オフロードを使用する TCP トラフィック: グローバル SSL プロキシ負荷分散
  • SSL オフロードを使用しない TCP トラフィック: グローバル TCP プロキシ負荷分散
  • UDP トラフィック: リージョン ネットワーク TCP / UDP 負荷分散
  • IPv4 または IPv6 クライアント
  • グローバルまたはリージョンの負荷分散

グローバル負荷分散では、Network Service Tiers のうちプレミアム階層を使用する必要があります。リージョン負荷分散では、スタンダード階層を使用できます。

内部負荷分散

GCP ネットワーク内のインスタンスにトラフィックを分散する必要がある場合は、内部負荷分散を使用します。

GCP の内部 TCP / UDP 負荷分散には次の機能があります。

  • TCP または UDP のトラフィック
  • RFC 1918 負荷分散
  • クライアント IP アドレスの保持
  • ヘルスチェック
  • プレウォーミングを伴わない自動スケーリング
  • セッション アフィニティ
  • リージョン負荷分散

GCP Internal HTTP(S) Load Balancing(ベータ版)には次の機能があります。

  • HTTP(S) トラフィック
  • RFC 1918 負荷分散
  • ヘルスチェック
  • プレウォーミングを伴わない自動スケーリング
  • セッション アフィニティ
  • リージョン負荷分散

トラフィックの種類

ロードバランサで処理されるトラフィックの種類は、使用するロードバランサを決定するもう 1 つの要素です。

  • HTTP および HTTPS トラフィックは、外部 HTTP(S) または内部 HTTP(S) 負荷分散によって処理できます。
  • TCP トラフィックは、ネットワーク負荷分散または内部 TCP / UDP 負荷分散によって処理できます。
  • UDP トラフィックは、ネットワーク負荷分散または内部 TCP / UDP 負荷分散によって処理できます。

Cloud ロードバランサの詳細

ここでは、GCP ロードバランサの各種類について説明し、ドキュメントへのリンクを提供します。

HTTP(S) 負荷分散

HTTP(S) 負荷分散には次のメリットがあります。

  • TCP ポート 80 または 8080 上の HTTP トラフィックをサポートします。
  • TCP ポート 443 上の HTTPS トラフィックをサポートします。
  • プレウォーミングなしでトラフィックバーストを効率的に処理します。
  • 自動スケーリング インスタンス グループ、Network Endpoint Groups のバックエンドなどの、インスタンス グループ バックエンドをサポートします。
  • Cloud Storage バケットのバックエンドをサポートします。
  • URL マップを使用してホスト名とパスのルーティング ルールに基づいてリクエストをルーティングします。
  • 利用率とレートベース(RPS)の分散をサポートします。
  • cookie ベースとクライアント IP ベースのセッション アフィニティをサポートします。
  • 接続ドレインをサポートします。
  • モニタリングとロギングの機能があります。

Network Service Tiers のプレミアム階層を使用する場合、HTTP(S) 負荷分散には前述のメリット以外に次のようなメリットがあります。

  • ユーザーに最も近いリージョンにリクエストを転送することで、バックエンド間のリクエストの負荷を分散します。リージョンが容量の上限に達した場合、ロードバランサはリージョン別ウォーターフォールのオーバーフロー モデルを使用して、2 番目に近いリージョンにリクエストを配信します。
  • 単一のエニーキャスト IPv4 または IPv6 のロードバランサ アドレスを使用して、世界で 1 つの DNS レコードを使用できるようにします。
  • Cloud CDN をサポートします。

HTTP(S) 負荷分散は Google Front Ends(GFE)によって実装されています。GFE はグローバルに分散しており、Google のグローバル ネットワークとコントロール プレーンを使用して連携しています。プレミアム階層で GFE は複数リージョン間の負荷分散を提供し、空き容量があり、最も近い正常なバックエンドにトラフィックを転送し、ユーザーにできるだけ近いところで HTTP(S) トラフィックを終端します。

詳細

HTTP(S) 負荷分散の詳細は、次のドキュメントをご覧ください。

入門ガイド

コンセプト ガイド

SSL プロキシ負荷分散

SSL プロキシ負荷分散には次のメリットがあります。

  • SSL(TLS)オフロードを必要とする TCP トラフィックをサポートします。
  • 証明書を一元管理できます。
  • バックエンド サービスが SSL プロトコルを使用するように構成した場合、エンドツーエンドの暗号化をサポートします。
  • ポート 25、43、110、143、195、443、465、587、700、993、995、1883、5222 上で TCP トラフィックをサポートします。
  • プレウォーミングなしでトラフィックバーストを効率的に処理します。
  • 自動スケーリング インスタンス グループ、Network Endpoint Group バックエンドなどの、インスタンス グループ バックエンドをサポートします。
  • 使用率ベースと接続ベースの分散をサポートします。
  • クライアント IP ベースのセッション アフィニティをサポートします。
  • 接続ドレインをサポートします。
  • モニタリングとロギングの機能があります。

Network Service Tiers のプレミアム階層を使用する場合、SSL プロキシ負荷分散には次のようなメリットがあります。

  • ユーザーに最も近いリージョンに接続を転送して、複数のリージョン内のバックエンド間でリクエストの負荷を分散します。リージョンが容量の上限に達した場合、ロードバランサはリージョン別ウォーターフォールのオーバーフロー モデルを使用して、2 番目に近いリージョンに接続を配信します。
  • 単一のエニーキャスト IPv4 または IPv6 のロードバランサ アドレスを使用して、世界で 1 つの DNS レコードを使用できるようにします。

SSL プロキシ負荷分散は Google Front Ends(GFE)によって実装されています。GFE はグローバルに分散しており、Google のグローバル ネットワークとコントロール プレーンを使用して連携しています。プレミアム階層では、複数リージョン間の負荷分散を提供し、空き容量があり、最も近い正常なバックエンドに接続を転送して、ユーザーにできるだけ近いところで SSL トラフィックを終端させます。

SSL プロキシ負荷分散は、Google Front Ends(GFE)上で実装されており、世界中に分散されています。Network Service Tiers のプレミアム階層を選択した場合、SSL プロキシ ロードバランサはグローバルになります。プレミアム階層では、バックエンドを複数のリージョンにデプロイでき、ロードバランサは自動的にユーザーのトラフィックを空き容量があり最も近いリージョンに転送します。スタンダード階層を選択した場合、SSL プロキシ ロードバランサは単一リージョン内のバックエンド間でのみトラフィックを転送できます。

詳細

SSL プロキシ負荷分散の詳細は、次のドキュメントをご覧ください。

入門ガイド

コンセプト ガイド

TCP プロキシ負荷分散

TCP プロキシ負荷分散には次のメリットがあります。

  • SSL 終端を伴わない SSL(TLS)を含む TCP トラフィックをサポートします。SSL(TLS)接続の負荷を分散するために使用する場合、SSL は復号されません。
  • ポート 25、43、110、143、195、443、465、587、700、993、995、1883、5222 上で TCP トラフィックをサポートします。
  • プレウォーミングなしでトラフィックバーストを効率的に処理します。
  • 自動スケーリング インスタンス グループ、Network Endpoint Group バックエンドなどの、インスタンス グループ バックエンドをサポートします。
  • 使用率ベースと接続ベースの分散をサポートします。
  • クライアント IP ベースのセッション アフィニティをサポートします。
  • 接続ドレインをサポートします。
  • モニタリングとロギングの機能があります。

Network Service Tiers のプレミアム階層を使用する場合、TCP プロキシ負荷分散には次のようなメリットがあります。

  • ユーザーに最も近いリージョンに接続を転送して、複数のリージョン内のバックエンド間でリクエストの負荷を分散します。リージョンが容量の上限に達した場合、ロードバランサはリージョン別ウォーターフォールのオーバーフロー モデルを使用して、2 番目に近いリージョンに接続を配信します。
  • 単一のエニーキャスト IPv4 または IPv6 のロードバランサ アドレスを使用して、世界で 1 つの DNS レコードを使用できるようにします。

TCP プロキシ負荷分散は Google Front Ends(GFE)によって実装されています。GFE はグローバルに分散しており、Google のグローバル ネットワークとコントロール プレーンを使用して連携しています。プレミアム階層では、複数リージョン間の負荷分散を提供し、空き容量があり、最も近い正常なバックエンドに接続を転送して、ユーザーにできるだけ近いところで SSL トラフィックを終端させます。

TCP プロキシ負荷分散は、Google Front Ends(GFE)上で実装されており、世界中に分散されています。Network Service Tiers のプレミアム階層を選択した場合、TCP プロキシ ロードバランサはグローバルになります。プレミアム階層では、バックエンドを複数のリージョンにデプロイでき、ロードバランサは自動的にユーザーのトラフィックを空き容量があり最も近いリージョンに転送します。スタンダード階層を選択した場合、TCP プロキシ ロードバランサは単一リージョン内のバックエンド間でのみトラフィックを転送できます。

詳細

TCP プロキシ負荷分散の詳細は、次のドキュメントをご覧ください。

入門ガイド

コンセプト ガイド

ネットワーク TCP / UDP 負荷分散

ネットワーク負荷分散を使用すると、アドレス、ポート、プロトコルの種類などの受信 IP プロトコル データに基づいて、トラフィックを負荷分散できます。これは、非プロキシのリージョン負荷分散システムです。UDP トラフィック、SSL プロキシおよび TCP プロキシのロードバランサでサポートされていないポート上の TCP と SSL のトラフィックには、ネットワーク負荷分散を使用します。Network Load Balancer は、クライアントからの接続を中継しないパススルー ロードバランサです。

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

  • リージョン負荷分散をサポートします。
  • 外部 IPv4 アドレスを介して到達できます。
  • TCP トラフィックと UDP トラフィックをサポートします。
  • TCP パススルーを使用したバックエンドでの SSL 終端をサポートします。
  • クライアント IP アドレスを保持します。
  • IPv4 クライアントをサポートします。
  • レガシー HTTP ヘルスチェックが必要です。

詳細

ネットワーク TCP / UDP 負荷分散の詳細は、次のドキュメントをご覧ください。

入門ガイド

コンセプト ガイド

内部 TCP / UDP 負荷分散

内部 TCP / UDP 負荷分散を使用すると、内部仮想マシン インスタンスにのみがアクセスできるプライベート負荷分散 IP アドレスの背後の TCP / UDP トラフィックを負荷分散できます。内部 TCP / UDP 負荷分散を使用して、プライベート バックエンド インスタンスのフロントエンドとして機能する内部負荷分散 IP アドレスを構成します。負荷分散サービスには内部 IP アドレスのみを使用します。全体として、設定が単純になります。

内部 TCP / UDP 負荷分散はリージョンのマネージド インスタンス グループをサポートするため、リージョン全体を自動スケーリングでき、ゾーン障害からサービスを保護します。

内部 TCP / UDP 負荷分散には次のメリットがあります。

  • TCP / UDP トラフィックをサポートします。
  • 内部 RFC 1918 IP アドレスを使用して到達可能です。
  • Andromeda ベースの負荷分散を提供します。
  • TCP、SSL(TLS)、HTTP、HTTPS のヘルスチェックをサポートします。
  • 接続ドレインをサポートします。
  • Cloud VPN と Cloud Interconnect を介して接続されたクライアントをサポートします。
  • セッション アフィニティをサポートします。
  • プレウォーミングなしでバックエンドの自動スケーリングをサポートします。
  • クライアント IP アドレスを保持します。
  • 自動モード VPC ネットワーク、カスタムモード VPC ネットワーク、レガシー ネットワークに対応しています。
  • リージョン負荷分散を実行します。

詳細

内部 TCP / UDP 負荷分散の詳細は、次のドキュメントをご覧ください。

入門ガイド

コンセプト ガイド

内部 HTTP(S) 負荷分散

内部 HTTP(S) ロードバランサは、URL マップで指定したレイヤ 7 アプリケーション データのプロキシベースの負荷分散を実行します。バックエンド インスタンスのフロントエンドとして機能するプライベート IP アドレスを使用します。

内部 HTTP 負荷分散には次のメリットがあります。

  • HTTP(S) トラフィック
  • RFC 1918 負荷分散
  • クライアント IP アドレスの保持
  • ヘルスチェック
  • プレウォーミングを伴わない自動スケーリング
  • セッション アフィニティ
  • リージョン負荷分散

詳細

内部 HTTP(S) 負荷分散の詳細は、次のドキュメントをご覧ください。

入門ガイド

コンセプト ガイド

Cloud Load Balancing: 内部構成

外部および内部の負荷分散と基盤テクノロジー(クリックして拡大)
外部および内部の負荷分散と基盤テクノロジー(クリックして拡大)
  • Google フロントエンド(GFE) = Google POP 内にあるソフトウェア定義型の分散システムであり、他のシステムやコントロール プレーンと連携してグローバルな負荷分散を実行する
  • Andromeda = Google Cloud のソフトウェア定義型のネットワーク仮想化スタック
  • Maglev - ネットワーク負荷分散の分散システム