サーバレスアーキテクチャ

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

どちらも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万回/日までスクリプトを実行可能ということになります。

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

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をコールするか?」という点でも決めるのもありです。

せっかくそれぞれに10万回/日ずつ枠が付与されているのですから、両方を上手に使った方がコストを削減できます。


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

この記事の関連キーワード

サーバレスアーキテクチャの記事