はじめに

Google Cloudの各サービスについて、概要となる部分を紹介していきます。
今回は、Cloud Load Balancingの二回目です。

第一回でご紹介した概念を組み合わせ、それぞれのロードバランサーのユースケース紹介や所感を述べます。

第一回の記事はこちらです。

【Google Cloud 基礎理解】Cloud Load Balancing (1)

本記事では、外部アプリケーションロードバランサーについてご紹介します。
(本記事で紹介しきれなかったロードバランサーについては、次回のエントリでご紹介します。)

ロードバランサーの種類

Cloud Load Balancing には9種類の用途別のロードバランサーが用意されております。

  1. Global external Application Load Balancer
  2. Global external Application Load Balancer (Classic)
  3. Regional external Application Load Balancer
  4. Regional internal Application Load Balancer
  5. Global external proxy Network Load Balancer
  6. Regional external proxy Network Load Balancer
  7. Regional internal proxy Network Load Balancer
  8. Regional external passthrough Network Load Balancer
  9. Regional internal passthrough Network Load Balancer

そのうち、アプリケーションロードバランサーに分類されるものは、以下の4つです。

  1. Global external Application Load Balancer
  2. Global external Application Load Balancer (Classic)
  3. Regional external Application Load Balancer
  4. Regional internal Application Load Balance

さらに、以下のように分類されます

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

  1. Global external Application Load Balancer
  2. Global external Application Load Balancer (Classic)
  3. Regional external Application Load Balancer

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

  1. Regional internal Application Load Balance

(※次回のエントリでご紹介します)

それぞれのロードバランサーについて見ていきます。

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

  • レイヤ7(HTTP,HTTPS)
  • Google Front End(GFE)の一つ
  • 単一の外部IPアドレスとして構成
  • プロキシ型ロードバランサ
    • TCP通信をサポート
    • TCPコネクションがロードバランサの前後で異なる

1.Global external Application Load Balancer

概要・機能

  • 複数リージョンのバックエンドリソースにアクセス可能
  • Network Service Tiersのプレミアムティア
  • 高度なトラフィック管理をサポート
    • トラフィックステアリング
    • トラフィックアクション
    • トラフィックポリシー
  • GKE Gateway controllerをサポート
  • Cloud CDNをサポート
  • Google Cloud Armorをサポート

ユースケース

以下のドキュメントを参考にさせていただきました。

グローバル外部アプリケーション ロードバランサのトラフィック管理の概要  |  負荷分散  |  Google Cloud

HTTP(S)ヘッダーに基づくルーティング制御

  • トラフィックステアリングの設定により実現
  • ユーザーのデバイスがモバイルデバイスで、リクエストヘッダーにuser-agent:Mobileが含まれている場合は、モバイルトラフィックを処理するインスタンスに向けて、トラフィックを送信
  • リクエストヘッダーにuser-agent:Mobileを含まないトラフィックの場合、モバイル以外のデバイスからのトラフィックを処理するインスタンスに向けて、トラフィックを送信

引用:グローバル外部アプリケーション ロードバランサのトラフィック管理の概要  |  負荷分散  |  Google Cloud

重み付けに基づくトラフィック分割

  • トラフィックアクションの設定により実現
  • バックエンドへ送信するトラフィックに対して重み付けを実施
  • サービスの新バージョンのデプロイ時や、災対用に用意された片方のバックエンドサービスに対する、稼働状況の確認を目的とした定期的なトラフィックの送信の時に、利用可能

引用:グローバル外部アプリケーション ロードバランサのトラフィック管理の概要  |  負荷分散  |  Google Cloud

リクエストのミラーリング

  • トラフィックポリシーの設定で実現可能
  • 全てのトラフィックを別のサービスにミラーリング
  • ミラーリングされたリクエストの詳細をデータベースに記録することで、トラフィック分析を実施することが可能
  • 本番環境にて、本番トラフィックを受信させたい環境を用意することで、本番トラフィックを使った動作検証に利用可能

所感

高度なトラフィック管理がサポートされていることによって、アクセスに応じたさまざまなルーティング制御が可能となることがわかりました。

リクエストのミラーリング制御では、本番環境のトラフィックを利用することができます。データベースでの分析に限らず、パケットキャプチャするリソースを用意し、パケット分析をさせることで、ネットワーク障害時の調査や、セキュリティに関するテストを実施する際に、利用できるのではないでしょうか。

2.Global external Application Load Balancer (Classic)

概要・機能

  • 基本機能はGlobal external Application Load Balancerと同等
  • Ingressを使用するGKEをサポート
  • 高度なトラフィック管理はサポートされていない
  • Network Service Tiersのプレミアムティアを利用する場合、グローバルとして構成可能
  • Network Service Tiersのスタンダードティアを利用する場合、リージョンとして構成可能
  • Google Cloud Armor のサポート

ユースケース

高度なトラフィック管理がサポートされていないため、通常のGlobal external Application Load Balancerと比べると、ユースケースとしては限定されるかと思います。

ただし、アプリケーションロードバランサーのうち、唯一、Ingressを使用するGKEをサポートしています。

バックエンドとなるGKEがIngressを使用している場合、Global external Application Load Balancer (Classic)を利用する選択となるかと思います。

3. Regional external Application Load Balancer

概要・機能

  • 高度なトラフィック管理をサポート
  • GKE Gateway controllerをサポート
  • 構成した単一リージョンでTLS通信を終端
  • 構成された単一のリージョンのみからコンテンツを配信
  • Network Service Tiersのスタンダードティアを利用可能

ユースケース

  • 単一リージョンからコンテンツを配信する場合
  • Network Service Tiersのスタンダードティアを利用する場合

Regional external Application Load Balancerは、バックエンドのサービス利用者が特定の国だけであり、バックエンドサービスがその特定の国のみに構成されている場合に利用します。

バックエンドとして構成するサービスは、Regional対応となるGCEやCloud Run、GKEなどに制限されます。

Network Service Tiersのスタンダードティアのみをサポートしているため、ネットワークパフォーマンスよりもコストを重視したシステムに対して適しています。

所感

シングルリージョン構成での、フロントエンドでの負荷分散時は、こちらを選択します。

そのためか、Network Service Tiersもスタンダードティアのみのサポートとなっているため、プレミアムティアと比べると、コストメリットも存在します。

また、Regional external Application Load Balancerも、高度なトラフィック管理をサポートしているため、Global external Application Load Balancerでご紹介したユースケースを参考にできます。

終わりに

次回は、今回記載できなかったサービスについて、引き続きご紹介していきます。

参考文献

外部アプリケーション ロードバランサの概要  |  負荷分散  |  Google Cloud

Network Service Tiers – カスタム クラウド ネットワーク  |  Google Cloud

グローバル外部アプリケーション ロードバランサのトラフィック管理の概要  |  負荷分散  |  Google Cloud

アプリケーション ロードバランサの概要  |  負荷分散  |  Google Cloud

ロードバランサの選択  |  負荷分散  |  Google Cloud