Cloud Load Balancing の概要

ロードバランサは、ユーザーのトラフィックをアプリケーションの複数のインスタンスに分散します。負荷を分散することで、アプリケーションにパフォーマンスの問題が起こるリスクを低減します。Google の Cloud Load Balancing は、Google 独自のプロダクトと同じテクノロジーである Maglev、Andromeda、Google Front End、Envoy などの信頼性の高いテクノロジーで構築されています。

Cloud Load Balancing は、リージョン アプリケーションおよびネットワーク ロードバランサの包括的なポートフォリオを提供します。Google のロードバランサを使用すると、1 つのリージョン内のバックエンド間で 1 秒あたり数百万件のリクエストを分散できます。これらのロードバランサは、単一のエニーキャスト IP アドレスでアクセスできるように構成できます。Google のリージョン プロキシ ロードバランサを使用して強固な管轄区域制御を実装すると、TLS / SSL オフロードを懸念することなく、バックエンドとプロキシを自分のリージョンに配置できます。リージョン パススルー ロードバランサを使用すると、高性能なダイレクト サーバー リターン(DSR)を使用して、複数のプロトコルをバックエンドにすばやくルーティングできます。

Cloud Load Balancing の概要。
Cloud Load Balancing の概要(クリックして拡大)

Cloud Load Balancing の主な機能

Cloud Load Balancing には、次のロードバランサ機能があります。

  • 単一のエニーキャスト IP アドレス。Cloud Load Balancing では、単一のエニーキャスト IP アドレスがすべてのバックエンド インスタンスのフロントエンドになります。

  • シームレスな自動スケーリング。Cloud Load Balancing は、ユーザーやトラフィックの増加に応じてスケーリングできます。トラフィックの予期せぬ急増が発生した場合も、トラフィックを処理できる他のゾーンのバックエンドにトラフィックを転送して容易に対応できます。この自動スケーリングにプレウォーミングは必要なく、トラフィックがゼロの状態からフル稼働の状態までスケーリングするのに、わずか数秒しかかかりません。Cloud Load Balancing は、ユーザー、トラフィック、ネットワーク、バックエンドの健全性、その他の関連条件の変化に瞬時に対応します。

  • ソフトウェア定義されたロード バランシング。Cloud Load Balancing は、ソフトウェア定義された完全分散型のマネージド サービスで、あらゆるトラフィックに対応しています。これはインスタンス ベースまたはデバイスベースのソリューションではないため、物理的なロード バランシング インフラストラクチャの制約を受けることも、インスタンス ベースのロードバランサに固有の高可用性、スケール、および管理の課題に直面することもありません。

  • レイヤ 4 とレイヤ 7 のロード バランシング。TCP、UDP、ESP、GRE、ICMP、ICMPv6 など、ネットワークとトランスポート層プロトコルのデータに基づいてトラフィックを誘導するレイヤ 4 ベースのロード バランシングを使用します。HTTP ヘッダーやユニフォーム リソース識別子などの属性に基づいてコンテンツ ベースのリクエスト ルーティングの決定を追加するレイヤ 7 ベースのロード バランシングを使用します。

  • 外部ロード バランシングと内部ロード バランシング。ロードバランサを外部アクセスと内部アクセスのどちらで使用できるかを定義します。クライアントがインターネットからアプリケーションにアクセスする必要がある場合は、外部ロードバランサを使用できます。クライアントがTrusted Cloud内にある場合は、内部ロードバランサを使用できます。詳細については、外部ロード バランシングと内部ロード バランシングをご覧ください。

Trusted Cloud ロードバランサの種類

Cloud Load Balancing には、アプリケーション ロードバランサとネットワーク ロードバランサの 2 種類のロードバランサがあります。アプリケーション ロードバランサは、HTTP(S) トラフィックを使用するアプリケーション用のレイヤ 7 ロードバランサが必要な場合に選択します。ネットワーク ロードバランサは、TLS ロードバランサ(プロキシ ロードバランサ)を使用したレイヤ 4 ロードバランサが必要な場合、または UDP、ESP、ICMP などの IP プロトコルのサポート(パススルー ロードバランサを使用)が必要な場合に選択します。

アプリケーション ロードバランサ

アプリケーション ロードバランサは、プロキシベースのレイヤ 7 ロードバランサであり、エニーキャスト IP アドレスの背後でサービスを実行し、スケーリングできます。アプリケーション ロードバランサは、Compute Engine や Google Kubernetes Engine(GKE)などのさまざまな Trusted Cloud プラットフォームにホストされているバックエンドと、Trusted Cloudの外部にある外部バックエンドに HTTP / HTTPS トラフィックを分散します。

アプリケーション ロードバランサは、アプリケーションがインターネットに公開されているか内部専用かに応じて、外部または内部にデプロイできます。どちらの場合も、これらのロードバランサは単一リージョンのバックエンドのみをサポートします。

  • リージョン外部アプリケーション ロードバランサは、Envoy プロキシにマネージド サービスとして実装されます。クライアントはインターネット上のどこからでもこれらのロードバランサに接続できます。アプリケーション ロードバランサは、オープンソースの Envoy プロキシを使用して高度なトラフィック管理機能を有効にします。
  • リージョン内部アプリケーション ロードバランサは、Andromeda ネットワークの仮想化スタックとオープンソースの Envoy プロキシ上に構築されています。このロードバランサは、レイヤ 7 アプリケーション データの内部プロキシベースのロード バランシングを提供します。ロードバランサは、同じ VPC ネットワーク内のクライアントまたは VPC ネットワークに接続されているクライアントのみがアクセスできる内部 IP アドレスを使用します。

次の図は、アプリケーション ロードバランサのアーキテクチャの例を示しています。

アプリケーション ロードバランサのアーキテクチャ。
アプリケーション ロードバランサのアーキテクチャ(クリックして拡大)

ネットワーク ロードバランサ

ネットワーク ロードバランサは、TCP、UDP、その他の IP プロトコル トラフィックを処理できるレイヤ 4 ロードバランサです。これらのロードバランサは、プロキシ ロードバランサまたはパススルー ロードバランサとして利用できます。アプリケーションのニーズと処理する必要があるトラフィックの種類に応じて、ロードバランサを選択できます。オンプレミスおよびその他のクラウド環境で高度なトラフィック制御とバックエンドをサポートするリバース プロキシ ロードバランサを構成する場合は、プロキシ ネットワーク ロードバランサを選択します。クライアント パケットの送信元 IP アドレスを保持する場合、レスポンスで直接的なサーバー リターンを優先する場合、または TCP、UDP、ESP、GRE、ICMP、ICMPv6 などのさまざまな IP プロトコルを処理したい場合は、パススルー ネットワーク ロードバランサを選択します。

プロキシ ネットワーク ロードバランサ

プロキシ ネットワーク ロードバランサは、TCP トラフィックを Trusted CloudVPC ネットワーク内の仮想マシン(VM)インスタンスに分散するレイヤ 4 リバース プロキシ ロードバランサです。トラフィックはロード バランシング レイヤで終端し、TCP を使用して最も近い利用可能なバックエンドに転送されます。

プロキシ ネットワーク ロードバランサは、アプリケーションがインターネットに公開されているか内部専用かに応じて、外部または内部にデプロイできます。どちらの場合も、これらのロードバランサは単一リージョンのバックエンドのみをサポートします。

  • リージョン外部プロキシ ネットワーク ロードバランサは、インターネットからのトラフィックを Trusted Cloud VPC ネットワーク、オンプレミス、またはその他のクラウド環境のバックエンドに分散するレイヤ 4 ロードバランサです。
  • リージョン内部プロキシ ネットワーク ロードバランサは、同じ VPC ネットワーク内のクライアント、または VPC ネットワークに接続されているクライアントのみがアクセスできる内部 IP アドレスの背後で TCP サービス トラフィックを実行し、スケーリングできる Envoy プロキシベースのリージョン レイヤ 4 ロードバランサです。

次の図は、プロキシ ネットワーク ロードバランサ アーキテクチャの例を示しています。

プロキシ ネットワーク ロードバランサのアーキテクチャ。
プロキシ ネットワーク ロードバランサのアーキテクチャ(クリックして拡大)

パススルー ネットワーク ロードバランサ

パススルー ネットワーク ロードバランサは、レイヤ 4 のリージョン パススルー ロードバランサです。これらのロードバランサは、ロードバランサと同じリージョンのバックエンド間でトラフィックを分散します。これらは、Andromeda 仮想ネットワークと Google Maglev を使用して実装されます。

名前が示すように、これらのロードバランサはプロキシではありません。ロード バランシングされたパケットは、パケットの送信元 IP アドレス、宛先 IP アドレス、プロトコル(プロトコルがポートベースの場合は、送信元ポートと宛先ポートは変更されていません)を持つバックエンド VM によって受信されます。ロード バランシングされた接続はバックエンドで終端されます。バックエンド VM からのレスポンスは、ロードバランサを経由せず、クライアントに直接送信されます。これを業界用語で Direct Server Return(DSR)といいます。

次の図に示すように、これらのロードバランサは、ロードバランサがインターネット接続か内部接続かに応じて、次の 2 つのモードでデプロイされます。

  • 外部パススルー ネットワーク ロードバランサは Maglev 上に構築されています。これらのロードバランサには、Network Service Tiers に関係なく、インターネット上のどこからでも接続できます。また、ロードバランサは、 Trusted Cloud 外部 IP アドレスを持つ VM からのトラフィック、または Trusted Cloud Cloud NAT やインスタンス ベースの NAT を介したインターネット アクセスがある VM からのトラフィックを受信することもできます。

    外部パススルー ネットワーク ロードバランサのバックエンドは、バックエンド サービスまたはターゲット プールを使用してデプロイできます。新しいデプロイでは、バックエンド サービスを使用することをおすすめします。

  • 内部パススルー ネットワーク ロードバランサは、Andromeda ネットワークの仮想化スタック上に構築されます。内部パススルー ネットワーク ロードバランサを使用すると、同じ VPC ネットワークのシステムまたは VPC ネットワークに接続しているシステムのみがアクセスできる内部ロード バランシング IP アドレスの背後の TCP / UDP トラフィックをロードバランスできます。このロードバランサは、プレミアム ティアでのみ構成できます。

次の図は、パススルー ネットワーク ロードバランサのアーキテクチャの例を示しています。

パススルー ネットワーク ロードバランサのアーキテクチャ。
パススルー ネットワーク ロードバランサのアーキテクチャ(クリックして拡大)

Trusted Cloud ロードバランサの基盤となるテクノロジー

次の表に、各Trusted Cloud ロードバランサの基盤となるテクノロジーを示します。

  • Google Front End(GFE)は、Google の拠点(PoP)にあるソフトウェア定義の分散システムであり、他のシステムやコントロール プレーンと連携してグローバル負荷分散を行います。
  • Andromeda は、Google Cloud のソフトウェア定義のネットワーク仮想化スタックです。
  • Maglev は、ネットワーク ロード バランシング用の分散システムです。
  • Envoy は、クラウドネイティブ アプリ用に設計されたオープンソースのエッジおよびサービス プロキシです。
ロードバランサ テクノロジー
リージョン外部アプリケーション ロードバランサ Envoy
リージョン内部アプリケーション ロードバランサ Envoy
リージョン外部プロキシ ネットワーク ロードバランサ Envoy
リージョン内部プロキシ ネットワーク ロードバランサ Envoy
外部パススルー ネットワーク ロードバランサ Maglev
内部パススルー ネットワーク ロードバランサ Andromeda

ロードバランサを選択する

使用する Cloud Load Balancing プロダクトを決定するには、まず、ロードバランサが処理するトラフィック タイプを決定する必要があります。原則として、HTTP(S) トラフィックを使用するアプリケーションに柔軟な機能セットが必要な場合は、アプリケーション ロードバランサを選択します。また、大規模な TLS オフロードや UDP のサポートが必要な場合、あるいはクライアント IP アドレスをアプリケーションに公開する必要がある場合は、ネットワーク ロードバランサを選択します。

アプリケーションが外部(インターネットに公開)されているか内部専用かによって、選択肢をさらに絞り込むことができます。

次の図は、Cloud Load Balancing で利用可能なすべてのデプロイモードを示しています。詳細については、ロードバランサを選択するガイドをご覧ください。

ロードバランサの選択。
ロードバランサの選択(クリックして拡大)

Trusted Cloud ロードバランサの種類の概要

次の表に、各ロードバランサが動作するネットワーク サービス ティアと、そのロード バランシング スキームなどの詳細を示します。

ロードバランサ デプロイモード トラフィックの種類 ネットワーク サービス ティア ロード バランシング スキーム1
アプリケーション ロードバランサ リージョン外部 HTTP または HTTPS プレミアムまたはスタンダード ティア EXTERNAL_MANAGED
リージョン内部 HTTP または HTTPS プレミアム ティア INTERNAL_MANAGED
プロキシ ネットワーク ロードバランサ リージョン外部 TCP プレミアムまたはスタンダード ティア EXTERNAL_MANAGED
リージョン内部 TCP、SSL オフロードなし プレミアム ティア INTERNAL_MANAGED
パススルー ネットワーク ロードバランサ

外部

常にリージョン

TCP、UDP、ESP、GRE、ICMP、ICMPv6 プレミアムまたはスタンダード ティア EXTERNAL

内部

常にリージョン

TCP、UDP、ICMP、ICMPv6、SCTP、ESP、AH、GRE プレミアム ティア INTERNAL

1 ロード バランシング スキームは、ロードバランサに関する転送ルールバックエンド サービスの属性であり、ロードバランサを内部トラフィックと外部トラフィックのどちらで使用できるかを示します。

EXTERNAL_MANAGED または INTERNAL_MANAGED の「managed」という用語は、ロードバランサが Google Front End(GFE)またはオープンソースの Envoy プロキシのいずれかのマネージド サービスとして実装されていることを示します。managed のロード バランシング スキームでは、GFE または Envoy プロキシにリクエストがルーティングされます。

インターフェース

次のインターフェースを使用して、ロードバランサを構成、更新できます。

  • Google Cloud CLI: Google Cloud CLI に含まれるコマンドライン ツール。タスクの実行方法については、頻繁に使用されているツールのドキュメントをご覧ください。ツールの完全な概要については、gcloud CLI ガイドをご覧ください。ロード バランシングに関連するコマンドは、gcloud compute コマンド グループにあります。

    --help フラグを使用して、gcloud コマンドの詳細なヘルプを入手することもできます。

    gcloud compute http-health-checks create --help
    
  • Trusted Cloud コンソール: Trusted Cloud コンソールを使用してロード バランシング タスクを実行できます。

  • REST API: ロード バランシング タスクはすべて、Cloud Load Balancing API を使用して実行できます。使用できるリソースとメソッドについては API リファレンス ドキュメントで説明されています。

  • Terraform: Terraform などのオープンソースの Infrastructure-as-Code ツールを使用して、 Trusted CloudLoad Balancing インフラストラクチャをプロビジョニング、更新、削除できます。

次のステップ