Apigee が APIM Extension Processor の一般提供を発表

2025年4月15日
Ishita Saxena Strategic Cloud Engineer
Sanjay Pujare Software Engineer

Apigee Extension Processor(バージョン 1.0)の一般提供(GA)についてお知らせします。この強力な新機能により、Apigee のリーチと柔軟性が大幅に広がり、さまざまなバックエンド サービスやモダン アプリケーション アーキテクチャをこれまで以上に簡単に管理したり保護したりできるようになります。

最新のデプロイメント モデルを採用しているデベロッパーのために、Extension Processor で Cloud Run とのシームレスな連携機能を提供します。これにより、コンテナ化したスケーラブルなアプリケーションに Apigee ポリシーを適用できるようになります。

また、Extension Processor を使うと、強力な新しい通信パターンを利用できます。gRPC 双方向ストリーミングによる高度なリアルタイム インタラクションを簡単に管理できるので、高度にインタラクティブな低レイテンシ アプリケーションを実現できます。さらに、イベント駆動アーキテクチャを利用する場合は、サーバー送信イベント(SSE)の管理と保護が可能になるので、クライアントへのデータ ストリーミングを簡単に効率化できます。

この機能の利点は、アプリケーションのデプロイと通信プロトコルにとどまりません。Apigee Extension Processor と Google トークン インジェクション ポリシーを組み合わせると、Google Cloud インフラストラクチャのアクセス保護が劇的に簡単になります。Apigee の一貫したセキュリティ フレームワークを維持しながら、Bigtable などの強力なデータサービスにシームレスに接続してアクセスを制御し、機械学習ワークロードに Vertex AI のインテリジェンスを活用することができます。

加えて、Extension Processor と Google の Cloud Load Balancing のインテリジェントなトラフィック管理機能を連携させれば、多様なトラフィック フローのルーティングと管理に比類のない柔軟性をもたらすことができます。この強力な組み合わせにより、どんなに複雑な API 環境でも管理できるようになるため、無数の可能性が開かれます。

このブログでは、現在の高パフォーマンス リアルタイム アプリケーション環境における重要な課題に対処できる強力なソリューション、すなわち Apigee の gRPC ストリーミング管理の概要を説明します。gRPC は効率的なマイクロサービスの基盤ですが、ストリーミングであるがゆえに、Google Cloud の Apigee をインライン プロキシ(従来モード)として利用する組織に課題をもたらします。以降で説明しますが、Apigee Extension Processor を使うと、gRPC ストリーミングのトラフィックがアプリケーション ロードバランサ(ALB)を通過する際に、Apigee のデータプレーンがトラフィックにポリシーを適用できます。これは、サービス拡張機能(トラフィック拡張機能)によって実現しており、Apigee ゲートウェイを直接通過させることなく、gRPC ストリームを効果的に管理およびルーティングできます。

ここでは、このソリューションの中核的な要素やその利点について詳しく説明するとともに、Cloud Run バックエンドに関わる実際のユースケースの概要をお伝えします。


Apigee Extension Processor を理解する

Apigee Extension Processor は強力なトラフィック拡張機能(サービス拡張機能の一種)です。Cloud Load Balancing を活用し、API 管理の一環として Apigee を呼び出すことができます。これにより、ALB がユーザー管理バックエンド サービスにリクエストを転送する前に API 管理ポリシーを適用できます。つまり、Cloud Load Balancing を通過するワークロードでも、実質的に Apigee の確かな API 管理機能を利用できるようになります。


インフラストラクチャとデータフロー

次の図は、Apigee Extension Processor 構成に必要なコンポーネントの概要を示しています。

Apigee Extension Processor の構成には、ALB、Extension Processor を有効にした Apigee インスタンス、サービス拡張機能など、いくつかの重要なコンポーネントが含まれています。これらのコンポーネントの詳細については、Apigee Extension Processor の概要をご覧ください。

Data flow diagram for Apigee Services extensions

以降のステップに付いている番号は、一連のイベントを示し、フロー図の矢印の番号に対応しています。

1: クライアントが ALB にリクエストを送信します。

2: この ALB がポリシー適用ポイント(PEP)となり、トラフィックを処理します。この処理の一環として、設定されたサービス拡張機能(トラフィック拡張機能)を通じて Apigee を呼び出します。

3: Apigee Extension Processor は、ポリシー決定ポイント(PDP)となってリクエストを受信し、対象となる API 管理ポリシーをリクエストに適用したうえで、処理済みのリクエストを ALB(PEP)に返します。

4: ALB は処理を完了し、リクエストをバックエンド サービスに転送します。

バックエンド サービスは応答を開始し、ALB がそれを受信します。応答にポリシーを適用することもできます。その場合、ALB はサービス拡張機能を通して再度 Apigee を呼び出してから、クライアントに転送します。


ギャップを埋める: gRPC ストリーミング パススルーの実現

多くの最新のアプリケーションはストリーミング gRPC の機能が必要で、それを利用しています。ただし、インライン プロキシとして使われる Apigee は、現時点でストリーミングをサポートしていません。Apigee Extension Processor が非常に重要になるのはそのためです。具体的には、ALB が PEP(ポリシー適用ポイント)として振る舞い、ストリーミング gRPC トラフィックを処理します。一方の Apigee ランタイムは、PDP(ポリシー決定ポイント)として振る舞います。


Apigee で gRPC ストリーミング パススルーを実現するために必要になる主な要素

Apigee Extension Processor を使って gRPC ストリーミング パススルーを実現するには、次の重要な要素が必要になります。詳しい構成手順については、Apigee Extension Processor を使ってみるをご覧ください。

  • gRPC ストリーミング バックエンド サービス: 必要なストリーミング機能(サーバー、クライアント、双方向)を実装する gRPC サービス。

  • アプリケーション ロードバランサ(ALB): クライアント リクエストのエントリ ポイント。トラフィックをルーティングし、Apigee サービス拡張機能を呼び出すように構成されます。

  • Extension Processor を有効にした Apigee インスタンス: Extension Processor 機能で構成された Apigee のインスタンスと環境は、サービス拡張機能からのトラフィックの ext-proc 処理にターゲットレス API プロキシを使います。

  • サービス拡張機能構成: ALB と Apigee ランタイム間のブリッジとして動作するトラフィック拡張機能(サービス拡張機能の一種)。Private Service Connect(PSC)を利用するのが理想的です。

  • ネットワーク接続: すべてのコンポーネント間(クライアントから ALB、ALB から Apigee、ALB からバックエンド)の通信を可能にする適切なネットワーク設定。

ユースケース: Apigee による Cloud Run での gRPC ストリーミング サービスの保護と管理

リアルタイム アプリケーション ログの提供など、gRPC ストリーミング機能に対応した高パフォーマンス バックエンド サービスをお客様が開発するシナリオを考えてみましょう。スケーラビリティを実現し、管理を簡単にするために、このバックエンド アプリケーションはプライマリの Google Cloud プロジェクトの Google Cloud Run にデプロイしています。現在、お客様は、この gRPC ストリーミング サービスを、適切に管理された安全な API ゲートウェイを通じてクライアントに公開したいと考えています。この目的のために Apigee を選択し、認証、認可、レート制限などのポリシーを含む堅牢な API 管理機能を活用しています。


課題

前述のように、Apigee をインライン プロキシモードで使う場合、gRPC ストリーミングはネイティブにサポートされません。そのため、標準の Apigee 構成を通じて Cloud Run gRPC サービスを直接公開しても、クライアント、サーバー、双方向ストリーミングといったストリーミングのユースケースはサポートされません。


解決策

Apigee Extension Processor が必要なブリッジを提供してくれるので、同じ Google Cloud プロジェクトの Cloud Run にデプロイされたバックエンド アプリケーション宛ての gRPC ストリーミング トラフィックを管理できます。

簡単な手順は次のとおりです。


1: クライアントの処理開始

  • クライアント アプリケーションが gRPC ストリーミング リクエストを開始します。

  • このリクエストは、エントリ ポイントとして動作する ALB のパブリック IP アドレスまたは DNS 名に向けられます。


2:
アプリケーション ロードバランサ処理とサービス拡張機能の呼び出し

  • ALB が gRPC ストリーミング リクエストを受信します。

  • ALB は、Cloud Run のバックエンドに向けられたサーバーレス ネットワーク エンドポイント グループ(NEG)を使うバックエンド サービスで構成されています。

  • さらに、特定の Apigee ランタイム バックエンドが構成されたサービス拡張機能(トラフィック拡張機能)も設定されています。

  • 対象となるトラフィックを受信した ALB は、最初にこのサービス拡張機能を呼び出します。


3: Apigee のプロキシ処理

  • gRPC リクエストはサービス拡張機能を経由して、指定された Apigee API プロキシに転送されます。

  • この Apigee X プロキシ内で、さまざまな API 管理ポリシーが実行されます。これには、認証、認可、レート制限などが含まれます。

注: このシナリオの Apigee プロキシは、ターゲットのないプロキシです。つまり、ターゲット エンドポイントが設定されていません。最終的なルーティングは ALB に依存します。


4: ALB に戻る

  • Apigee プロキシにはターゲットがないため、ポリシー処理後、コントロールはサービス拡張機能の応答を通じて ALB に戻されます。


5: ロードバランサによる Cloud Run バックエンドへのルーティング

  • ALB は、バックエンド サービス構成に基づいて、gRPC ストリーミング リクエストを適切なバックエンド サービスに転送します。このサービスは、Cloud Run サービスが存在するサーバーレス NEG にマッピングされています。

  • ALB は、下層での Cloud Run インスタンスへのルーティングを処理します。


6: 応答処理

応答処理は、リクエスト フローと同様のパターンで行います。バックエンドが応答を開始すると、ALB がそれを処理します。ALB は、サービス拡張機能(トラフィック拡張機能)を通じて Apigee を呼び出し、ポリシーを適用してから、応答をクライアントに転送することもできます。


このシンプルなユースケースでは、Apigee Extension Processor を使って、同じ Google Cloud プロジェクト内の Cloud Run にデプロイされたアプリケーション宛ての gRPC ストリーミング トラフィックに API 管理ポリシーを適用する方法を示しています。ALB は、主に NEG 構成に基づき、Cloud Run サービスへのルーティングを処理します。


gRPC ストリーミングで Apigee Extension Processor を活用するメリット

Apigee Extension Processor を使ってバックエンドの gRPC ストリーミング サービスを管理することで、いくつかの重要な利点を得ることができます。それにより、プラットフォームで Apigee の中核的な強みを次のような新たな応用例に活用できます。

  • Apigee のリーチ拡大

gRPC ストリーミングは、Apigee プラットフォームのコアプロキシでネイティブにサポートされていないストリーミング通信パターンですが、このアプローチによって、Apigee の堅牢な API 管理機能を利用できるようになります。

  • 既存の投資の活用

すでに RESTful API に Apigee を活用している組織がこのソリューションを使うと、gRPC ストリーミング サービスを Apigee で管理できるようになります。Extension Processor を使う必要はありますが、使い慣れた API 管理の考え方を活用できるので、別のツールを使う必要性が減少します。

  • ポリシー管理の一元化

Apigee は、API 管理ポリシーを一元的に定義して適用するためのプラットフォームです。Extension Processor を通して gRPC ストリーミングを扱えるようにすることで、すべての API エンドポイントで一貫したガバナンスとセキュリティを維持できます。

  • 収益化の可能性

gRPC ストリーミング サービスをプロダクトとして公開する場合、Apigee の収益化機能を活用できます。Apigee で作成したカスタム API プロダクトに料金プランを追加すれば、gRPC ストリーミング API が使われるたびに収益を上げることができます。

  • オブザーバビリティとトレーサビリティの向上

パススルー シナリオでは、詳細な gRPC プロトコルレベルの分析が制限される場合があります。しかし Apigee なら、接続試行、エラー率、全体的な使用パターンなど、ストリーミング サービスのトラフィックに関する貴重な知見を提供できます。このオブザーバビリティは、モニタリングやトラブルシューティングに不可欠です。

Apigee の分散トレース システムは、gRPC ストリーミング サービスを含む分散システムのリクエストを追跡する際に役立ち、複数のアプリケーション、サービス、データベースにわたってエンドツーエンドの可視性を提供します。

  • ビジネス インテリジェンス

Apigee API Analytics は、ロードバランサを通過する豊富な情報を収集し、UI でデータを視覚化したり、データをダウンロードしてオフライン分析したりする機能を提供します。このデータは、使用パターンの理解、パフォーマンスのボトルネックの特定、情報に基づくビジネスの意思決定に非常に役立ちます。

Apigee Extension Processor は、Google Cloud の gRPC ストリーミング サービスに欠かせない API 管理を実現します。以上の利点を考慮すれば、これが有用で実用的な方法であることは明らかです。


今後の予定

Apigee Extension Processor は、Apigee の機能を拡張する上で重要な前進となります。私たちが思い描くのは、どんなゲートウェイでも Apigee のポリシー適用機能を活用できる未来です。これは、ext-proc プロトコルを利用し、さまざまな Envoy ベースのロードバランサやゲートウェイと連携することで実現します。それにより、ロードバランサやゲートウェイがポリシー適用ポイント(PEP)として、Apigee ランタイムがポリシー決定ポイント(PDP)として振る舞えるようになります。この進化によって、ますます分散化が進む異機種混在環境でも、デジタル アセットを一貫して管理し、保護することができます。