Google Cloud iLB + Cloud DNS によるマルチリージョンの内部ロード バランシングの設計
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 つのリージョンにある場合や、トラフィックを特定のリージョンに留めるための地域のコンプライアンス要件がある場合に使用します。次の図は、内部ロードバランサの「リージョン」での動作を表しています。内部ロード バランシングのもう一つの側面は、クライアントが内部ロードバランサにアクセスする方法を決定することです。内部ロードバランサのグローバル アクセス機能により、クライアントはどのリージョンからでも特定のリージョンにデプロイされたサービスにロードバランサを介してトラフィックを送信できます。サービスは、Compute Engine、Google Kubernetes Engine(GKE)、Cloud Run、オンプレミス、その他のパブリック クラウドにデプロイでき、この機能と内部 HTTP(S) ロードバランサまたは TCP プロキシ ロードバランサを使用して世界中のクライアントと通信できます。
次の図は、「グローバル アクセス」機能がオフの場合とオンの場合の違いを示しています。
グローバル アクセス機能を利用する場合、リージョン バックエンド サービスの健全性に基づいてユーザーのトラフィックを適切な内部ロードバランサに転送できるメカニズムを整備することがユーザーにとって重要になります。たとえば、リージョン 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 でルーティング ポリシーを使用してレコードセットを構成しようとしたときに表示されるオプションを示しています。ここでは、クライアントの受信リージョンに基づいて、プライマリ ターゲットとバックアップ ターゲットを構成できます。
フェイルオーバーのイメージ
ロード バランシングの詳細情報
Google Cloud でのロード バランシングの詳細については、以下を参照してください。
Codelab ハンズオン - Cloud DNS ルーティング ポリシーと、内部 TCP / UDP ロードバランサのヘルスチェックを使用したマルチリージョン フェイルオーバー
YouTube - ロード バランシングとサービス ネットワーキングの新機能
ドキュメント - DNS ヘルスチェック
ドキュメント - DNS フェイルオーバー ポリシー
ドキュメント - ロードバランサを選択する
Google Cloud ネットワーキングの経済的メリットをご確認ください。また、ネットワーキングの詳細を https://cloud.google.com/products/networking でご覧ください。
- デベロッパーリレーションズ エンジニア Ammett Williams
- ネットワーキング担当カスタマー エンジニア Gaurav Madan