Cloudflare

ビジネスロジックをCDNへオフロード?ー コラム ー
2019年8月30日号


ビジネスロジックをCDNへオフロード? ー パワフルなV8エンジンにお任せ ー

CloudflareではWebアプリケーション開発者向けのたいへん強力な機能が提供されていますので、ご紹介致します。

なんとその機能、パワフルなV8エンジンを搭載しているんです!






といっても自動車のV8エンジンのことではありません・・・。
V8 JavaScript Engineです。でも、両方ともパワフルであることに違いはありませんね。

機能の名前はCloudflare Workersです。この機能、世界中に分散されたCDNのエッジサーバ上でJavaScriptを動作させることが出来るんです。
画像やCSSなどの静的なコンテンツだけでなく、ビジネスロジックまでCDNへ移してしまおうという発想です。

「サーバサイドだからNode.js?」って思った方もいらっしゃるかもしれませんが、クライアントサイドの技術です。JavaScriptの世界で近年、Service Workerという機能が開発されています。これは、HTTPリクエストやレスポンスをインターセプト(横取り)して処理を加えることが出来るんです。この機能によって例えば以下のようなことが可能になります。

・HTTPリクエスト送信時に内容を改変してサーバへ転送
・HTTPレスポンス受信時に内容を改変してブラウザへ渡す
・HTTPリクエストをインターセプトし、サーバへ送らずに独自で何らかの応答をする




Cloudflare Workersの場合は、このスクリプトがクライアント上ではなく、Webアプリケーションサーバとの間にあるCDN上で動作することになります。
これによって、Webアプリケーションサーバ上で実装していた一部ロジックをCDNへ移すことが出来るようになりますよね。

新たな要件が追加になった際も、あまり複雑な要件でなければWorkersでの実装を先に検討し、出来なければサーバやクライアント上で実装という運用も考えられるのではないでしょうか。 Workersの場合、リリース(本番適用)作業も大変楽です。

Cloudflareのサイトでは、いくつかのレシピ(サンプルスクリプト)が掲載されています。例えば以下のようなものです。

・A/Bテスト
A/Bテストを行うスクリプトです。A/Bテストは2つの施策の優劣を比較するマーケティング手法です。







・端末種別に応じたConditional Routing
PCかスマホかを認識してそれぞれ別のサーバへ振り分けるスクリプトです。







上記以外にも色々公開されていますので、関心のある方は是非見てみて下さい。
https://developers.cloudflare.com/workers/recipes/

世界の有名企業でのCloudflare Workersの導入事例については以下に紹介されています。
https://www.cloudflare.com/ja-jp/products/cloudflare-workers/

いかがだったでしょうか。Cloudflare Workersの有用性が少しお分かり頂けたのではないかと思います。Cloudflare Workersの可能性は無限大です!(ちょっと大袈裟ですかね、、?) でもアイディア次第で様々な使い方が考えられることに間違いはありません。

クライアントからのリクエストに紐付かないWorkers自身からのHTTPリクエストを任意のURLへ送信することも出来るため、別サービスとの連携や、よりパーソナライズされたコンテンツの生成なども出来るのではないでしょうか。
新しいアイディアやお困りの事がありましたら是非お声掛け頂ければと思います。








 執筆者:角田 貴寛

三井情報株式会社
ソリューション技術本部 次世代基盤第二技術部 第一技術室
CISSP、CEH
現在、セキュリティ関連調査研究・教育業務に従事