Service Extensions を使用すると、 Google Cloudプロダクト(Cloud Load Balancing、Media CDN、Secure Web Proxy など)のユーザーはカスタムコードをデータパスに直接挿入できます。これにより、ビジネスニーズに合わせてこれらのプロダクトの動作をカスタマイズできます。このページでは、Service Extensions の概要について説明します。
拡張機能の種類
Cloud Load Balancing、Media CDN、Secure Web Proxy などのネットワーキング プロダクトのデータパスは、データ処理ステージのパイプラインとして可視化できます。Service Extensions を使用すると、これらのステージの 1 つ以上にカスタム ロジックを挿入できます。
Service Extensions には、カスタム ロジックを挿入する 2 つの方法(プラグインとコールアウト)が用意されています。
プラグイン
プラグインを使用すると、カスタムコードをネットワーク データパスにインラインで挿入できます。
プラグインのビルドには WebAssembly(Wasm)と Proxy-Wasm ABI を使用します。プラグインは、サーバーレス インフラストラクチャと同様の Google が管理するサンドボックス インフラストラクチャで Wasm モジュールとして実行されます。プラグインは Google が管理するコンピューティングで実行されます。機能が制限されており、厳格なランタイム要件があります。データプレーンの近くで実行され、レイテンシの最適化が管理されます。
プラグインの詳細については、プラグインの概要をご覧ください。
コールアウト
コールアウトを使用すると、Cloud Load Balancing を使用して、データ処理中に Google サービスとユーザーマネージド サービスに対して Envoy gRPC 呼び出しを行うことができます。
コールアウトは、ユーザー管理のコンピューティング VM、GKE Multi-Cloud の Google Kubernetes Engine(GKE)Pod、またはオンプレミス環境で汎用 gRPC サーバーとして実行されます。
コールアウトにはランタイム制限がなく、必要に応じて既存のソフトウェアを再利用できます。コールアウトを使用すると、特定のワークロードの固有のニーズに合わせてカスタマイズ可能なフルマネージド サービスのメリットを享受できます。コールアウト サービスのスケーラビリティと可用性を確認するだけで済みます。
コールアウトの詳細については、コールアウトの概要をご覧ください。
Cloud Load Balancing 拡張機能
Cloud Load Balancing の Service Extensions を使用すると、サポートされているアプリケーション ロードバランサのロード バランシング リクエストとレスポンスの処理パスに豊富なカスタマイズを追加できます。
詳細については、Cloud Load Balancing の拡張機能の概要をご覧ください。
プラグイン
Service Extensions を使用すると、事前に公開されたプラグインを Cloud Load Balancing の処理パスに追加して、カスタムニーズに使用できます。
Cloud Load Balancing でプラグインを使用するシナリオの例を以下に示します。
例外処理
- 特定のエラー応答の場合、クライアントをカスタム エラーページにリダイレクトする。
カスタム ロギング
- ユーザー定義のヘッダーやカスタム データを Cloud Logging に記録する。
ヘッダーの追加
- 使用しているアプリケーションや個々の顧客に応じた新しいヘッダーを作成する。
- リクエストとレスポンスの新しいヘッダーを挿入する。
ヘッダーの操作
- 既存のリクエスト ヘッダーとレスポンス ヘッダーを書き換えるか、バックエンドに送信されるクライアント ヘッダーまたはクライアントへのレスポンス中にクライアント ヘッダーをオーバーライドします。
セキュリティ
- クライアントのリクエスト ヘッダーまたはレスポンス ヘッダーに基づいてカスタム セキュリティ ポリシーを作成し、プラグイン内で適用に関する判断を下す。
スクリプト インジェクション
- Google reCAPTCHA の統合または Google アナリティクスのタグ付けのために、オリジンから HTML を書き換えます。
Cloud CDN への影響
- HTTP リクエストの特性を操作して、カスタム キャッシュの動作を制御し、Cloud CDN キャッシュから配信されるコンテンツを決定します。
ルーティング
- HTTP リクエストを書き換えてバックエンド サービスの選択に影響を与え、エッジでより高度なルーティングを決定できるようにします。
ユーザー管理サービスへのコールアウト
Service Extensions を使用すると、サポートされているアプリケーション ロードバランサは、データ処理パスからユーザーが管理するバックエンド サービスにコールアウトを送信できます。
Cloud Load Balancing でコールアウトを使用すると、次のことができます。
- コンピューティングまたはストレージの量が任意の場合
- 状態を維持する場合
- BigQuery や、どこかでホストされているサードパーティ アプリケーションなどの外部サービスを使用する場合
コールアウトは柔軟性が高く、さまざまなカスタマイズをサポートしています。日常的なユースケースの例を次に示します。
カスタム ルーティングとトラフィック管理
- HTTP または URL のリダイレクトを実行する。
- アプリケーション固有のロジックに基づいて、ヘッダーや URL などのリクエスト属性を変更し、URL マップでリクエストの元のターゲットとは異なるバックエンド サービスを選択するようにします。
- バックエンド サービスにトラフィックを転送する前に、複雑なアプリケーション固有のロジックに基づいて、ヘッダーの追加、削除、変更、または URL の書き換えを行います。
- リクエストの特定の属性に基づいて、カスタム セッション アフィニティまたはスティッキネスを実装する。
- プレビューで、テナントをエンドポイントにプログラムでマッピングする動的転送を実装します。
セキュリティとロギング
- ペイロードまたはカスタム ヘッダーから Logging またはカスタムメイドのロギング ソリューションにカスタム情報をロギングする。
- カスタム ユーザー認証や認可サポートなどのセキュリティ ツールやサービスを使用する。
- デバイス ID などの任意のヘッダーとクエリ パラメータを検証する。
- リクエストとレスポンスをサードパーティのロギング ソリューションに記録する。
- カスタムのユーザー認証と認可を実装する。
パートナー統合
- API Gateway セキュリティ、BOT 管理、ウェブ アプリケーション ファイアウォール(WAF)などのセキュリティ プロダクトを統合します。
承認
- 認可の意思決定プロセスを強化するか、Google 提供の組み込み認可エンジンからの認可の決定をさらに制限します。
- 複数の認可システムからの認可の決定を組み合わせる。
- Google 認可エンジンを、外部ポリシー エンジンを含む広範な認可エコシステムやインフラストラクチャとシームレスに統合します。
詳細については、Cloud Load Balancing と Cloud CDN の拡張機能の概要をご覧ください。
Google サービスへのコールアウト
Service Extensions を使用すると、サポートされているアプリケーション ロードバランサは、データ処理パスから選択した Google サービスにコールアウトを送信できます。
Model Armor を呼び出すように拡張機能を構成して、GKE Inference Gateway などのアプリケーション ロードバランサの推論トラフィックにセキュリティ ポリシーを均一に適用できます。
詳細については、Google サービスとの統合をご覧ください。
GKE 拡張機能
Google Kubernetes Engine(GKE)Gateway は、拡張機能を使用してロード バランシング処理パスにカスタムコードを追加することをサポートしています。これらの拡張機能を使用すると、ルーティングのカスタマイズ、リクエストまたはレスポンスのペイロードの変更、外部サービスとの統合を行うことができます。
詳細については、Service Extensions を使用して GKE Gateway トラフィックのルーティングをカスタマイズするをご覧ください。
Media CDN 拡張機能
Media CDN には、コンテンツ配信ネットワーク(CDN)の一般的なユースケースに対応する多くのコア機能が組み込まれています。Service Extensions は、これらの機能を超えるいくつかの要件に対応するのに役立ちます。
詳細については、Media CDN 拡張機能の概要をご覧ください。
Media CDN のエッジ拡張機能
Service Extensions を使用すると、エッジ拡張機能(CdnEdgeExtension)を使用して、WebAssembly(Wasm)プラグインを Media CDN エッジ キャッシング サービス(EdgeCacheService)に直接アタッチできます。
これらの拡張機能を使用すると、リクエストとレスポンスの処理パスで HTTP リクエスト ヘッダーとレスポンス ヘッダーを直接検査して変更できます。詳細については、Media CDN 拡張機能の概要の Media CDN エッジ拡張機能の仕組みをご覧ください。
Media CDN でエッジ拡張機能を使用する方法を示す主なユースケースをいくつか紹介します。
カスタマイズ
- リクエスト URL を書き換える。
- ヘッダー値を正規化してキャッシュのパフォーマンスを向上させます。
- 動的ルート選択またはオリジン選択の Media CDN ルートルールに一致するリクエスト ヘッダーを設定します。
- アプリケーションまたはエンドユーザーの要件を満たすようにレスポンス ヘッダーをカスタマイズします。
セキュリティとロギング
- ライブイベント中に、不正なトークンを使用しているユーザーをブロックします。
- カスタム ユーザー認証と認可をサポートする。
- カスタム URL 署名を変換して実装します。
- キャッシュキー、アプリケーション固有のヘッダー、デバイスタイプをカスタマイズする。
- カスタム変数を Cloud Logging に記録する。
ターゲティングと収益化
- A/B テストを通じてコンバージョンを改善する。
- カスタム広告のターゲット設定を実装する。
- 追加料金なしでトライアル使用モデルを提供する。
パートナー統合
- 動画の透かしを実装します。
- 動画や画像を最適化する。
Secure Web Proxy 拡張機能
Secure Web Proxy は、組織の送信トラフィックを一元的にポリシーベースで制御するクラウド ファーストのサービスです。詳細については、Secure Web Proxy 拡張機能の概要をご覧ください。
Secure Web Proxy を使用すると、ツールにアクセスしようとしている、またはインターネット上の他のエージェントとやり取りしようとしているソース ワークロードまたはエージェントの ID を検証する認可ポリシーを構成できます。
Secure Web Proxy のコールアウト
Service Extensions を使用すると、コールアウトを使用してカスタム サービスを Secure Web Proxy 処理パスに直接挿入できます。
Secure Web Proxy でコールアウトを使用できる主なユースケースは次のとおりです。
セキュリティ
- 認可の決定を、構成された Policy Engine またはエージェント アプリケーションに委任します。
- アウトバウンド データ転送と AI エージェント フローを、専門のセキュリティ プロバイダと統合します。
- カスタム認証または認可ソリューションを実装する。
カスタマイズ
- トラフィックが宛先に到達する前に、トラフィックを検査、変更、ブロックします。
- HTTP ヘッダーを動的に追加する。
- カスタムのビジネス ロジックを適用する。
Global Front End
Global Front End は、Service Extensions、グローバル外部アプリケーション ロードバランサ、Google Cloud Armor、Cloud CDN を 1 つのソリューションに統合し、インターネットに接続するアプリケーションの配信、スケーリング、保護を支援します。Global Front End Enterprise の請求ティアでは、これらのプロダクトの料金は単一の料金プランに統合されます。
Google Cloudプロジェクトで Global Front End Enterprise 請求ティアを有効にすることができます。詳細については、 Google Cloud コンソールの [Global Front End] ページをご覧ください。