Cloudflare WorkersとCloudflare Pages Functionの違いと使い分け
更新日: 2022.10.11公開日: 2022.8.10
どちらもCloudflareのサーバーレスサービスである「Cloudflare Workers」と「Cloudflare Pages Function」。それぞれの違いと使い分けの考え方をまとめました。
Cloudflare WorkersとCloudflare Pages Functionの違い
Cloudflare WorkersとCloudflare Pages Functionは、それぞれの別のサービスとして提供されていますが、どちらも中身はCloudflareのエッジサーバーで稼働するサーバーレス・サービスです。その意味では「どちらもCloudflare Workers」と言っても良いでしょう。
ただし、違いもあります。それぞれの仕様を比較してみましょう。
項目 | Cloudflare Workers | Cloudflare Pages Function |
---|---|---|
無料枠 | 10万回/日 | 10万回/日 |
ルートのアサイン | ◎ | - |
複数ドメインでの併用 | ◎ | - |
pages.devドメインへのアサイン | - | ◎ |
まず知っておきたいのが、Cloudflare WorkersとCloudflare Pages Functionの無料枠での日次クオータ(使用上限)が別々という点です。つまり、上手く使えば一つのアカウントで最大20万回/日までスクリプトを実行可能ということになります。
<2022.10.11追記>
2022年11月15日から、Cloudflare WorkersとCloudflare Pages Functionの無料枠が統合されると発表されたため、2022年11月15日以降は上記の「それぞれで10万回/日」という方法は使えなくなりました。
次に大事なのがスクリプトをどのドメインルートで使うかという点です。
Cloudflare Workersは、Cloudflareで管理している全てのドメインのルートにアサインが可能です。一つのWorkerで複数のルートを処理することが出来ます。一方、Cloudflare Pages Functionは、ビルドしたプロジェクトデータにFunctionを仕込んでデプロイする形式なので、「そのCloudflare Pagesプロジェクト下でしか実行出来ない」という違いがあります。
これにはメリットもあって、Cloudflare WorkersはドメインにアサインするのでCloudflare Pagesのプロジェクト・ドメインである「xxx.pages.dev」では実行が出来ません(Workerルートをアサイン出来ない)が、Cloudflare Pages Functionならそれが出来ます。
Cloudflare WorkersとCloudflare Pages Functionの使い分け
先程解説した通り、「xxx.pages.dev」ドメインで使う場合はCloudflare Pages Functionの一択です。
それ以外のCloudflare管理ドメイン配下で使う場合は、
- 他のドメインとの共用があるか
- プロジェクトとの密接性がどれくらいあるか
で判定するのが良いでしょう。
例えば、APIサーバーをCloudflare上で展開したいのであれば、プログラムの設計や管理の面を考えたら、アプリ本体とAPIは切り離す方が良いので、Cloudflare Workersを使うことになるでしょう。proxyサーバーとして使う場合も、複数ルートを同一コードで管理できるCloudflare Workersの方が利便性や保守性が高くなります。
一方で、単純にAPIサーバーのドメインを秘匿したい場合や、CORSヘッダーの上書きをしたい場合、ユーザーデータをCloudflare KVに格納するだけの場合などは、アプリとの密接性も高いためCloudflare Pages Functionを使うメリットがあります。
別の観点から使い分けを決めるならば、「どれくらいWorkerをコールするか?」という点でも決めるのもありです。
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
サーバレスの新着記事
- サーバレスCloudflare R2の料金体系・無料枠まとめ 2024.8.21
- サーバレスCloudflare R2をCyberduckで使う方法 2024.7.31
- サーバレスAIの学習ボット・クローラーからサイトを守るメリットとブロックする方法 2024.7.19
- サーバレスCloudFlare Pagesのビルド環境の違い 2024.5.9
- サーバレスCloudflare D1の料金体系・無料枠まとめ 2024.3.25
- サーバレスCloudflare PagesでNuxt3のビルド時に「ENOENT: no such file or directory」エラーの対象方法 2024.3.21
- サーバレスGitlab CLIでpush時に「glab auth not found」となった際の対処方法 2024.3.19
- サーバレスCloudFlare Workers AIの料金体系・無料枠まとめ 2024.2.2