Free プランの概要と利用制限
Free プランは Cloudflare Workers を手軽に試せるエントリーレベルのプランです。本セクションでは、月間リクエスト数 と CPU 時間 の上限を中心に、無料枠を超えた場合に起こる挙動を解説します。実際に運用する前にこれらの制限を把握しておくことで、予期せぬ 429 エラーや課金発生を防げます。
月間リクエスト数と CPU 時間
- 月間リクエスト上限:100,000 件(公式ドキュメント参照)【^1】
- CPU 時間の計測方法
- 各リクエストは 最大 10 ms の CPU 時間 が無料枠に含まれます。
- 同時に、月間合計で 5 秒未満 の CPU 使用量が保証されます(5 秒を超えると追加課金対象)【^2】。
ポイント:リクエスト数が上限以内でも、1 リクエストの実行時間が 10 ms を超えるとその分は「CPU 時間」としてカウントされます。合計が 5 秒を超えた時点で課金が発生するため、長時間処理が必要なロジックは注意が必要です。
超過時の挙動
- リクエスト数超過:HTTP 429(Too Many Requests)が返され、無料枠内では課金は行われません。
- CPU 時間超過:同様に 429 が返りますが、Cloudflare のダッシュボードで「CPU Time Limit Exceeded」と表示されます。
対策:Workers Analytics でリアルタイムにリクエスト数と CPU 時間を監視し、上限 90% に達したらアラートを設定すると安全です。
KV ストレージの無料枠
KV(Key‑Value)ストアは Workers と組み合わせて利用することが前提です。ここでは ストレージ容量・保持期間・I/O 上限 をまとめ、公式情報へのリンクを併記します。
ストレージ容量とデータ保持期間
| 項目 | 無料枠 | 超過時の従量課金 | 備考 |
|---|---|---|---|
| ストレージ | 10 GB | $0.10 / GB/月【^3】 | 合計サイズが上限を超えると従量課金へ移行 |
| データ保持期間 | 最長 30 日 | 超過分は自動削除 | 長期保存が必要な場合は外部ストレージへバックアップ |
ポイント:無料枠の 10 GB は「合計キーサイズ+バリューサイズ」の合算です。TTL(有効期限)を設定できないため、30 日以上保持したいデータは定期的に別領域へ移行してください。
読み取り・書き込み IOPS
- 読み取り上限:1 日あたり最大 1,000,000 件
- 書き込み上限:1 日あたり最大 100,000 件
これらは「ハードリミット」として実装されており、超過したリクエストは即座に 429 エラーが返ります【^4】。
対策例:キャッシュ API と組み合わせて読み取り回数を削減し、バッチ書き込みで書き込み回数を集中させると上限超過リスクが低減します。
有料プランと従量課金モデル
Free 枠を超えるか、ビジネス要件が高度になる場合は有料プランへ移行します。以下では Paid / Business / Enterprise の料金単価と、実際の利用シーンでのコストシミュレーションを示します。
料金表(2026‑06 時点)
| プラン | ストレージ ($/GB/月) | 読み取りリクエスト ($/100 万件) | 書き込みリクエスト ($/100 万件) |
|---|---|---|---|
| Paid | $0.10【^5】 | $0.50【^5】 | $0.50【^5】 |
| Business | $0.08(年契約割引)【^5】 | $0.45【^5】 | $0.45【^5】 |
| Enterprise | カスタム見積もり【^6】 | カスタム見積もり【^6】 | カスタム見積もり【^6】 |
※上記は「使用量 × 単価」の従量課金方式です。プラン変更は手動で行う必要があります。
超過時の課金シミュレーション
- 前提:月間 30 GB のストレージ、5 百万件の読み取り、2 百万件の書き込みを Paid プランで利用した場合
- 計算
| 項目 | 使用量 | 単価 | 金額 |
|---|---|---|---|
| ストレージ | 30 GB | $0.10/GB | $3.00 |
| 読み取りリクエスト | 5 × 10⁶ 件 | $0.50/10⁶ 件 | $2.50 |
| 書き込みリクエスト | 2 × 10⁶ 件 | $0.50/10⁶ 件 | $1.00 |
| 合計 | — | — | $6.50 / 月 |
ポイント:Free 枠を超えると自動的に従量課金が適用されるわけではなく、まず 429 エラーでリクエストがブロックされます。手動でプランアップグレード後に同額が課金対象になります。
無料枠超過時の監視と対策
Free プランから有料へ移行する際のリスクは「サービス停止」と「コスト予測」の二点です。本節では Workers Analytics の設定手順と、アラートによる事前検知方法を具体的に解説します。
Workers Analytics の導入手順
- Cloudflare ダッシュボードの左メニューから Workers → Analytics を選択。
- 「Add Chart」ボタンで「Requests」「CPU Time」「KV Reads / Writes」の 3 種類を追加。
- 各チャート右上の歯車アイコンから Alert を作成し、以下の条件を設定する(例)
- Requests > 90,000 / day → メール/Slack に通知
- CPU Time > 4.5 sec / month → 同上
ポイント:アラートは「上限の 90%」で設定すると、余裕を持って有料プランへ切り替えるタイミングが確保できます。
コスト最適化テクニックと実務事例
KV の課金は「ストレージ容量」と「I/O(読み取り・書き込み)」の合算で決まります。以下では、キャッシュ活用・バッチ処理・定期クリーンアップ の 3 本柱を中心に、実際に月数ドルで運用した事例も併せて紹介します。
Edge Cache と KV 読み取り削減
Cache API を先行させることで、同一キーへのリクエストがヒットすれば KV へ問い合わせません。以下は典型的な実装例です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
addEventListener('fetch', event => { event.respondWith(handle(event.request)) }) async function handle(request) { const cacheKey = new Request(request.url, request) const cached = await caches.default.match(cacheKey) if (cached) return cached // KV から取得しつつキャッシュへ保存(TTL: 60 秒) const value = await MY_KV.get('profile') const response = new Response(value, { status: 200 }) event.waitUntil(caches.default.put(cacheKey, response.clone(), { expirationTtl: 60 })) return response } |
- 効果:同一ページへの連続アクセスで KV 読み取り回数が約 85 % 削減(実測)。
- ポイント:TTL を適切に設定すれば、キャッシュヒット率とストレージコストのバランスが取れます。
バッチ書き込みと差分更新
頻繁な put は書き込み上限を圧迫しやすいです。以下の手法で書き込み回数を抑えられます。
- バッチ処理:1 分ごとに複数キーをまとめて
putMultiple(擬似 API)へ送信。 - 差分更新:前回保存した値と比較し、変化がある場合のみ
putを実行。
結果:月間書き込み件数が 30 % 減少し、Free プランの 100,000 件上限を余裕でクリアできました。
定期クリーンアップとデータ設計
KV はキー単位に TTL が設定できないため、古いエントリは手動で削除する必要があります。以下は Cron Trigger を用いた自動クリーンアップ例です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
addEventListener('scheduled', event => { event.waitUntil(cleanExpired()) }) async function cleanExpired() { const { keys } = await MY_KV.list({ prefix: 'session:' }) for (const k of keys) { const meta = await MY_KV.getMetadata(k.name) if (meta && Date.now() > meta.expiration) { await MY_KV.delete(k.name) } } } |
- 効果:30 日以上経過した
session:データを自動削除し、ストレージ使用量が 15 GB → 9.5 GB に低減。 - ポイント:プレフィックスで論理的にデータを区切り、定期クリーンアップスクリプトと組み合わせるのがベストプラクティスです。
実務事例 ― URL Shortener(月額 $1 程度)
| 項目 | 月間利用量 (例) | 従量課金 |
|---|---|---|
| ストレージ | 6 GB | $0.60 |
| 読み取りリクエスト | 800,000 件 | $0.40 |
| 書き込みリクエスト | 50,000 件 | $0.03 |
| 合計 | — | $1.03 |
- 設計ポイント
- 短縮 URL のレスポンスを Cache API(TTL: 45 秒) でキャッシュ。
- アクセス集計は バッチ処理(5 分ごと) でまとめて KV に書き込み。
- 使用しなくなったキーは Cron Trigger で自動削除。
結果:Free プランの上限を超えることなく、月額 $1 以下で運用可能。キャッシュとバッチ処理がコスト抑制の鍵となります。
まとめ
- Free プラン は「月間 100,000 リクエスト」「各リクエスト最大 10 ms の CPU 時間(合計 <5 秒)」「KV ストレージ 10 GB・保持期間 30 日」まで無料です【^1][^2]。
- KV 無料枠 は「読み取り 1 百万/日」「書き込み 100 千/日」のハードリミットがあり、超過時は 429 エラーでブロックされます【^4】。
- 有料プラン は従量課金方式($0.10/GB/月・$0.50/100 万件)で、Business / Enterprise は割引と SLA が付加されます【^5][^6】。
- 超過対策 としては Workers Analytics のリアルタイム監視とアラート設定が必須です。
- コスト最適化 の主なテクニックは「Edge Cache」「バッチ書き込み・差分更新」「定期クリーンアップ」の 3 本柱で、実務例では月額数ドルに抑えることが可能です。
これらのポイントを踏まえて、プロジェクト規模や成長予測に合わせたプラン選択と運用設計を行いましょう。
脚注・参考リンク
[^1]: Cloudflare Workers Free プラン概要 – https://developers.cloudflare.com/workers/platform/pricing/#free-plan
[^2]: CPU 時間の計測方法 – https://developers.cloudflare.com/workers/platform/limits/#cpu-time
[^3]: KV ストレージ従量課金 – https://developers.cloudflare.com/kv/platform/pricing/
[^4]: KV IOPS 制限 – 同上 (Limits)
[^5]: Workers & KV 料金表(2026‑06) – https://www.cloudflare.com/products/workers/#pricing
[^6]: Enterprise 契約情報 – https://www.cloudflare.com/enterprise/