1.The cost surface: everything that bills money
Every design decision has a line item attached to it, and most of those line items are not the one people think about first. Compute (CPU/RAM-hours) and storage (bytes held over time) are the obvious ones — but bandwidth (bytes leaving a cloud, especially across regions or to the public internet), database IOPS (each read/write operation against provisioned-throughput storage, billed separately from the storage itself), cache memory (an in-memory cache like Redis is billed by RAM provisioned, not by data touched), cross-region traffic (replicating data or calling services across regions multiplies both latency and a per-GB transfer charge) and observability (logs, metrics and traces ingested, indexed and retained, often billed per GB per day) all bill independently, and each one can dominate a bill in a design that looks cheap on compute alone. A system can be "efficient" in the metric an engineer optimized for and still be expensive, because a bill is the sum of every resource, not just the one that was watched.
Key features
- Compute and storage are the intuitive costs; bandwidth, DB IOPS, cache memory, cross-region traffic and observability are the ones teams routinely forget to model
- Bandwidth is typically metered on egress (data leaving the cloud or crossing a region boundary), not ingress — pulling data in is usually free, pushing it out is not
- Provisioned-throughput databases (e.g. DynamoDB, some managed Postgres/MySQL tiers) bill IOPS separately from the storage bytes — a small table with a hot read pattern can cost more than a huge table that is rarely touched
- An in-memory cache like Redis or Memcached is billed by RAM provisioned for the node, continuously, regardless of hit rate — an oversized or underused cache burns money whether or not it is helping
- Cross-region replication or cross-region service calls stack a per-GB transfer fee on top of the compute/storage cost that would exist in a single region
- Observability (logs, metrics, traces) is billed per GB ingested and per GB-day retained in most vendors — verbose debug logging left on in production is a real, recurring, and frequently invisible cost
The seven cost surfaces and the failure mode each one causes when ignored
- Compute — CPU/RAM-hours
- Storage — bytes held
- Bandwidth — egress bytes
- DB IOPS — per operation
- Cache memory — RAM provisioned
- Cross-region — per-GB transfer
Command
// A one-page cost-surface checklist to run against any design
// before calling it "done":
Compute: right-sized instances? autoscaled down off-peak?
Storage: tiered by access frequency (hot/warm/cold)?
Bandwidth: served via CDN/cache where possible, not origin?
Database IOPS: access pattern matches provisioned throughput?
Cache memory: sized to steady-state, not permanent peak?
Cross-region traffic: is more than one region actually required?
Observability: log level and retention matched to real need?A cloud bill is the sum of seven largely independent surfaces — compute, storage, bandwidth, database IOPS, cache memory, cross-region traffic and observability — and the ones people forget (IOPS, cache memory, observability) are frequently larger than the one they remember (compute). Review all seven before calling a cost estimate complete.