結論先講
雲端帳單只是 TCO 的 10-20%,人力成本才是大頭。 Go 的機器成本確實比 Python 低 40-60%,但如果你的團隊全是 Python 工程師,硬轉 Go 省的機器錢會被學習曲線的時間成本吃掉。先算清楚「你的瓶頸是機器還是人」,再決定要優化哪邊。
從壓測數據算起
根據我們的壓測數據(9 個框架的 benchmark),500 concurrent users 下各框架需要的資源:
框架 CPU RAM RPS 每 Request 平均延遲
────────────────────────────────────────────────────────
Go (Gin) 2C 512MB ~4500 ~8ms
Go (Fiber) 2C 512MB ~5000 ~7ms
Node (Fastify) 2C 1GB ~2800 ~15ms
Node (Express) 2C 1GB ~1500 ~25ms
Python (FastAPI) 4C 1GB ~1200 ~30ms
Python (Django) 4C 1.5GB ~800 ~45ms
Java (Spring) 2C 2GB ~3500 ~12ms
Rust (Actix) 1C 256MB ~8000 ~4ms
PHP (Laravel) 4C 1GB ~600 ~60ms
注意:這是 CRUD 混合場景的粗估值,實際依業務邏輯而異。
雲端主機月費對照
AWS EC2(us-east-1,On-Demand)
| Instance | vCPU | RAM | 月費 | 適合 |
|---|---|---|---|---|
| t3.small | 2 | 2GB | ~$15 | Go / Node(低流量) |
| t3.medium | 2 | 4GB | ~$30 | Go / Node / Java |
| t3.large | 2 | 8GB | ~$60 | Java(需要 heap) |
| t3.xlarge | 4 | 16GB | ~$120 | Python / PHP(需要多 CPU) |
| m6i.large | 2 | 8GB | ~$70 | Production 穩定負載 |
| m6i.xlarge | 4 | 16GB | ~$140 | Production 高負載 |
GCP Compute Engine(us-central1)
| Machine | vCPU | RAM | 月費 | 備註 |
|---|---|---|---|---|
| e2-small | 2 | 2GB | ~$12 | 比 AWS 便宜 ~20% |
| e2-medium | 2 | 4GB | ~$24 | |
| e2-standard-2 | 2 | 8GB | ~$49 | |
| e2-standard-4 | 4 | 16GB | ~$97 |
GCP 通常比 AWS 便宜 15-25%,但 AWS 的生態系和文件更成熟。
每個 Request 的成本
假設一個服務每月處理 1000 萬次請求(~3.8 RPS 平均,尖峰 ~20 RPS):
Go (Gin) on t3.small ($15/月):
10,000,000 requests / $15 = 每 request $0.0000015
→ 約 150 萬次 request 花 1 塊美金
Django on t3.xlarge ($120/月):
10,000,000 requests / $120 = 每 request $0.000012
→ 約 8.3 萬次 request 花 1 塊美金
差異:8 倍
但等等——10M requests/月 只是 3.8 RPS,Go 用 t3.small 綽綽有餘,Django 用 t3.medium 可能就夠了(120)。不要用尖峰規格算平均成本。
Serverless 什麼時候比較划算
用 第 27 篇 的 cold start 數據來算:
AWS Lambda 定價:
- 每 100 萬次調用:$0.20
- 每 GB-秒:$0.0000166667
場景:API 每天有 8 小時幾乎沒流量(凌晨到早上)
Container(24/7 跑 t3.small):
月費 = $15(不管有沒有流量都在燒)
Lambda(用多少付多少):
假設每月 500 萬次請求,每次 100ms,128MB:
調用費 = 5M × $0.20/1M = $1.00
計算費 = 5M × 0.1s × 0.125GB × $0.0000166667 = $1.04
月費 ≈ $2.04
省了 86%!
但如果流量穩定(24/7 都有負載):
每月 1 億次請求,每次 200ms,256MB:
調用費 = 100M × $0.20/1M = $20
計算費 = 100M × 0.2s × 0.25GB × $0.0000166667 = $83.33
月費 ≈ $103
vs Container(t3.medium × 2 台):$60
Lambda 反而貴了 72%。
結論:流量低且不穩定 → Serverless 省錢。流量穩定且高 → Container 省錢。
TCO:別忘了人力成本
台灣 2026 年市場行情(月薪,中位數):
Go 工程師: 80-120K NTD
Node.js 工程師: 60-90K NTD
Python 工程師: 55-85K NTD
Java 工程師: 70-100K NTD
DevOps 工程師: 80-120K NTD
一個 3 人團隊的月人力成本:
Go team: 90K × 3 = 270K NTD(~$8,500 USD)
Python team: 70K × 3 = 210K NTD(~$6,600 USD)
差異:$1,900 USD/月
Go 每月機器成本省 1,900。除非你的規模大到機器成本佔比顯著(月帳單 $10K+),否則選語言不應該以機器成本為主要考量。
真正的 TCO 公式
TCO = 雲端費用 + 人力成本 + 營運成本
雲端費用:
Compute + Storage + Network + Managed Services
人力成本:
工程師薪水 + 招聘成本 + 培訓成本 + 離職風險
營運成本:
On-call 加班 + 事故處理 + 技術債利息
一個實際案例:5 個微服務的月成本
服務 框架 Instance 月費
──────────────────────────────────────────────────
API Gateway Nginx t3.small ×2 $30
Order Service Go/Gin t3.small ×2 $30
Payment Service Go/Gin t3.small ×2 $30
User Service Node/Fastify t3.small ×2 $30
Notification Svc Node/Express t3.micro ×2 $15
基礎設施:
RDS PostgreSQL (db.t3.medium) $60
ElastiCache Redis (cache.t3.micro) $12
ALB (Application Load Balancer) $16 + 流量費
CloudWatch Logs $10
ECR (Container Registry) $5
月 Total ≈ $238 + 流量費
vs 全部塞在一台 t3.xlarge 跑 monolith:$120
微服務的基礎設施成本大約是單體的 2 倍。
但當你需要獨立擴展 Order Service(雙 11 流量 10 倍)時,
微服務只要加 Order Service 的 instance,
單體要把整台機器 scale up。
下一篇
成本優化 — 成本算清楚了,怎麼省?Redis cache 省了多少 AP instance?Multi-worker 零成本提升 93%?每個優化的 ROI 到底多少?也是這個系列的最後一篇。
本系列文章
完整 68 篇目錄見 系列首頁
← 上一篇:開發者體驗(二):Debug 跨服務問題的 SOP → 下一篇:成本優化:免費午餐的 ROI 計算