GCP immutable 主要省 GCS 請求與 latency 而非 egress
「Cache-Control: immutable 可以大幅省 CDN egress」這是一個雲廠商計費模型相關的迷思。在 GCP Cloud CDN + GCS 組合下,immutable 主要省的不是 edge → user 的 egress,而是另外四件事。
計費關鍵
Cloud CDN 不論 cache HIT 或 MISS,對 user 那邊的 egress 都要收費($0.08/GB)。HIT 跟 MISS 對「user 拿到的 byte 數」是一樣的。
而 GCS → Cloud CDN 的 cache fill 是 免費 的(同 GCP 內部骨幹)。所以「省一次回源」在 GCP 並不省 fill 流量錢。
Immutable 在 GCP 真正省的
- GCS 請求數:每 chunk 每 PoP 才打一次 GET($0.0004 per 1k);vs 每次 PV 都打 → 10 萬 PV/天規模下省 ~$12/月
- GCS egress quota:GCS bucket 對外 egress 有 quota,immutable 讓回源量趨近 0,避免動到 quota
- P99 latency:HIT edge 直出 ~10ms;MISS 要往返 GCS region ~50–200ms
- 跨區成本:bucket 與 user 不同 region 時 GCS egress 另計;immutable 讓這部分趨近 0
與 AWS 對比
這個結論只適用於 GCP。AWS CloudFront + S3 的計費模型不同:S3 → CloudFront 有 egress 費,所以「immutable 省 egress」在 AWS 是真的。
→ 跨雲讀網路上的 cache 最佳實踐文章時,要確認作者用的是哪家雲。
數字示例(10 萬 PV/天)
| 項目 | no-store | immutable | 差異 |
|---|---|---|---|
| GCS Class B GET | $12.00 | $0.02 | 省 $12 |
| CDN lookup | $22.50 | $22.50 | 0 |
| CDN cache fill | $0 | $0 | 0 |
| CDN edge egress | $688 | $688 | 0 |
| 小計 | $723 | $711 | 省 $12 |
→ 帳單上只省 1.7%,但 latency 與架構健康度差很多。