Cost model Cloudflare Developer Platform: tier, so sánh AWS

Pricing từng primitive Cloudflare (Workers, D1, KV, R2, Queues, DOs, Vectorize, Workers AI), breakpoint, so sánh AWS, 3 scenario: blog, SaaS 10k user, app 100M req/tháng.

· 11 phút đọc · Read in English
Phân tích chi phí Cloudflare Developer Platform: pricing từng primitive Workers/D1/KV/R2/Queues/DO/Vectorize/AI, breakpoint chuyển tier, so sánh với AWS Lambda + DynamoDB + S3, ưu thế zero egress

TL;DR

Cloudflare Developer Platform có model pricing đơn giản: free tier rộng, flat $5/tháng cho Paid plan include quota hào phóng, overflow tính theo unit với rate rẻ so với AWS. Egress bằng 0.

Luận điểm chính:

Cloudflare rẻ hơn AWS ở 3/4 primitive điển hình (Workers, D1, R2) và ngang ở 1/4 (KV vs DynamoDB, Queues vs SQS). Nhưng lợi thế quyết định là zero egresskhông phải trả cho hạ tầng nhàn rỗi. Với app < 100M request/tháng, thường rẻ hơn AWS 5-20 lần. Với > 1B, vẫn rẻ 10-30 lần — chủ yếu nhờ egress và no idle cost.

Bài này đi qua: pricing từng primitive chi tiết, 3 scenario thực (blog, SaaS 10k user, app 100M req), breakpoint khi nào Paid tier đáng bật, và khi nào AWS thực sự rẻ hơn Cloudflare.


Dành cho ai

  • Dev đang build side project, cần ý tưởng sơ bộ về cost.
  • Team startup đánh giá migration từ AWS.
  • Finance / engineering manager ước chừng budget cho platform choice.

Nên đọc trước: Part 1 (tổng quan), Part 13 (Workers AI pricing).

Sau bài này bạn sẽ:

  • Ước chừng cost monthly cho app của bạn trong < 15 phút.
  • Biết breakpoint khi chuyển từ Free sang Paid, từ Paid sang Enterprise.
  • Xác định khi nào cost optimization đáng effort, khi nào không.

Bài này không nói về gì

  • Enterprise pricing đi sâu: bulk discount custom, không public. Tham khảo sales.
  • Thiết lập cost alert: Part 17 đã cover (Analytics Engine + Notifications).
  • So sánh Vercel, Netlify, Railway: focus AWS vì benchmark phổ biến nhất cho serverless.

Pricing từng primitive

Breakdown cost từng primitive Cloudflare so với AWS equivalent: Workers vs Lambda + API GW, D1 vs RDS, KV vs DynamoDB, R2 vs S3 (zero egress là decisive), Queues vs SQS, Durable Objects vs ElastiCache/self-host Redis, Workers AI vs Bedrock.

Workers (compute)

Free tier:

  • 100k request/ngày (≈ 3M/tháng).
  • 10ms CPU time mỗi invocation.

Paid plan ($5/tháng):

  • 10M request/tháng included.
  • 30s CPU time mỗi invocation.
  • Overflow: $0.30 mỗi 1M request + $0.02 mỗi 1M CPU-ms trên 30ms.

So với AWS Lambda:

  • Lambda: $0.20/1M request + $0.0000166/GB-s.
    • API Gateway: $1/1M request (REST) hoặc $3.50/1M (HTTP API).

Worker $0.30/1M vs Lambda+APIGW $1.20-4.20/1M = rẻ hơn 3-14 lần.

D1 (SQL database)

Free tier:

  • 5M rows read/ngày, 100k rows written/ngày.
  • 5GB storage.

Paid plan (included trong $5 bundle):

  • 25B rows read/tháng, 50M rows written/tháng.
  • 5GB storage.

Overflow:

  • $0.001 mỗi 1M rows read.
  • $1 mỗi 1M rows written.
  • $0.75 mỗi GB-month storage.

So với DynamoDB on-demand:

  • $0.25/1M reads (eventually consistent), $1.25/1M writes.
  • $0.25/GB storage.

D1 reads rẻ hơn 250 lần so với DynamoDB. Writes tương đương. Storage đắt hơn DynamoDB 3 lần (nhưng ai dùng > 10GB thì đã migrate khỏi D1 rồi).

So với RDS (small instance):

  • t4g.micro: $12/tháng tối thiểu (chưa tính storage, backup, multi-AZ).
  • Scale dọc tốn kém.

D1 < $1/tháng cho blog, $10-30/tháng cho SaaS thường. RDS tối thiểu = $12/tháng cho dev database idle.

KV (key-value)

Free:

  • 100k reads/ngày, 1k writes/ngày.
  • 1GB storage.

Paid:

  • 10M reads, 1M writes /tháng included.
  • Overflow: $0.50/1M reads, $5/1M writes, $0.50/GB-month.

So với DynamoDB:

  • Reads: KV rẻ hơn 2 lần ($0.25 vs $0.50).
  • Writes: DynamoDB rẻ hơn 4 lần ($1.25 vs $5).

KV eventually consistent. Dùng cho cache, config, flag. Không cho data transactional.

R2 (object storage)

Free tier:

  • 10GB storage.
  • 1M Class A operations (PUT, POST, LIST).
  • 10M Class B operations (GET, HEAD).

Paid:

  • $0.015/GB-month storage.
  • $4.50/1M Class A operations.
  • $0.36/1M Class B operations.
  • $0 egress.

So với S3:

  • $0.023/GB-month storage.
  • $5/1M Class A, $0.40/1M Class B.
  • $0.09/GB egress (trong US, outbound internet).

R2 rẻ hơn 50% về storage. Chênh lệch egress là yếu tố quyết định với media/API public.

Ví dụ: 1TB R2 storage + 10TB egress/tháng = R2 $15 vs S3 $923 ($23 + $900). Rẻ hơn ~60 lần.

Queues

Free:

  • 1M operations/tháng.

Paid:

  • 100M operations/tháng included.
  • $0.40/1M thêm.

So với SQS:

  • $0.40/1M request (64KB).
  • Message lớn hơn → tính thêm billing unit.

Ngang nhau. Không có lợi thế lớn hoặc nhược điểm.

Durable Objects

Free: hạn chế, thường 1M request/ngày + duration nhỏ.

Paid:

  • $0.15/1M request.
  • $12.50/1M GB-s duration (khi DO active).
  • $0.20/GB-month storage.
  • WebSocket hibernated: $0 duration, chỉ storage.

So sánh: không có AWS equivalent trực tiếp. Gần nhất = ElastiCache Redis cluster ($15-50/tháng min) + code coordination tự viết.

1000 chat room active: ~$2/tháng DO vs $15+/tháng Redis. Rẻ hơn 8 lần.

Vectorize

Paid:

  • $0.04/1M dimensions stored/month.
  • $0.01/1M dimension queried.

So với Pinecone:

  • $70/tháng tối thiểu (p1.x1 starter).
  • Quota per-namespace.

Vectorize tính phí theo dùng. Pinecone yêu cầu commitment tối thiểu. Rẻ hơn 10-70 lần ở small scale.

Workers AI

Free: 10k neuron/ngày.

Paid: $5 bundle include allocation neuron.

Per-model pricing (ví dụ):

  • Llama 3.1 8B: $0.11/1M input token.
  • Llama 3.3 70B: $0.40/1M input.
  • bge-m3 embedding: $0.012/1M token.
  • Flux schnell: $0.005/ảnh.

So với Bedrock Claude Haiku: $0.25/1M input. Workers AI Llama 8B tương đương tier = rẻ hơn 2 lần.

Model frontier (GPT-4, Claude 4.7, Gemini 2.5 Pro) không có equivalent Workers AI.


Scenario 1: blog cá nhân

Đường cong chi phí: Cloudflare flat ~$5-20/tháng từ 100k tới 1B request, AWS (Lambda + API GW + DynamoDB + S3) linear từ $0 tới $5000 ở 1B. Breakpoint 1M: cả hai còn free. 10M: CF $5 vs AWS $50. 100M: CF $20 vs AWS $500.

Setup: Astro static blog + Worker cho form subscribe + Workers AI cho gợi ý popular posts.

Traffic:

  • 50k page view/tháng.
  • 200 form submit/tháng.
  • 2k AI suggestion call/tháng.

Cloudflare cost:

ServiceUsageCost
Workers (Paid plan)100k req (page + api)$5 (include)
Workers Assets (serve HTML)50k$0 (trong bundle)
D1 subscribers table200 writes, 50k reads$0
R2 cover image500MB, 200k fetch$0.01
Workers AI Llama 8B2k call × 500 token$0.10
Vectorize1000 vector × 1024 dim$0.04
Tổng$5.15/tháng

AWS equivalent:

ServiceUsageCost
Lambda100k req$0.02
API Gateway100k req$0.10
CloudFront + S350k page × 100KB = 5GB$0.45
DynamoDB250 write, 50k read$0.05
S3 image500MB, 200k GET$0.09
Bedrock Claude Haiku2k call$0.50
OpenSearch (vector)tối thiểu $50/tháng$50
Tổng$51.21/tháng

Cloudflare rẻ hơn 10 lần nhờ bundle + không có min instance.

Free tier hoàn toàn?

Nếu không dùng Workers AI + Vectorize: Cloudflare $0/tháng toàn bộ.

Key insight

Blog cá nhân Cloudflare miễn phí hoặc $5 total. AWS tối thiểu $50+ vì OpenSearch + even tiny DB instance.


Scenario 2: SaaS startup 10k user

Setup: todo app SaaS + admin dashboard + API cho mobile.

Traffic:

  • 1M API request/tháng.
  • 100k user action/ngày = 3M/tháng D1 write.
  • 30M D1 read/tháng.
  • 100GB R2 (user upload) + 200GB egress.
  • WebSocket chat 1000 concurrent avg (Durable Objects + Hibernation).

Cloudflare:

ServiceUsageCost
Workers Paid1M req$5 (include)
D130M reads (free in bundle), 3M writes$3 (2M overflow × $1/1M)
R2 storage100GB$1.50
R2 egress200GB$0
R2 ops500k Class B$0.18
Durable Objects1000 room × 1h active/day~$5
Tổng~$14.70/tháng

AWS:

ServiceUsageCost
Lambda1M req$0.20
API Gateway1M req$1
DynamoDB30M reads, 3M writes$11.25
S3 storage100GB$2.30
S3 egress200GB$18
S3 ops500k GET$0.20
ElastiCache t3.small Redismin 1 node$50
Socket.io trên EC2 t3.small1 instance$15
Tổng~$98/tháng

Cloudflare rẻ hơn ~7 lần. Egress là yếu tố lớn (200GB = $18 AWS, $0 CF).


Scenario 3: app 100M request/tháng

Setup: API-heavy service, AI features, media upload.

Traffic:

  • 100M Worker request.
  • 500M D1 read, 50M write.
  • 1TB R2 + 10TB egress.
  • 10M Workers AI call (Llama 8B).
  • 5M Vectorize query.

Cloudflare:

ServiceUsageCost
Workers100M req (10M free, 90M × $0.30/1M)$27
D1500M read free, 50M write × $1/1M$50
R2 storage1TB$15
R2 egress10TB$0
R2 ops10M$3.60
Workers AI10M × 500 token × $0.11/1M$550
Vectorize5M query × 1024 dim × $0.01/1M$51
Tổng~$696/tháng

AWS:

ServiceUsageCost
Lambda100M req$20
API Gateway100M req$100
DynamoDB500M read, 50M write$188
S3 storage1TB$23
S3 egress10TB (đã qua tier)$900
Bedrock Claude Haiku10M × 500 token$1250
OpenSearch m6g.large (vector)1 node$150
Tổng~$2631/tháng

Cloudflare rẻ hơn ~4 lần. Egress + AI là biggest savings.


Breakpoint: khi nào bật Paid

Free tier của Cloudflare rộng. Breakpoint bật Paid plan ($5/tháng):

  1. Workers observability enabled — free plan chỉ có trace limited.
  2. Cron trigger > 30s — free: 30s timeout, paid: 15 phút.
  3. CPU time > 10ms/req — free limit, paid lên 30s.
  4. Request > 3M/tháng — free cap.
  5. Dùng Workers AI — neuron quota free đủ nhỏ.
  6. Cần R2 > 10GB — vượt free tier.

Paid $5/tháng flat include:

  • 10M request.
  • 30s CPU time.
  • 25B D1 row read, 50M write.
  • 10GB R2 storage + ops.
  • Workers AI neuron allocation.

Gần như luôn đáng tiền nếu đang build app thật.

Enterprise: khi nào?

  • Bot Management advanced score-based.
  • Logpush enterprise.
  • Commit discount (volume negotiate).
  • Custom SLA.
  • Dedicated support.

Không có số cố định. Thường > $1000/tháng spend thì contact sales worth.


Cost optimization tip

① Sampling observability

Workers Logs $0.60/1M cho 100M request = $60/tháng. head_sampling_rate: 0.1 → $6/tháng.

② Cache aggressive

Cache CDN miễn phí. API /api/popular cache 1h = 10k hit → 10 miss/hour = 240/ngày vs 240k/ngày = rẻ hơn 1000 lần.

③ Aggregate trước khi write D1

1M event/phút × D1 write 1-1 = đắt. Buffer vào KV / Queue, aggregate 5-phút batch → write 1 row thay vì 1M row.

④ R2 lifecycle rule

Log file R2 sau 30 ngày archive hoặc delete. Storage cost compound, không tự clean.

⑤ Workers AI cache

AI Gateway cache per-prompt. Similar post recommendation cached 24h = giảm 99% call.

⑥ KV tier down

KV read $0.50/1M. Nếu data rarely change: cache trong Worker variable (module-level) cho warm isolate. Miễn phí cho cache hit.

⑦ Scheduled Worker thay DO

DO luôn alive = cost. Scheduled Worker invoke → short execution → idle. Nếu không cần WebSocket, Scheduled thay được.


Khi AWS thực sự rẻ hơn

Không phải luôn Cloudflare. Các trường hợp AWS rẻ hơn:

① Commit discount sâu

Enterprise deal với AWS 3-year RI 60% discount → compute rẻ hơn.

② Job data-intensive

Spark + EMR cho ETL TB/day. Cloudflare không có equivalent. Self-host với Workers không scale.

③ Service chuyên biệt

SageMaker custom model training, SES email, Route 53 advanced routing. AWS có breadth lớn hơn.

④ Process long-lived

Worker không chạy 24/7. Cần Redis pub-sub 365/7 → self-host trên EC2 rẻ hơn nếu throughput cao.

⑤ Existing lock-in

Migration cost > saving. Nếu app AWS 5 năm có 200 resource, migrate Cloudflare không justify trừ khi strategic.


Gotcha

① Free tier mỗi ngày, không theo tháng

Workers Free: 100k req/ngày, reset midnight UTC. Burst traffic có thể dùng hết quota trong 1 giờ → rate limit. Paid plan cho predictable.

② D1 write cost tinh tế

$1/1M write rẻ, nhưng 1 query UPDATE 1000 row = 1000 write. Bulk update không phải 1 write = 1 transaction billed.

③ R2 Class A đắt hơn Class B

PUT, LIST đắt hơn GET 10 lần. Không gửi batch PUT cho nhiều small file — tốt hơn là concat.

④ DO GB-s tính khi active

Hibernation API quan trọng. Không hibernate = 24h/ngày × 30 ngày = 2.5M GB-s × $12.5/1M = $31/tháng mỗi DO. Hibernation giảm 10-100 lần.

⑤ Egress không miễn phí cho AI external

Workers AI egress free. OpenAI/Anthropic qua AI Gateway: Worker → Gateway free. Gateway → Provider → Gateway free (Cloudflare network). Provider → user: charge nếu Cloudflare proxy, khác nếu route khác.

⑥ Vectorize dimension × count

Cost = dim × vector × rate. 1M vector × 1024 dim = 1B dimension stored. Dimension nhỏ (bge-small 384) giảm cost tỉ lệ.

⑦ Budget alert

Không có hard cap built-in. Overflow 100 lần vẫn charge. Setup Notification cost alert sớm (Part 17).

⑧ Reserved pricing không có

AWS RI 40-60% saving. Cloudflare enterprise negotiate, không public. Small/medium team không benefit.


Template ước chừng 15 phút

Không chính xác tuyệt đối, nhưng catch 80%:

Workers: monthly_req / 1e6 × $0.30 (overflow sau 10M)  → $X
D1: read / 1e6 × $0.001 + write / 1e6 × $1  → $Y
R2: storage_GB × $0.015 + ops / 1e6 × ($4.50 class A + $0.36 class B)  → $Z
Workers AI: tokens / 1e6 × $0.11 (Llama 8B)  → $W
Vectorize: dim_stored / 1e6 × $0.04 + query / 1e6 × $0.01  → $V
DO: active_GB_s / 1e6 × $12.50 + storage_GB × $0.20  → $U

Tổng ≈ X + Y + Z + W + V + U + $5 (Paid plan).

So AWS: tương tự với rate × 3-10 lần.


Production checklist

  • Bật Paid plan ($5/tháng) nếu build real app.
  • Sampling observability phù hợp traffic.
  • Cache header + CDN cho static + API có data cache được.
  • Log cost budget alert (Notifications).
  • R2 lifecycle rule cho log, backup expired.
  • DO hibernation enabled cho WebSocket.
  • AI Gateway cache cho LLM call.
  • Aggregate D1 write (buffer + batch), không 1-1 event.
  • Dimension embedding nhỏ nhất mà đủ quality (bge-base 768 thay bge-m3 1024 nếu OK).
  • Review cost monthly, xác định spend bất thường.
  • Scope API token theo principle of least privilege (Part 12) — giảm rủi ro cost abuse từ leaked token.

Kết

Cloudflare developer platform rẻ hơn AWS ở hầu hết scenario 5-30 lần, chủ yếu nhờ bundle include + zero egress + không có idle cost. Với blog/SaaS medium scale, total < $50/tháng dư dả. Với app 1B request/tháng, < $1000/tháng.

AWS vẫn thắng cho workload chuyên biệt, batch data-intensive, commitment discount sâu. Nhưng cho app edge-first, Cloudflare là default hợp lý.

Part 20 (cuối): Migration từ AWS/Vercel sang Cloudflare — playbook thực tế move Lambda → Worker, S3 → R2, DynamoDB → D1. Đóng series.


Tham khảo