Pages + Pages Functions + D1 構成ガイド
チャット機能やランキング機能など、「データを保存・共有する」Webアプリを個人で作りたい場合、ネット上にデータベースが必要になる(参考)。 友達や同僚みんなが使えるWebアプリには、誰かが入力したデータをサーバー側で保存し、ほかの人からも見られるような仕組みが欠かせない。
この文書では、そのようなWebアプリを個人・小規模で作るためにおすすめの構成を紹介する。構成の全体像と、それぞれの役割を理解することが目的。実際の設定手順や導入方法は、別途ハンズオン資料で説明する。
本資料の Cloudflare Pages / Pages Functions という表現は、今後 Workers 側の表現に変わる可能性があります。
この文書を読む前に、GitHub初心者ガイドとCloudflare Pagesハンズオンを読んでおくことをおすすめする。
Webアプリは「フロントエンド」「バックエンド」「データベース」の3つの役割に分けて作るのが基本。レストランに例えるとわかりやすい。
| レストランの例 | Webアプリの役割 |
|---|---|
| 客席・メニュー・フロアスタッフ(お客さんが見て触り、注文を仲介する) | フロントエンド(画面・UI) |
| キッチン・料理人(注文を受けて料理を作る) | バックエンド(API) |
| 冷蔵庫・食材庫(材料を保管する場所) | データベース(データ保存) |
お客さん(ユーザー)はフロアスタッフ(フロントエンド)を通じて注文する。注文は料理人(バックエンド)が受け取り、冷蔵庫(データベース)から必要な食材(データ)を取り出して料理を作る。できあがった料理はフロアスタッフによってお客さんに届けられる。お客さんが冷蔵庫を直接触ることはない——これがセキュリティと役割分担を実現している設計。
ブラウザからのアクセスは以下の順番で処理される:
Pages・Pages Functions・D1はいずれもCloudflareのサービス。この3つの組み合わせが、個人・小規模でDBを使うWebアプリを作るのにシンプルで扱いやすい構成だ。
| Webアプリの役割 | Cloudflareのサービス |
|---|---|
| フロントエンド(画面・UI) | Cloudflare Pages |
| バックエンド(API) | Cloudflare Pages Functions |
| データベース(データ保存) | Cloudflare D1 |
Pages Functionsは「バックエンド的な役割」を担うが、独立したサーバーが別に存在するわけではない。Pages(フロントエンド)の中に処理が同居しているイメージ。フロントとAPIが一体化しているのがこの構成の特徴。ワンオペ営業の小規模飲食店のようなもの。
GitHub ActionsはGitHubが提供する自動化ツール。GitHubへpushするだけで、データベースの更新(D1マイグレーション)からフロントエンド・Pages Functionsのデプロイ(本番環境への公開・反映)までが自動で実行される。3つの役割をまとめて一度に本番反映できるのが、この構成の大きな利点。
WranglerはCloudflareが公式に提供するCLIツール(コマンドラインツール)。Pages Functions・D1・Pagesすべてに対応しており、ターミナルからコマンドを打って操作する。Cloudflare専用のツールで、AWS CLI(Amazon)やFirebase CLI(Google)と同じ位置づけ。
Wranglerはプロジェクトの最初から使う。セットアップ時にはCloudflareへのログインと、D1データベースの作成に使う。開発中は、ローカルでWebアプリの動作を確認したり、データベースを直接操作するときなどに利用する。
GitHub + Cloudflareの構成が整うと、以下のサイクルで開発が進む:
https://アプリ名.pages.dev)で動作確認この流れを理解したら、次はハンズオン資料で実際に手を動かしてみよう。
2026-05-02 (last updated: 2026-05-05) タツヲ (yto)