2019年3月24日日曜日

Cloudflare Workersに見る静的サービスのトレンド

Cloudflare Workersというサービスが出ていました。面白いサービスと思ったのでメモだけしておきます。



イメージとしてはJavaScript (Service Worker) をCGIの代わりに使って、静的化してCDNしてくれるサービスと認識しました。 この分野、CDN Edge Serverとか呼ばれているらしい。 実は「こども翻訳」でもまったく同じ事をしているんだけど、まさにそのようなニーズを狙ったサービスに思う。

ちなみにService Worker単体でもそのような処理は、もともと実現可能ではありますが、様々な制約がある。 というのもCORSに関しては以下の方法で回避できるからです。 ただ回避してもopaque filtered responseになるので操作できない問題がある。
fetch("http://example.com/", { mode: 'no-cors' });
そしてUser-Agentを変更できないなどの問題もある。 なので実現はできても制約が厳しく、結局はサーバは介さないといけないというのが結論と思っていました。


こども翻訳のような翻訳サイトにおいてはこれは致命的な問題で、こども翻訳ではNetlify Functionsを使ってごにょごにょする事で回避、実現している。 Cloudflare Workersはこれと同じ処理をサービスとして用意したものだと認識しました。 CDNで動くから早いし、おそらくオンザフライ実行ではないから早いみたいだけど (60msくらい)、無料利用はCPU処理時間が5ms未満という制約があり、これはかなり厳しい。 この秒数だとCORSを回避して後はすぐにさばかないとキツイだろう。 こども翻訳は高度な処理を色々としているので20msくらい掛かっており利用はできない。残念。 実装をクライアントサイドに寄せればいける気もするけど、それはそれで課題があるので気乗りはしない。

私のコスト感覚ではCPUほぼゼロだから5$/月はちょっと高い感じもする。 現状では有料より遅くても無料のFirebase/Netlifyを採用する事に変わりはない。 ただ課題と思っていた部分を解決してくる海外事業者の速度は早いなあ。 解決されると割とアツイと思っているので、今後似たようなサービスが出てこないか、サービス動向には注目しておきたい。

0 件のコメント: