この記事のゴール:EmDashのサイトをCloudflareで動かすときに、Workers・D1・R2がそれぞれ何をするかと、料金がどう決まるかを説明できるようになる
読む時間:7分
前提知識EmDashとは何をするものか

ひとことで言うと

Cloudflare WorkersはEmDashとAstroのコードを動かす実行環境、D1はコンテンツを保存するデータベース、R2は画像などのメディアを保存するファイル置き場です。料金は、Workersの無料プランか有料プランかと、それぞれの使用量で決まります。

3つの役割

DBバインディングMEDIAバインディングLOADERバインディング(サンドボックス型プラグインを使う場合のみ)訪問者・編集者CloudflareWorkersEmDashとAstroのコードを実行D1コンテンツモデル・エントリー・ユーザー・設R2アップロードしたメディアWorker Loader
図のテキストを読む
flowchart LR
    VI["訪問者・編集者"] --> W["Cloudflare Workers<br/>EmDashとAstroのコードを実行"]
    W -- "DBバインディング" --> D1["D1<br/>コンテンツモデル・エントリー・ユーザー・設定"]
    W -- "MEDIAバインディング" --> R2["R2<br/>アップロードしたメディア"]
    W -. "LOADERバインディング<br/>(サンドボックス型プラグインを使う場合のみ)" .-> WL["Worker Loader"]
サービス Cloudflare公式の説明 EmDashでの役割
Workers Cloudflareのグローバルネットワーク上でアプリを構築・デプロイ・拡張するサーバーレスのプラットフォーム EmDashとAstroのサイトを動かす
D1 SQLiteのSQLの意味論を持つ、Cloudflareのマネージドなサーバーレスのデータベース コンテンツを保存する(d1({ binding: "DB" })
R2 一般的なクラウドストレージにかかるデータ転送(egress)の料金なしで、大量の非構造化データを保存できるオブジェクトストレージ メディアを保存する(r2({ binding: "MEDIA" })
  • バインディングは、WorkerからD1やR2を使うための名前付きの接続です。wrangler.jsonc の名前(DBMEDIALOADER)は、EmDashのアダプターの設定と一致させる必要があります。
  • Cloudflare用のテンプレートは、初回のデプロイで、設定した名前のD1データベースとR2バケットがなければWranglerが作成します。

料金の考え方

使う使わない収まる収まらないサンドボックス型プラグインを使うかWorkers有料プランが必要(WorkerLoader)無料プランの上限に収まるかWorkers無料プランで動かせるWorkers有料プラン+含まれる量を超えた分の従量課金
図のテキストを読む
flowchart TD
    Q1{"サンドボックス型プラグインを使うか"} -- "使う" --> PAID["Workers有料プランが必要<br/>(Worker Loader)"]
    Q1 -- "使わない" --> Q2{"無料プランの上限に収まるか"}
    Q2 -- "収まる" --> FREE["Workers無料プランで動かせる"]
    Q2 -- "収まらない" --> PAID2["Workers有料プラン<br/>+含まれる量を超えた分の従量課金"]
  • Cloudflare用のテンプレートは、Worker Loaderのバインディングをコメントアウトした状態で作られます。そのため、作成時にサンドボックス型プラグインを有効にしない限り、新しいプロジェクトはWorkersの無料プランでデプロイできます。
  • サンドボックス型プラグインを動かすWorker Loaderには、Workers有料プランが必要です。

以下は、2026年9月20日にCloudflare公式の料金ページで確認した値です。料金は変わることがあるため、契約前に各料金ページで最新の値を確認してください。

Workers

項目 無料プラン 有料プラン
月額 アカウントあたり最低 月額5米ドル
リクエスト 1日10万件 月1,000万件まで含む。超えた分は100万件ごとに0.30米ドル
CPU時間 1回の呼び出しあたり10ミリ秒 月3,000万CPUミリ秒まで含む。超えた分は100万CPUミリ秒ごとに0.02米ドル

D1

項目 無料プラン 有料プラン
読み取った行数 1日500万行 月250億行まで含む。超えた分は100万行ごとに0.001米ドル
書き込んだ行数 1日10万行 月5,000万行まで含む。超えた分は100万行ごとに1.00米ドル
保存容量 合計5GB 5GBまで含む。超えた分は1GB・1か月ごとに0.75米ドル

D1から読み出すデータには、データ転送(egress)や帯域の料金はかかりません。

R2(Standardストレージ)

項目 無料枠(毎月) 料金
保存容量 10GB・月 1GB・1か月ごとに0.015米ドル
クラスAの操作 100万リクエスト 100万リクエストごとに4.50米ドル
クラスBの操作 1,000万リクエスト 100万リクエストごとに0.36米ドル
インターネットへのデータ転送(egress) 無料 無料

AIに聞いてみよう

根拠にした公式ページ

  • Cloudflare Workersのドキュメント:https://developers.cloudflare.com/workers/
  • Cloudflare D1のドキュメント:https://developers.cloudflare.com/d1/
  • Cloudflare R2のドキュメント:https://developers.cloudflare.com/r2/
  • Cloudflare Workers「Pricing」(2026年9月20日確認):https://developers.cloudflare.com/workers/platform/pricing/
  • Cloudflare D1「Pricing」(2026年9月20日確認):https://developers.cloudflare.com/d1/platform/pricing/
  • Cloudflare R2「Pricing」(2026年9月20日確認):https://developers.cloudflare.com/r2/pricing/
  • EmDash公式「Cloudflareへのデプロイ」(本サイトの訳):https://docs.emdashcms.com/deployment/cloudflare/
  • EmDash公式「プラグインサンドボックス」(本サイトの訳):https://docs.emdashcms.com/deployment/plugin-sandbox/

次に読むページ