Service Extensions を使用すると、Cloud Load Balancing や Media CDN などの Google Cloud プロダクトのユーザーが、カスタムコードをデータパスに直接挿入できます。これにより、ビジネスニーズに合わせてこれらのプロダクトの動作をカスタマイズできます。このページでは、Service Extensions の概要について説明します。
拡張機能の種類
Cloud Load Balancing や Media CDN などのネットワーキング プロダクトのデータパスは、データ処理ステージのパイプラインとして視覚化できます。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 拡張機能
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 は、拡張機能を使用してロード バランシング処理パスにカスタムコードを追加することをサポートしています。これらの拡張機能を使用すると、ルーティングのカスタマイズ、リクエストまたはレスポンスのペイロードの変更、外部サービスとの統合を行うことができます。
詳細については、サービス拡張機能を使用して GKE Gateway トラフィックのルーティングをカスタマイズするをご覧ください。
Media CDN 拡張機能
Media CDN には、コンテンツ配信ネットワーク(CDN)の最も一般的なユースケースに対応するための組み込みのコア機能が多数用意されています。Service Extensions は、これらの機能を超えるいくつかの要件に対応するのに役立ちます。
詳細については、Media CDN 拡張機能の概要をご覧ください。
Media CDN のプラグイン
Service Extensions を使用すると、Media CDN 処理パスに事前公開されたプラグインを追加して、カスタム ニーズに対応できます。
Media CDN でプラグインを使用できる主なユースケースは次のとおりです。
- カスタマイズ
- リクエスト URL を書き換えます。
- ヘッダー値を正規化して、キャッシュのパフォーマンスを向上させます。
- セキュリティとロギング
- ライブ イベント中に、不正なトークンを使用しているユーザーをブロックします。
- カスタム ユーザー認証と認可をサポートします。
- カスタム URL の署名を変換して実装します。
- キャッシュキー、アプリケーション固有のヘッダー、デバイスタイプをカスタマイズします。
- カスタム変数を Cloud Logging に記録します。
- ターゲティングと収益化
- A/B テストでコンバージョンを改善します。
- カスタム広告のターゲット設定を実装します。
- 追加料金なしでトライアル使用モデルを提供します。
- パートナー統合
- 動画の透かしを実装します。
- 動画と画像を最適化します。