API Gateway のロード バランシング

API Gateway へのグローバル外部アプリケーション ロードバランサ従来のアプリケーション ロードバランサのサポートの統合により、サーバーレス バックエンドは Cloud Load Balancing が提供するすべての機能を利用できるようになります。サーバーレス ネットワーク エンドポイント グループ(サーバーレス NEG)を使用して、API Gateway とグローバル外部アプリケーション ロードバランサまたは従来のアプリケーション ロードバランサを組み合わせると、次のことが可能になります。

  • カスタム ブランド ドメインでゲートウェイをホストする
  • 任意の認証局が発行した証明書を使用してゲートウェイ用の TLS を構成する
  • 複数のバックエンドへのゲートウェイ ルーティング用に共通のエントリ ポイントを作成する
  • 複数の地理的リージョンにゲートウェイをデプロイして、各リージョンの URL を管理することなく高可用性を実現する
  • Cloud Armor でゲートウェイを保護する
  • Cloud CDN を使用してゲートウェイの応答時間を改善する

API Gateway に対するサーバーレス NEG の使用

ネットワーク エンドポイント グループ(NEG)は、ロードバランサのバックエンド エンドポイントのグループを指定します。サーバーレス NEG は、Cloud RunApp Engine、API ゲートウェイなどの Google がホストするサーバーレス バックエンドを指すバックエンドです。API Gateway のサーバーレス NEG バックエンドは、次の対象を表すことができます。

  • API Gateway インスタンス
  • 同じ API 構成で構成されたゲートウェイのグループ

次の図は、Cloud Load Balancing モデルでサーバーレス NEG を使用する方法を示しています。

マルチリージョン ゲートウェイのバックエンドとしてのサーバーレス NEG を示す図

前の例で説明したように、バックエンド サービスは複数のサーバーレス NEG によって管理できます。各サーバーレス NEG には、単一の API Gateway インスタンスを配置できます。または、URL マスクを使用して複数のゲートウェイを指すように設定することもできます。バックエンド サービスとして機能する NEG はすべてロード バランシングに使用されるため、機能的に同等のゲートウェイ デプロイを表す必要があります。たとえば、すべての NEG の異なるリージョンの各ゲートウェイに同じ API 構成をデプロイする必要があります。バックエンド サービスに複数の NEG が含まれている場合、ロードバランサはリクエストの NEG を最小限に抑え、これらの NEG 間でトラフィックを分散します。

サーバーレス NEG と API Gateway に関する制限

サーバーレス NEG を使用して API Gateway の Cloud Load Balancing を統合する場合は、いくつかの制限事項を考慮する必要があります。 特に重要な点は次のとおりです。

  • サーバーレス NEG に、IP アドレスやポートなどのネットワーク エンドポイントを接続することはできません。
  • サーバーレス NEG は、NEG が作成されたのと同じリージョンにある API Gateway インスタンスのみを指すことができます。
  • サーバーレス NEG は、サーバーレス NEG バックエンドを使用して、ロードバランサと同じプロジェクトで作成された API Gateway インスタンスのみを指すことができます。
  • API Gateway は上り(内向き)制御設定をサポートしていません。そのため、サービスによって生成されたゲートウェイ URL を介して API Gateway へのアクセスを無効し、すべてのトラフィックがロードバランサによって処理されることを保証する方法はありません。

サーバーレス NEG とバックエンド サービスに関する制限の全般的な詳細については、制限事項をご覧ください。

バックエンド サービス構成でのサーバーレス NEG に関する制限事項

バックエンド サービスは、Cloud Load Balancing によるトラフィックの分散方法を定義します。バックエンド サービスの構成には、バックエンドへの接続に使用されるプロトコル、さまざまな配信とセッションの設定、ヘルスチェック、タイムアウトなどの値が含まれます。API Gateway のバックエンド サービスとして使用されるサーバーレス NEG の場合、これらの設定により、ロードバランサの動作を細かく制御できます。

バックエンド サービスのリソース定義には、ロード バランシングの設計に次のような影響があります。

  • サーバーレス NEG は、同じバックエンド サービスの他のタイプの NEG と併用できません。たとえば、同じバックエンド サービスから GKE クラスタと API Gateway インスタンスに転送することはできません。
  • バックエンド サービスで組み合わせたすべてのサーバーレス NEG も、同じタイプのバックエンドを使用する必要があります。つまり、API Gateway サーバーレス NEG は、他の API Gateway サーバーレス NEG とのみ組み合わせることができ、App Engine サーバーレス NEG は App Engine サーバーレス NEG とのみ組み合わせることができます。
  • バックエンド サービスに含めることができるサーバーレス NEG はリージョンごとに 1 つのみです。

サーバーレス NEG に転送するバックエンド サービスの構成を定義する場合は、次のフィールドの制限が適用されます。

  • balancingMode は指定できません
  • healthCheck フィールドは空にする必要があり、指定できません
  • ポートは指定できません
  • サポートされているのは HTTP プロトコルと HTTPS プロトコルのみです。
  • utilization または connection 関連フィールドで指定された値はサポートされません。

バックエンド サービス構成の IAPcdnPolicysecurityPolicy のフィールドは、サーバーレス NEG に対して有効です。これらのフィールドを使用して、API Gateway サービスで Identity-Aware ProxyCloud CDNCloud Armor をそれぞれ設定できます。

次のステップ