跳轉到

8.4 成本模型分析#

本節目標#

  • 建立 Cloudflare Workers 生態(Workers、D1、R2、KV、DO)的免費額度與計費單位心智模型。
  • 比較 Workers Free / Paid 訂閱模型的數學。
  • 估算一個「小型業務網站」的月成本,並回答何時該升級。

計費的世界觀:平台用「操作」計費,不是「機器」#

傳統雲端賣的是長出一台機器的時間(EC2 以小時計);Cloudflare 邊緣平台賣的是請求與計算量:

\[ \text{月成本} = \text{固定月費} + \text{單價} \times \text{用量超額} \]

這個模型對「流量起伏大」的網站最友善(1.1 節的 OpEx 概念),但代價是你要讀得懂每個產品的單位:

  • Workers:請求數(request)+ CPU 毫秒(compute)
  • D1:讀列數(rows read)+寫列數(rows written)+儲存 GB
  • R2:儲存 GB + Class A(寫、列表)+Class B(讀、head)操作數
  • KV:讀 + 寫 + 儲存 + 刪除
  • Durable Objects:請求 + 儲存 + 運行時間(GB-hour)

免費方案限制表(2024–2025 公開數字,以官方文件為準)#

產品 Free 方案額度 Paid 方案
Workers 請求 10 萬次 / 天,10ms CPU / invocation 1,000 萬次 / 月起,CPU 上限 30ms
Workers Observability 約 20 萬 log 事件 / 天 每月百萬級起,隨用量
D1 5 GB 儲存;500 萬列讀 / 天;10 萬列寫 / 天 25 億列讀/月起,儲存首 5 GB 後計量
R2 10 GB 儲存;100 萬 Class A / 月;1,000 萬 Class B / 月 \(0.015 / GB·月;A\) 4.50/百萬;B $0.36/百萬
KV 10 萬讀 / 天;1 千寫 / 天;1 GB 儲存 百萬級起付單價(讀 $0.50 / 百萬等)
Durable Objects (隨 Workers Paid 提供,免費版無 DO) 10 萬請求 / 天實驗額度 $0.15 / 百萬請求+儲存+時長
靜態資源(Workers Assets) 免費計入請求 部分請求型樣不另外計費

解讀兩個容易誤解的點:(1) D1 的是 5 GB 不是 10 GB;(2) 「10 萬請求 / 天」是 Workers 的天花板,超出即 1015 錯誤——不是降速,是硬停,這對正式服務是關鍵設計考量。

訂閱方案對比:Free vs Paid(每月 $5 起)的數學#

Workers Paid:固定 $5 / 月,內含 1,000 萬請求 + 3,000 萬 CPU-ms,超出部分:

項目 單價
額外請求 $0.30 / 百萬
額外 CPU 時間 $0.02 / 每百萬 CPU-ms?(以官方最新公告為準,近年持續降價)
Cron Triggers 免費額度 + 超量計費

用平衡點算「何時值得付 $5」:

\[ N^* = \frac{\texttt{Paid 內含}}{\texttt{30 天}} = \frac{10{,}000{,}000}{30} \approx 33\text{ 萬請求 / 天} \]

也就是說:日流量 > 10 萬請求 / 天(Free 上限)且 < 33 萬 / 天 的甜蜜區帶,Paid 幾乎是「白送」一倍的容量還讓 CPU 上限從 10ms 提到 30ms、開啟 Durable Objects、Logpush 等功能。這個帶外的數學請自己用第 1 節的公式重新推導。

估算:一個小型業務網站月成本#

情境假設(中型個人品牌/小型電商):

項目 月用量 Free 可容? 月成本
頁面與 API 請求 60 萬請求(2 萬/天) ✅ 免費內 $0
靜態資源流量 8 GB ✅(不計費) $0
D1 讀 900 萬列 ✅(30 萬/天額度內) $0
R2 圖片儲存 18 GB ❌ 超 10 GB 8 GB × \(0.015 =\) 0.12
R2 操作 200 萬 B 類 ✅ $0
KV 文章緩存 5 萬讀 / 天 ⚠️ 額度緊 視當月而定
合計 ≈ \(0~\) 0.2

若流量成長到 5 萬請求/天(150 萬/月):Workers Free 的上限在月中某天就會被撞穿,最務實的答案就是升級 Workers Paid \(5,取得 10 倍額度,且 D1 計量邏輯、DO、Logpush、Rate Limiting 全解鎖 —— 多數小型網站的終點就是這條\) 5。

與傳統方案對照(直覺錨點)#

  • 一台 1C1G VPS:$5~10 / 月,但你得管開機、備份、每天掛不掛;流量尖峰無彈性。
  • Serverless(Lambda + API Gateway):同樣用量計價,但跨區延遲與 egress 費用常是 Workers 的數倍。
  • Workers 本身的 egress 零費用(R2 對外傳輸免費),這是「把資料放旁邊」架構最省的地方。

什麼時候該升級?#

  1. 日請求逼近 10 萬:Free 是硬上限,1015 錯一秒都嫌多——提前升級。
  2. 單請求 CPU > 10ms:Free 的 10ms 限可被大 JSON 轉換、重量級運算打爆;出現 occasional 1102 錯誤就是訊號。
  3. 需要 Durable Objects、Logpush、Rate Limiting rule:功能面被鎖。
  4. D1 已觸頂:資料量未到 5 GB 但寫入 > 10 萬列/天,先升級再談寫入延伸。

反向建議:**不值得為了省 \(5 而提前自己架機器**——工程時數一小時就超過\) 5;省錢的正確做法是:把可快取的資源推到 s-maxage(8.2)降低請求數、用取樣率(8.1)壓 log 額度。

小結與練習#

重點回顧

  1. 邊緣平台的計費單位是「請求 × 操作 × 儲存」,讀對單位才算對錢。
  2. 免費額度最大的天花板是 Workers 的 10 萬請求/天(硬停機),不是流量、不是頻寬。
  3. 跨過 Free 上限後,Workers Paid $5 幾乎無對手;成本優化的槓桿在快取命中率與 log 取樣率。

練習

  1. 用你的站的真實流量組合,重算上表的月用量,並標出「離升級還剩幾 %」。
  2. 假設你的 Worker 平均花 8ms CPU,計算在第幾萬個請求時 CPU 時間會撞上 Free 10ms 上限,以及 Paid 後的月 CPU 附加費。
  3. 對照 1.1 節的 OpEx 公式,寫一段 3 行文字向不懂技術的老闆解釋「為什麼我們的帳單不會因流量尖峰翻倍」。