GCP Cloud Storage Pricing & Cost Guide
Object storage is predictable when you split it into separate drivers: GB-month, operations, retrieval/lifecycle rules, replication, and egress. Treat each driver as its own line item so you can optimize the right lever.
0) What to measure
- Average stored GB by storage class (standard, nearline, coldline, archive).
- Ops: reads, writes, lists (often billed in different tiers such as Class A/B).
- Lifecycle: how often objects transition between classes and how often you rehydrate cold data.
- Replication: dual-region/multi-region patterns that duplicate storage.
- Egress: internet egress, cross-region, and origin egress to CDN (cache fill).
1) Storage: GB-month (by class)
Use average GB-month. If the dataset grows steadily, average GB-month is roughly the midpoint between start and end of month (instead of using end-of-month size).
Tool: Object storage cost.
- Include multipart uploads and temporary buckets if they persist longer than intended.
- Include non-prod copies if your pipeline replicates data across environments.
2) Operations: GET/PUT/LIST (the small objects multiplier)
Operations dominate when you have many small objects and high request rates (data pipelines, thumbnails, analytics queries over many objects). For large objects served via CDN, egress often dominates, but ops can still spike during backfills.
Tool: API request cost.
- Reads include metadata calls and retries, not just user downloads.
- Caching and reducing list frequency are common levers.
3) Retrieval + minimum storage duration rules (separate scenarios)
Cold/archive classes often add retrieval fees and minimum storage durations. Model a "retrieval month" scenario for audits/backfills instead of spreading it across the whole year.
- Lifecycle transitions can create retrieval if you frequently rehydrate cold data.
- Write down any early deletion penalties or minimum duration constraints.
4) Replication patterns (storage multiplier)
Replication usually multiplies storage. If you use dual-region or multi-region patterns, model the replicated copy explicitly instead of hiding it inside average GB.
Tool: Storage replication cost.
5) Outbound transfer (egress)
Egress is frequently the surprise line item. Split internet egress vs cross-region and keep CDN origin egress separate from edge bandwidth (cache fill is the origin driver).
Tools: Egress cost, Response transfer.
Worked estimate template (copy/paste)
- Storage = avg GB-month by class
- Ops = (GET + PUT + LIST) by tier (billing unit: 10k/100k/1M)
- Retrieval scenario = restore GB/month + restore ops (audit/backfill months)
- Replication = replicated copy GB-month
- Egress = internet + cross-region + CDN origin GB/month
Common pitfalls
- Not splitting by storage class (lifecycle rules change the bill shape).
- Underestimating ops for many small objects (pipelines, metadata, retries).
- Not modeling retrieval months separately (audits/backfills create spikes).
- Double-counting CDN edge bandwidth and origin egress.
Validation checklist
- Validate storage class mix and lifecycle transitions.
- Validate request billing unit and which ops tiers apply to your workload.
- Validate origin egress separately from CDN edge bandwidth.
- Validate retrieval/backfill months as separate scenarios.