Cloud CDN の Service Extensions プラグインの使用によりエッジで独自コードの実行が可能に
Arman Rye
Product Manager
Martijn Stevenson
Engineering Lead
【Next Tokyo ’25】
【Next Tokyo】120 以上のセッションをアーカイブ公開中。話題の Gemini、生成 AI、AI エージェントなどの Google Cloud のアップデートや顧客事例をチェックしましょう。
視聴はこちら※この投稿は米国時間 2025 年 6 月 25 日に、Google Cloud blog に投稿されたものの抄訳です。
Google Cloud は、ウェブ コンテンツと API コンテンツで世界最高水準のパフォーマンスを提供する取り組みを続けています。Cloud CDN は、200 以上のポイント オブ プレゼンスで実行される高パフォーマンスのエッジ キャッシング ソリューションで、現在も新たな機能が追加され続けています。先日は、キャッシュタグによる無効化、デバイスの特性評価、0-RTT(早期データ)、地域ターゲティングの機能がリリースされました。こうした強力で優れた機能があれば多くのユースケースに対応できますが、組織には柔軟かつ軽量なエッジ コンピューティング ソリューションも必要であるとの声も寄せられています。
このたび、Cloud CDN で Service Extensions プラグインを実行できるようになったことをお知らせします。これにより、フルマネージド Google 環境のリクエストパス内で独自のカスタムコードを最適なレイテンシで直接実行できるようになります。これにより、ビジネス要件に合わせて Cloud CDN とアプリケーション ロードバランサの動作をカスタマイズできます。
Cloud CDN の Service Extensions プラグインは、次のユースケースに対応します。
-
カスタム トラフィック ステアリング: リクエスト ヘッダーを操作して、バックエンド サービスを選択できるようにする。
-
キャッシュの最適化: Cloud CDN キャッシュから配信するコンテンツを制御できるようにする。
-
例外処理: 特定のエラー応答の場合、クライアントをカスタム エラーページにリダイレクトする。
-
カスタム ロギング: ユーザー定義のヘッダーやカスタム データを Cloud Logging に記録する。
-
ヘッダーの追加: 使用しているアプリケーションや個々の顧客に応じた新しいヘッダーを作成する。
-
ヘッダーの操作: 既存のリクエスト ヘッダーを書き換える、またはバックエンドに送信されるクライアント ヘッダーをオーバーライドする。
- セキュリティ: クライアントのリクエストに基づいてカスタム セキュリティ ポリシーを作成し、プラグイン内で適用に関する判断を下す。
コードを実行できる場所
Service Extensions プラグインは、リクエストおよびレスポンスの処理パス内の複数か所で実行できます。今回のリリースでは、リクエストが Cloud CDN に送信される前に、エッジ拡張を使用してプラグインを実行できるようになりました。過去のリリースでは、Cloud CDN のキャッシュ処理後に、トラフィック拡張を使用して、より送信元に近い場所でプラグインを実行する機能が追加されていました。今回、エッジ拡張とトラフィック拡張の両方がサポートされるようになったため、処理パス内のどこでコードを実行するかを選択できるようになります。


Service Extensions の詳細
Service Extensions プラグインは、アプリケーション ロードバランサのリクエストパスの一部として実行される、軽量なコンピューティング オペレーション向けに設計されています。プラグインは WebAssembly(Wasm)上に構築されているため、次のようなメリットがあります。
-
ネイティブに近い実行速度と、数ミリ秒単位の起動時間
-
Rust、C++、最近では Go など、さまざまなプログラミング言語のサポート
-
クロス プラットフォームの移植性により、さまざまなデプロイやローカルテストで同じプラグインを実行可能
-
サンドボックス環境でプラグイン ロジックを実行するといったセキュリティ保護
Service Extensions プラグインは、Proxy-Wasm を利用しています。Proxy-Wasm は Google がサポートするオープンソース プロジェクトで、Wasm モジュールがネットワーク プロキシと連携するための標準 API を提供します。
Cloudinary の画像 / 動画最適化ソリューションが利用可能に
Service Extensions と Cloud CDN を自社サービスに統合した新しいパートナーをご紹介します。高度な画像・動画最適化ソリューションを提供している Cloudinary は、Cloud CDN のお客様への展開に向けて Service Extensions プラグインとの統合を行いました。
Wasm プラグインとしてパッケージ化された Cloudinary のプラグインは、ユーザー エージェント情報などのクライアント リクエストからのディレクティブと、HTTP の Accept ヘッダーで指定される MIME タイプを受け取り、エンドユーザーに提供する最適なメディアタイプを決定します。さらに、このプラグインはキャッシュキーの正規化にも対応しているため、画像や動画はデバイスやコンテンツの種類に基づいて適切にキャッシュに保存されます。
「Cloudinary の画像と動画のソリューションを使用すると、お客様は画像・動画アセットを大規模に管理して最適化しながら、そうしたアセットをフォーマット、デバイス、チャネル、視聴環境に合わせて調整できます。当社は、Google チームと提携して、Cloudinary の画像と動画の最適化ソリューションを Service Extensions を通じて Cloud CDN のお客様に提供できることを嬉しく思います。」- Cloudinary、戦略的テクノロジー パートナーシップ担当バイス プレジデント、Gary Ballabio 氏
Cloudinary のソリューションについて詳しくは、こちらのガイドをご覧ください。
次のステップ
Service Extensions プラグインを使い始めるには、拡大を続ける Google のサンプル リポジトリ(ローカルテスト ツールキットが用意されています)を確認し、ドキュメント内のクイックスタート ガイドに沿って進めてください。
-プロダクト マネージャー、Arman Rye
-エンジニアリング リード、Martijn Stevenson