API Gateway への Google Cloud HTTP(S) ロード バランシングのサポートの統合により、サーバーレス バックエンドは Cloud Load Balancing が提供するすべての機能を利用できるようになります。サーバーレス ネットワーク エンドポイント グループ(サーバーレス NEG)を使用して API Gateway と HTTP(S) ロード バランシングを組み合わせると、次のことが可能になります。
- カスタム ブランド ドメインを持つゲートウェイをホストする
- 任意の認証局によって発行される証明書を使用してゲートウェイの TLS を構成する
- 複数のバックエンドへのゲートウェイ ルーティング用に共通のエントリ ポイントを作成する
- 複数の地理的リージョンにゲートウェイをデプロイして、各リージョンの URL を管理することなく高可用性を実現する
- Cloud Armor でゲートウェイを保護する
- Cloud CDN を利用してゲートウェイのレスポンス時間を改善する
API Gateway に対するサーバーレス NEG の使用
ネットワーク エンドポイント グループ(NEG)は、ロードバランサのバックエンド エンドポイントのグループを指定します。サーバーレス NEG は、Cloud Run、App Engine、API Gateway などの Google がホストするサーバーレス バックエンドを指すバックエンドです。API Gateway のサーバーレス NEG バックエンドは、次を表すことができます。
- API Gateway インスタンス
- 同じ API 構成で構成されたゲートウェイのグループ
次の図は、Cloud Load Balancing モデルでサーバーレス NEG を使用する方法を示しています。
前述のように、バックエンド サービスは複数のサーバーレス NEG で管理できます。各サーバーレス NEG には、単一の API Gateway インスタンスを含めるか、URL マスクを使用して複数のゲートウェイを指すことができます。バックエンド サービスとして機能する NEG はすべてロード バランシングに使用されるため、機能的に同等のゲートウェイ デプロイを表す必要があります。たとえば、すべての NEG で、同じ API 構成を異なるゲートウェイの各ゲートウェイにデプロイする必要があります。バックエンド サービスに複数の 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
関連フィールドで指定された値はサポートされません。
バックエンド サービス構成の IAP
、cdnPolicy
、securityPolicy
のフィールドは、サーバーレス NEG に対して有効です。これらのフィールドを使用して、API Gateway サービスで Identity-Aware Proxy、Cloud CDN、Cloud Armor をそれぞれ設定できます。
次のステップ
API Gateway の HTTP(S) ロード バランシング スタートガイドに従ってロードバランサを構成します
API Gateway のマルチリージョン デプロイの作成のチュートリアル
詳しくは、カスタム ドメインの使用をご覧ください。