ナレッジ一覧に戻る
KNOWLEDGE/作戦資料

Cloudflare Workers と Pages、
何が違う?

3MBの壁と$5/月の解決策

2026.03.28

この記事でわかること

  • -- Pages と Workers の根本的な違い
  • -- フルスタックアプリで3MBの壁にぶち当たった実体験
  • -- Pagesに切り替えても解決しない理由
  • -- $5/月で解決する方法と、追加料金が発生しない根拠
  • -- 用途別の選び方フローチャート

前回の記事では「GitHubからCloudflare Pagesにつないで、サイトを簡単に公開する方法」をお伝えしました。あの手順通りにやれば、確かにサクッとサイトは公開できます。

で、今回は「その先」の話です。

実際にフルスタックのWebアプリを作り込んでいったら、ある日突然デプロイできなくなりました。原因を調べていく中で「Workers と Pages の違い」を嫌というほど理解したので、その経緯をまとめます。

同じ壁にぶつかっている方の参考になれば。

あれ、Pagesで作ろうとしたのにWorkersを選ばされる

Cloudflareのダッシュボードを開いて、「サイトを公開したいだけなのに」と思いながらプロジェクトを作ろうとすると、なぜか「Workers」を勧められることがあります。

「前はPagesでできたのに、なんで?」って思いますよね。

これ、ちゃんと理由があります。

COMPARE

Pages と Workers、そもそも何が違うのか

ざっくり言うと、こういう違いです。

PagesWorkers
得意なことWebサイトの公開バックエンドの処理
向いてるものLP、ブログ、企業サイト、静的サイトAPI、フルスタックアプリ、データ処理
GitHub連携pushするだけで自動デプロイGitHub Actionsの設定が必要
カスタムドメインダッシュボードからポチッと設定設定ファイルに書く
PRプレビューPRごとにプレビューURLが自動生成なし
サイズ制限(無料)静的ファイル: 25MBコード全体: 3MB
料金無料無料(有料は$5/月)

一言でまとめると、Pagesは「サイトを置く場所」、Workersは「プログラムを動かす場所」です。

ただし、実はこの2つの裏側は同じCloudflareのエッジネットワークで動いています。違うのは「入り口」と「管理方法」だけ。性能や速度に差はありません。

じゃあなぜWorkersを選ばされるのか

ここが今回のポイントです。

Next.jsやNuxt.jsのような「フルスタックフレームワーク」(画面表示だけでなく、裏側のデータ処理まで1つのプロジェクトで作れる仕組み)を使ってアプリを作ると、サーバーサイドの処理が発生します。

サーバーサイド処理とは、ページを表示する前にデータベースからデータを取ってきたり、AIを呼び出したり、ログイン状態をチェックしたりする処理のことです。これは閲覧者のブラウザではなく、Cloudflare側のサーバーで実行されます。

この「サーバーサイド処理」は、Pagesだけでは動かせません。Workersが必要になります。

Cloudflare自身も2025年頃からNext.jsのデプロイ先としてWorkersを公式に推奨するようになりました。OpenNextというNext.jsのアダプタも、Workers専用で作られています。

つまり、「Webアプリを作る = Workers一択」という流れになってきています。

CASE

実際にぶち当たった「3MBの壁」

ここからは実体験です。

社長の業務システムを開発していて、AI診断、事業計画書の自動生成、案件管理、顧客管理、監査ログと機能を追加していったら、ある日こんなエラーが出ました。

Your Worker exceeded the size limit of 3 MiB.

Please upgrade to a paid plan to deploy Workers up to 10 MiB.

Workers無料プランのサイズ上限は3MB(gzip圧縮後)。アプリは3.1MBで、たった200KBオーバー。

「じゃあPagesに切り替えれば25MBまでいけるのでは?」と思いました。

結論から言うと、それは無理でした。

Pagesに切り替えても解決しない理由

ここが多くの人が誤解するところです。

Pagesの「25MB」は静的ファイル(HTML、CSS、画像など)のサイズ上限です。サーバーサイドの処理(APIや、アクセスのたびにページを動的に生成する仕組み)は、Pages上でも結局Workersとして動きます。つまり、サーバー処理部分には同じ3MBの制限がかかります。

しかも、OpenNext(Next.jsをCloudflareで動かすアダプタ)はWorkers専用で、Pages向けのデプロイパスを用意していません。

Pages に切り替えようとしても:

  • -- OpenNextが対応していない
  • -- サーバー処理のサイズ制限は同じ
  • -- 別のアダプタ(next-on-pages)に移行すると設定を全部やり直し

八方塞がりでした。

SOLUTION

解決方法: Workers有料プラン($5/月)

結局、一番シンプルで確実な方法はこれでした。

Cloudflareのダッシュボードから「Workers Paid」プランに切り替える。月額$5。これだけでサイズ上限が3MB → 10MBに上がります。

「$5/月で追加料金がかからないか?」と心配になると思うので、計算してみました。

項目無料枠実際の利用量(想定)
リクエスト数月1,000万回月10〜50万回
CPU時間月3,000万ms月100〜300万ms

月間1,000万リクエストは、1日あたり約33万回に相当します。仮にスタッフ100人が毎日100回操作しても1日1万回、月30万回。無料枠の3%しか使いません。

ちなみに、コードを最適化して不要なライブラリを削ってサイズを100KB程度は削減しましたが、それでも3MBは超えていました。フルスタックのアプリでは、フレームワーク本体だけで1MB近くあるので、機能を削るにも限界があります。

結論: $5/月の固定料金のみ。追加料金は発生しません。

GUIDE

Pages と Workers、どっちを選べばいいの?

迷ったら、このフローチャートで判断してください。

サイトを作りたい

|

+--- サーバー処理が必要?

|

+--- No → Pages(無料)

| LP、ブログ、企業サイト、ポートフォリオなど

|

+--- Yes → Workers

|

+--- 3MBを超えそう?

|

+--- No → Workers 無料プラン

|

+--- Yes → Workers 有料プラン($5/月)

具体的に言うと:

作りたいもの推奨理由
企業サイト、LPPages(無料)サーバー処理が不要。GitHub pushだけでデプロイ
ブログ、ドキュメントサイトPages(無料)同上
会員制サイト(ログインあり)Workers認証処理にサーバーが必要
業務システム(DB連携)WorkersAPI、データベースアクセスが必要
ECサイト(決済あり)Workers決済処理にサーバーが必要
AI機能を組み込んだアプリWorkers(有料推奨)AI連携でコードが大きくなりやすい
SUMMARY

まとめ

-- Pages = Webサイトを公開する場所。静的サイトならこれ一択

-- Workers = プログラムを動かす場所。フルスタックアプリはこちら

-- 裏側は同じCloudflareのネットワーク。性能差はない

-- Workers無料プランはサイズ3MBまで。フルスタックアプリだと超える可能性がある

-- $5/月で10MBに拡大。追加料金は通常の利用では発生しない

-- 迷ったらまずPagesで始めて、サーバー処理が必要になったらWorkersへ

前回「Pages簡単だよ」とお伝えしましたが、アプリを本格的に作り込んでいくと、こういう壁にぶつかることもあります。でも$5/月で解決できるので、そんなに怖がる必要はないです。

何かわからないことがあればお気軽にどうぞ

お問い合わせ