サーバレスのサムネイル

サーバレス

Cloudflare WorkersとCloudflare Pages Functionの違いと使い分け

更新日: 2022.10.11公開日: 2022.8.10

どちらもCloudflareのサーバーレスサービスである「Cloudflare Workers」と「Cloudflare Pages Function」。それぞれの違いと使い分けの考え方をまとめました。

編集ノート:SERVERSUSでは、パートナーリンクからコミッションを得ています。コミッションが記事の意見や、サービスの評価に影響を与えることはありません。

Cloudflare WorkersとCloudflare Pages Functionの違い

Cloudflare WorkersとCloudflare Pages Functionは、それぞれの別のサービスとして提供されていますが、どちらも中身はCloudflareのエッジサーバーで稼働するサーバーレス・サービスです。その意味では「どちらもCloudflare Workers」と言っても良いでしょう。

ただし、違いもあります。それぞれの仕様を比較してみましょう。

項目Cloudflare WorkersCloudflare 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万回/日」という方法は使えなくなりました。

Pages Functions GA Billing

次に大事なのがスクリプトをどのドメインルートで使うかという点です。

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管理ドメイン配下で使う場合は、

  1. 他のドメインとの共用があるか
  2. プロジェクトとの密接性がどれくらいあるか

で判定するのが良いでしょう。

例えば、APIサーバーをCloudflare上で展開したいのであれば、プログラムの設計や管理の面を考えたら、アプリ本体とAPIは切り離す方が良いので、Cloudflare Workersを使うことになるでしょう。proxyサーバーとして使う場合も、複数ルートを同一コードで管理できるCloudflare Workersの方が利便性や保守性が高くなります。

一方で、単純にAPIサーバーのドメインを秘匿したい場合や、CORSヘッダーの上書きをしたい場合、ユーザーデータをCloudflare KVに格納するだけの場合などは、アプリとの密接性も高いためCloudflare Pages Functionを使うメリットがあります。

別の観点から使い分けを決めるならば、「どれくらいWorkerをコールするか?」という点でも決めるのもありです。


価格は記載がある場合を除き、すべて税込みです。

関連キーワード

サーバレスの新着記事