コンテンツに移動
ネットワーキング

Google Cloud iLB + Cloud DNS によるマルチリージョンの内部ロード バランシングの設計

2023年6月27日
https://storage.googleapis.com/gweb-cloudblog-publish/images/ilb-hero.max-2500x2500.jpg
Google Cloud Japan Team

※この投稿は米国時間 2023 年 6 月 10 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Cloud は、複数のロードバランサ タイプを用意しています。Google Cloud 内で内部ロード バランシングを行う場合、お客様は以下の 3 つのオプションを利用できます。

  • 内部 HTTPS ロード バランシング

  • 内部 TCP プロキシ ロード バランシング

  • 内部 TCP / UDP ロード バランシング

Google Cloud 内部 HTTP(S) ロードバランサは、プロキシベースのリージョン レイヤ 7 ロードバランサです。これを使用すると、内部 IP アドレスの背後でサービスを実行し、スケールできます。

Google Cloud 内部リージョン TCP プロキシ ロードバランサは、TCP サービスをホストするためのプロキシベースのリージョン ロードバランサです。

Google Cloud 内部 TCP / UDP ロードバランサは、TCP トラフィックまたは UDP トラフィック用のリージョン レイヤ 4 パススルー ロードバランサで、元のパケットをプロキシなしで転送する必要がある場合に便利です。

これらの 3 種類の内部ロードバランサに共通するテーマの 1 つとして、すべてが本質的に「リージョン」であることが挙げられます。リージョン ロード バランシングは、複数のバックエンドが 1 つのリージョンにある場合や、トラフィックを特定のリージョンに留めるための地域のコンプライアンス要件がある場合に使用します。次の図は、内部ロードバランサの「リージョン」での動作を表しています。
https://storage.googleapis.com/gweb-cloudblog-publish/images/1-image.max-1400x1400.png

内部ロード バランシングのもう一つの側面は、クライアントが内部ロードバランサにアクセスする方法を決定することです。内部ロードバランサのグローバル アクセス機能により、クライアントはどのリージョンからでも特定のリージョンにデプロイされたサービスにロードバランサを介してトラフィックを送信できます。サービスは、Compute EngineGoogle Kubernetes Engine(GKE)Cloud Run、オンプレミス、その他のパブリック クラウドにデプロイでき、この機能と内部 HTTP(S) ロードバランサまたは TCP プロキシ ロードバランサを使用して世界中のクライアントと通信できます。

次の図は、「グローバル アクセス」機能がオフの場合とオンの場合の違いを示しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2-without-access.max-2100x2100.png
https://storage.googleapis.com/gweb-cloudblog-publish/images/3-with-access.max-2200x2200.png

グローバル アクセス機能を利用する場合、リージョン バックエンド サービスの健全性に基づいてユーザーのトラフィックを適切な内部ロードバランサに転送できるメカニズムを整備することがユーザーにとって重要になります。たとえば、リージョン 1 のバックエンド サービスが利用できないか異常である場合、アプリケーション オーナーは、リージョン 1 のユーザーが自動的に内部ロードバランサ 2 に切り替えられるように、アプリケーションの動作を構成する必要があるかもしれません。ここで重要な役割を果たすのが、Cloud DNS です。

Cloud DNS では、グローバル アクセスが有効になっている内部 TCP / UDP ロードバランサのヘルスチェックに対応しています。内部 TCP / UDP ロードバランサの場合、Cloud DNS は個々のバックエンド インスタンスから直接ヘルスシグナルを受け取ります。また、同じしきい値アルゴリズムが適用されます。

Cloud DNS のフェイルオーバー ルーティング ポリシーでは、アクティブなバックアップ構成を設定できます。フェイルオーバー ルーティング ポリシーでは、リソース レコードにプライマリ IP とバックアップ IP を構成できます。通常のオペレーションでは、Cloud DNS はプライマリ セットでプロビジョニングされた IP アドレスを使用してクエリに応答します。プライマリ セット内のすべての IP アドレスに障害が発生した(健全性が異常を示した)場合、Cloud DNS はバックアップ セット内の IP アドレスの提供を開始します。

次の例は、Cloud DNS でルーティング ポリシーを使用してレコードセットを構成しようとしたときに表示されるオプションを示しています。ここでは、クライアントの受信リージョンに基づいて、プライマリ ターゲットとバックアップ ターゲットを構成できます。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/4-failover.gif
フェイルオーバー オプションの選択
https://storage.googleapis.com/gweb-cloudblog-publish/images/5-image.max-2100x2100.png

フェイルオーバーのイメージ

ロード バランシングの詳細情報

Google Cloud でのロード バランシングの詳細については、以下を参照してください。

Google Cloud ネットワーキングの経済的メリットをご確認ください。また、ネットワーキングの詳細を https://cloud.google.com/products/networking でご覧ください。


- デベロッパーリレーションズ エンジニア Ammett Williams
- ネットワーキング担当カスタマー エンジニア Gaurav Madan

投稿先