99.9% Uptime 的小團隊架構:Vercel + Cloudflare 組合拳
📌 關鍵要點 Key Takeaways
- Vercel Pro + Cloudflare Pro 每月 $127,8 個產品同時跑
- 同等規格 AWS 架構估算:每月 $890-1,200(不含 DevOps 人力)
- Cloudflare CDN 讓台灣用戶 TTFB 從 340ms 降到 28ms
- 突發流量用 Cloudflare Cache Rules + Vercel Edge Functions 自動吸收
- 99.91% uptime = 每月最多 7.9 小時停機,我們實際停機:0 分鐘(6 個月)
為什麼不用 AWS?
這是最常被問到的問題。AWS 不是不好——AWS 是業界標準,大型企業用它完全正確。但對 2 人工程師團隊,AWS 帶來的問題比它解決的還多:
| 考量 | AWS | Vercel + Cloudflare |
|---|---|---|
| 設定時間 | 1-2 週(VPC、Security Groups、IAM...) | 30 分鐘(deploy 指令) |
| 維運複雜度 | 需要 DevOps 專業知識 | 幾乎零維運 |
| 月費(8 個中小型產品) | $890-1,200 | $127 |
| 自動擴縮 | 需要設定 Auto Scaling Groups | Serverless 自動擴縮 |
| 部署時間 | 5-15 分鐘 | 30-90 秒 |
| 全球 CDN | 需要額外設定 CloudFront | Cloudflare 內建,116 個 PoP |
AWS 的優勢在大量客製化需求、合規要求(SOC2、HIPAA)、超大規模(每秒數百萬請求)。我們的產品現階段都不需要這些。等到真正需要的時候再遷移——到時候也有錢請 DevOps 工程師了。
完整架構圖
用戶請求
↓
Cloudflare DNS + Proxy
↓
Cloudflare Cache Rules(靜態資源直接返回,不到 Origin)
↓
Cloudflare WAF(過濾惡意流量)
↓
Vercel Edge Network(Next.js Edge Functions)
↓
Vercel Serverless Functions(API Routes / Pages)
↓
Vercel Postgres / PlanetScale(資料庫)
↓
外部服務(Anthropic API、LINE API、Stripe...)
每一層都有自己的職責,而且每一層的 failover 都是自動的:
- Cloudflare:DNS、CDN、WAF、DDoS 防護、SSL 終止
- Vercel Edge:地理位置判斷、A/B testing、請求路由
- Vercel Serverless:業務邏輯 API、SSR 頁面渲染
- 資料庫:Vercel Postgres(自動備份、自動容災)
CDN 設定:讓台灣用戶快 12 倍
台灣用戶訪問部署在美國 us-east-1 的服務,光是網路延遲就有 200-300ms。加上伺服器處理時間,TTFB 容易超過 500ms——這對 SEO 和用戶體驗都是致命傷。
Cloudflare 在台灣有 台北 PoP,靜態資源快取後從台北直接返回。設定:
# Cloudflare Cache Rules # 靜態資源快取 30 天 (http.request.uri.path matches "\\.(jpg|jpeg|png|gif|webp|svg|css|js|woff2)$") → Cache TTL: 2592000 seconds # HTML 快取 5 分鐘(動態內容不能太長) (http.request.uri.path matches "\\.html$" or http.request.uri.path eq "/") → Cache TTL: 300 seconds # API 不快取 (http.request.uri.path starts_with "/api/") → Bypass Cache
結果:台灣用戶 TTFB 從平均 340ms 降到 28ms。這是 12 倍的提升,不是靠改程式碼,而是靠 CDN 設定。
突發流量處理
海衫科技的遊戲產品曾經被一個 YouTuber 介紹(他有 18 萬訂閱),15 分鐘內流量暴增 40 倍。用傳統架構這會是事故,但我們什麼事都沒發生:
- 靜態資源:全部在 Cloudflare CDN 返回,不到 Origin
- HTML 頁面:Vercel Edge Functions 在 edge 渲染,幾乎無限擴縮
- API 請求:Vercel Serverless 自動根據請求量擴縮 instance 數
- 資料庫:Vercel Postgres 有 connection pooling,不會因為連接數爆炸
總花費增加了多少?當月 Vercel 帳單多了 $23(Serverless Function 調用次數超額)。Cloudflare 沒有額外費用(Pro plan 無限流量)。
真實費用明細(2026 Q1 平均)
| 服務 | 方案 | 月費 | 用途 |
|---|---|---|---|
| Vercel | Pro | $20 | 所有產品的部署平台 |
| Cloudflare | Pro | $20 | CDN、WAF、DNS |
| Vercel Postgres | Pro | $20 | 主資料庫 |
| Upstash Redis | Pay-as-you-go | $8 | 快取、Session |
| Resend | Pro | $20 | 交易信件 |
| 其他(監控、域名) | - | $39 | BetterStack、Namecheap |
| 合計 | $127 |
這個費用不包含 Claude API(另外計算,平均 $180/月)和 Stripe 手續費(按交易額%計)。
監控與告警
用 BetterStack 做 uptime 監控,每分鐘從全球 5 個地點 ping 所有服務。設定:
- 連續 2 次失敗(2 分鐘):Telegram 通知
- 連續 5 次失敗(5 分鐘):電話叫醒
- 所有 5xx 錯誤率超過 1%:即時 Telegram 通知
過去 6 個月,BetterStack 記錄的停機時間:0 分鐘。有 3 次 Vercel 本身的短暫問題(各不到 30 秒),但 Cloudflare 的快取讓用戶完全沒有感知。