Cloudflare Pages と Workers の違い:どちらをいつ使う?(具体例・費用・知っておくべき注意点まで)
DefinitionCloudflare PagesはHTMLなどの「静的ファイル」を超高速配信するプラットフォームであり、Workersはリクエストに応じて動的処理を行うエッジ上の「プログラム実行環境」です。
TL;DR (要約)
Cloudflare Pagesは「完成したページを最速で見せる」ことが得意な静的ホスティングであり、Webサイトの土台に最適です。対してWorkersは「裏側で少しプログラムを動かす」ためのサーバーレス環境であり、問い合わせフォームや簡易APIなどに用います。どちらか一方を選ぶのではなく、「ベースはPagesで作り、動的な機能が必要な部分だけWorkersを付け足す」組み合わせが現在の最も強力なベストプラクティスです。
この記事でわかること
- PagesとWorkersは何が違う?(最短で理解する)
- まず結論:よくある使い分けパターン(3つ)
- Pages vs Workers 比較表
- 判断フローチャート
- 具体例
- 費用の考え方
- システム構築・運用時のよくある注意点
- 導入・運用チェックリスト
PagesとWorkersは何が違う?(最短で理解する)
Cloudflareの環境は「エッジ(Edge)」と呼ばれる、ユーザーから物理的に最も近いサーバー群で構成されています(参考:エッジコンピューティングとサーバーレスアーキテクチャの違い)。
- Pages:Gitリポジトリ(GitHubなどソースコードを管理する場所)と連携し、プッシュするだけで自動的に静的サイト(HTML/CSS/JS/画像)をビルドし、世界中に高速配信します。料理で例えるなら「すでに完成しているお弁当を素早く提供するショーケース」です。
- Workers:エッジ上でJavaScriptやTypeScriptなどのコードを実行します(リクエスト→処理→レスポンス)。データベース(DB)への保存や外部APIの呼び出しなど、プログラムを使った処理が行えます。料理で例えるなら「注文が入ってからその場で調理するキッチン」です。
つまり、誰が見ても同じ内容で良い「静的」な部分はPages、ユーザーの操作に応じて中身が変わる「動的」な部分はWorkersと考えるとスムーズです。
まず結論:よくある使い分けパターン(3つ)
これらを踏まえ、よくある構成パターンは以下の3つに大別されます。
結論:Pages/Workersの選び方
- 会社HPやブログなど、コンテンツが変わらないなら「Pages単体」で十分。
- 認証ゲートウェイや既存DBへのAPIを作るなら「Workers単体」で構築。
- HP(Pages)にお問い合わせフォームやログイン機能(Workers)を足す「Pages + Workers」が推奨される最適な構成です。
多くの中小企業・成長企業において、まずはPagesから始め、必要に応じてWorkersを足していくアプローチが最も失敗が少なくおすすめです。
① Pagesだけで十分(会社HP/LP/ブログ)
静的な情報提供がメインのサイトであれば、Pagesの基本機能だけで完結します。Next.jsのStatic Exportsなどを用いた中小企業が決断すべき「モダンWeb開発」への移行の基盤としても最適です。
② Workersだけが必要(API/BFF/認証ゲート)
画面を持たず、裏側のデータ処理だけを行いたい場合です。スマートフォンのアプリ用APIや、複数のシステムを繋ぐための中継サーバー(BFF:Backends For Frontends)などに適しています。
③ Pages + Workers (Webサイト+動的機能の統合構成)
静的サイトの圧倒的な表示速度を保ちつつ、一部分だけ動かすパターンです。たとえば会社HP(Pages)の中で、「お問い合わせフォームの送信処理」だけをWorkersで受け持つ構成が今の主流です。
Pages vs Workers 比較表
どちらのサービスが自社の要件に合うのか、以下の表で整理します。
| 比較軸 | Cloudflare Pages | Cloudflare Workers |
|---|---|---|
| 主な目的 | 静的ファイルの配信とホスティング | プログラムの実行(動的処理) |
| デプロイ方法 | Git連携による自動デプロイが主流 | Wrangler(CLIツール)でのデプロイが主流 |
| 実行環境 | CDN(コンテンツ配信ネットワーク) | エッジ上のV8 Isolate環境 |
| 得意領域 | 爆速なページ表示、会社HP、LP、ブログ | フォーム処理、簡易API作成、ルーティング、認証 |
| 不得意領域 | データベースと連携した複雑な計算や状態管理 | 大容量のファイルホスティング、長時間の重い処理 |
| 運用負荷 | 非常に低い(サーバー管理不要) | 低い(ただしプログラミング知識は必須) |
| 学習コスト | 低(HTML/CSSが分かれば運用可能) | 中〜高(JavaScript/TypeScript知識が必要) |
判断フローチャート
自社のWebプロジェクトでどちらを使うべきか、以下の質問に答えていくだけで判断できます。
Q1. サーバー側でのプログラム処理が必要ですか?(メール送信、認証、データベース操作など)
├ No → Pages単体(十分な速度と安定性が得られます)
└ Yes → Q2へ
Q2. その処理は「軽いAPI」程度で済みますか?(フォーム送信、簡易認証、ヘッダ書き換えなど)
├ Yes → Workers(画面が必要ならPagesと組み合わせ推奨)
└ No → Q3へ
Q3. 複雑な状態管理、重い画像変換、数分単位の長時間バッチ処理が必要ですか?
└ Yes → Workers + 外部サービス(DB/R2/Queue等)、または別基盤(コンテナなど)を検討
具体例
例1: 会社HP + お問い合わせフォーム
最も王道となる構成です。会社のページ自体はPagesで静的に高速配信し、ユーザーがフォームの「送信」ボタンを押した際のリクエストのみWorkersが受け取ります。Workers内では自動化防止ツール(Turnstile)でスパムを弾き、メール配信サービス(Resendなど)を呼び出して担当者に通知します。
例2: 会員制ページ
社内向けポータルや会員限定のページを作るケースです。Pagesで作成したサイトの前にWorkersを立たせ、「ログインしているか?」を判定する簡易認証(Basic認証やJWT検証)を行い、未ログインならログイン画面へリダイレクトさせます。
例3: APIゲートウェイ(BFF)
モバイルアプリや別のWebシステムがデータを取得する際の中継役としてWorkersを置くケースです。バックエンドにある古いシステム(レガシーなDBやAPI)からデータを集め、スマートフォン向けに整形して返すBFF(Backends For Frontends)として機能します。
例4: 画像最適化やキャッシュ制御
Webサイトの表示速度をさらに上げる工夫です。Pagesで配信しているコンテンツに対して、Workersを仲介させることで「より効率的なキャッシュルールの適用」や「HTTPレスポンスヘッダの書き換えによるセキュリティ強化」を柔軟に行えます。
ユースケース別の推奨構成
| ユースケース | 推奨構成 | 理由 |
|---|---|---|
| コーポレートサイト | Pages | 更新頻度も低く、静的配信のメリットを最大化できるため。 |
| 技術ブログ・メディア | Pages | SSG(静的サイト生成)で作るのがSEOや速度面で一番強いため。 |
| お問い合わせ・資料請求 | Pages + Workers | ページ表示はPages、メール送信やDB保存はWorkersで分担。 |
| 社内限定の会員サイト | Pages + Workers | サイトの閲覧前にWorkersで認証(ログインチェック)を挟むため。 |
| 簡易的なAPIの提供 | Workers | 画面を持たない単一のエンドポイントとして最速で構築できるため。 |
| 複数システムをまとめるBFF | Workers | 外部APIの呼び出しとデータ整形をエッジで行うのに適しているため。 |
費用の考え方
Cloudflareの料金体系は非常に寛大ですが、それぞれの「課金ポイント」を理解しておくことが重要です。
- Pagesのコスト構造:
「無料プラン」の枠が非常に大きく、一般的な中小企業の会社HPやブログであれば、事実上ずっと無料で運用できるケースがほとんどです。帯域幅(データ転送量)による直接的な課金がないのも大きな強みです。 - Workersのコスト構造:
「リクエスト数(何回実行されたか)」と「実行時間(CPUをどれだけ使ったか)」が主な課金ポイントになります。こちらも無料枠(1日10万リクエスト)が大きいため、月間数十万PV程度のサイトの裏側で動かす分には無料枠に収まることが多いです。ただし、KVS(キーバリューストアなどの簡易データベース)など付帯サービスを多用すると費用が発生しやすくなります。
| ユースケース | 費用が増えやすいポイント | 注意点 |
|---|---|---|
| Pages中心の会社HP | ビルド回数(月500回まで無料) | Gitへのプッシュ頻度が極端に多いと有料枠に達する可能性があります。 |
| Workers中心のAPI | リクエスト数、CPU時間 | 外部APIの応答が遅く、Workersが待機し続けるとCPU時間を消費します。 |
| DBやストレージ連携 | 読み書き回数 | データを無駄に何度も取得・更新する処理を書くと課金が跳ね上がります。 |
※最終的な具体的な価格については変動する可能性があるため、必ずCloudflareの公式料金ページ(確認日:2026年3月現在)等で最新情報を確認してください。
システム構築・運用時のよくある注意点
事前の設計次第で防げる、典型的な失敗例を挙げます。
- PagesでSSR(サーバーサイドレンダリング)前提の構成にして詰まる:Pagesは基本的に「静的配信」のための場所です。他社サービスのように無設定でSSR最適化されるわけではないため、何でもできると誤認して設計するとパフォーマンスが出ないことがあります。
- Workersに何でも詰め込み、責務が爆発する:ひとつのWorkersの中に、ルーティング、認証、データベース処理、メール送信などをすべてベタ書きすると、後から誰も保守できなくなります。小さなモジュールに分割する設計力が問われます。
- 環境変数 / Secrets管理の不備による情報漏洩:APIキーなどの秘匿情報をソースコードに直書きしてしまうミスです。Cloudflareダッシュボード上の「Secrets」機能を必ず使い、本番環境とプレビュー(検証)環境で異なる鍵を設定することが重要です。
- CORS・キャッシュ・リダイレクトで混乱する:「Pages単体」「Pages + Workers」の境界線でキャッシュが効きすぎたり、ドメイン間通信(CORS)でエラーが出たりするトラブルが頻発します。ネットワークの基礎知識が求められます。
- 監視・ログ・エラー対応が後回しになる:サーバーレスの宿命ですが、「サーバーが落ちない(プロバイダ側で管理される)」ことに甘え、プログラム自身のエラー(バグ)を検知する仕組みを忘れると、ユーザーからのクレームで初めて障害に気づくことになります。
ここが落とし穴!
最大のリスクは、Pagesに動的機能を持たせようと無理をしたり、Workersに重いバッチ処理を任せるなど「得意領域の外」で運用しようとすることです。
導入・運用チェックリスト
プロジェクトを開始する前の確認項目としてご活用ください。
重要ポイント
チェックリスト
- □ 要件整理:「どこまでが静的で、どこからが動的か」の線引きができているか。
- □ 機能確認:フォーム、認証、外部API連携など、Workersが必要な機能(動的処理)をリストアップしたか。
- □ セキュリティ:スパム対策(Turnstile等)やレート制限(WAF設定)、Secrets管理ルールの認識がチーム内で揃っているか。
- □ 運用環境:本番環境(Production)と検証環境(Preview)が明確に分かれているか。
- □ 監視体制:エラー発生時に通知を受け取り、ログを確認する担当者が決まっているか。
- □ ロールバック:デプロイ(公開)失敗時に、以前のバージョンへ戻す手順が明確か。
よくある質問
Q. VercelとCloudflare Pagesはどちらが良いですか?
静的サイトの配信速度はほぼ同等ですが、Cloudflare PagesはWorkersとの統合や料金体系(帯域幅無料)の面で優位性があります。Vercelはフルスタックなフレームワーク対応が手厚いため、Next.jsを多用するチームにはVercelが馴染みやすい場合もあります。要件に応じた選択をお勧めします。
Q. Cloudflare Workersのタイムアウト上限はどのくらいですか?
Freeプランでは1リクエストあたりのCPU時間は10ms、Paidプランでは30秒です(2026年3月現在)。メール送信やAPIプロキシ程度であればFreeプランで十分ですが、長時間の処理が必要な場合はWorkersの外に専用サービスを置く設計が推奨されます。最新の上限は公式ドキュメントでご確認ください。
Q. Cloudflare PagesはSSRに対応していますか?
Pages Functions(Workersベース)を用いることでSSR(サーバーサイドレンダリング)も実現できます。ただし、VercelほどNext.jsのSSRが自動最適化されるわけではないため、設計時に静的化できる部分はSSGにする方針を推奨します。
モダンで拡張性の高いシステム開発
Next.jsやクラウドネイティブ技術を活用し、ビジネスを加速させるシステムを構築します。
モダンなWeb開発の標準:Next.jsとヘッドレスCMSによる構築
このテーマの全体像を把握し、より体系的な理解を深めましょう。