The pricing models, cost-accounting bases, and waste patterns behind an AWS-style bill.
Committed use discountCUD
A discount a provider gives in exchange for committing to a minimum spend or usage level for a fixed term.
A committed use discount trades flexibility for a lower rate: you commit to a baseline of usage (or spend) for one to three years, and the provider prices that baseline well below its on-demand rate. Reserved instances and savings plans are AWS's two flavors of this idea; most major clouds offer some equivalent.
The risk isn't the discount — it's sizing it wrong. A commitment bought against last year's footprint can sit partially unused as workloads shift, which is why coverage and utilization need to be checked on a cadence, not just at purchase time.
Reserved instanceRI
A commitment to a specific instance type in a specific region or zone, discounted versus on-demand pricing.
A reserved instance is the older, more rigid form of committed use discount: you commit to a specific instance family and size, and in exchange pay a lower hourly (or fully upfront) rate than on-demand for the term of the reservation. Because it's tied to a specific shape, it earns a deeper discount than a savings plan but doesn't flex if your instance mix changes.
RIs are worth revisiting whenever an architecture shifts — a reservation for an instance type you've since migrated away from stops paying for itself and just becomes stranded commitment.
Savings planSP
A commitment to a dollar-per-hour spend level, applied automatically across compute regardless of instance family.
Where a reserved instance locks in a specific instance shape, a savings plan locks in a spend rate — you commit to, say, $10/hour of compute usage for one or three years, and the discount applies automatically to whatever instance types and sizes you actually run, up to that commitment. That flexibility usually comes at a slightly smaller discount than an equivalently-sized reserved instance.
Savings plans are the better fit for teams whose instance mix changes over time; reserved instances suit a genuinely stable, predictable footprint.
On-demand vs. spot instances
On-demand pricing charges the full published rate with no commitment; spot pricing sells unused capacity at a steep discount but can be reclaimed with little notice.
On-demand is the default, most-expensive-per-hour way to pay for compute: no commitment, no discount, billed for exactly what you use. Spot capacity is the provider's unused inventory, sold at a discount that can reach 70–90% off on-demand — the tradeoff is that the provider can reclaim a spot instance with as little as a couple minutes' warning when it needs the capacity back.
Spot fits stateless, interruption-tolerant workloads (batch jobs, CI runners, fault-tolerant worker fleets) extremely well and is a poor fit for anything that can't gracefully checkpoint or restart.
Data egress
The fee a cloud provider charges for data leaving its network — including, on most providers, transfer between availability zones.
Data egress is billed per gigabyte for traffic leaving the provider's network toward the public internet, another cloud, or (on most providers) even a different availability zone within the same region. It's one of the least visible line items on a bill because it scales with application behavior — a chatty microservice architecture or an unoptimized data pipeline can rack up meaningful egress with no single obvious cause.
Cross-AZ transfer specifically catches teams off guard: traffic that never leaves the provider's network still crosses a per-GB charge the moment it crosses an availability-zone boundary, which is easy to miss when architecting for high availability across zones.
Amortized, blended, and unblended cost
Three different bases for reporting the same underlying spend — unblended is the raw per-resource rate, blended averages a rate across an account, and amortized spreads upfront commitment costs evenly across the term they cover.
Unblended cost is the simplest: the actual rate charged for each individual resource, with no averaging. Blended cost averages a rate across all usage of a resource type within a consolidated billing family — useful for a single effective per-unit rate across accounts, but it can mask which specific account or team is actually driving spend.
Amortized cost solves a different problem: a one-time or upfront commitment payment (buying a reserved instance for cash upfront, say) gets spread evenly across every day of the term it covers, so a single normalized daily number reflects the discount's ongoing value instead of showing one enormous spike on the purchase date and zero afterward. Most cost-monitoring tools default to amortized because it's the view that actually matches how the discount pays off over time.
Rightsizing
Matching a resource's provisioned size to its actual, observed utilization instead of the peak it was originally sized for.
Rightsizing means comparing what an instance, volume, or database is provisioned for against what it actually uses — CPU, memory, IOPS, throughput — over a representative window, then resizing down (or, occasionally, up) to match. Most fleets carry meaningful oversizing simply because instances get sized once, for a traffic peak or a worst-case estimate, and are rarely revisited once the peak passes or the workload matures.
It's a recurring practice, not a one-time project: utilization drifts as code, traffic, and dependencies change, so a resource that was correctly sized six months ago can easily be oversized today.
Idle and orphaned resources
Resources still running (and billing) despite doing no meaningful work — idle resources are underused, orphaned resources have no owner or purpose left at all.
An idle resource is running well below any reasonable utilization threshold — a NAT gateway or load balancer left up after a migration, a staging environment nobody tore down. An orphaned resource has gone a step further: the thing it existed to support (an instance, a deployment, a project) is already gone, leaving a volume, snapshot, or elastic IP with no remaining reason to exist, still billing every month.
Both are the single most reliably reclaimable category of cloud waste, because — unlike rightsizing — there's no performance tradeoff to weigh. The only reason they persist is that nobody's looking; a recurring sweep against a normalized cost view is usually all it takes to find them.
Cost allocation tags
Key-value labels applied to cloud resources so spend can be grouped by team, project, environment, or customer instead of showing up as one undifferentiated total.
Without tags, a bill is just a flat total per service — there's no way to answer "how much did the checkout team's infrastructure cost last month" without manually cross-referencing resource names. Tags applied consistently at creation time (team, project, environment, and — for usage-based products — customer) let every downstream report slice spend along the lines the business actually cares about.
The practical failure mode is inconsistency: tags applied by convention rather than enforcement drift within a quarter, as new resources get created without them. Enforcing required tags at provisioning time (or a tag-compliance sweep) is what keeps allocation reporting trustworthy.
Showback vs. chargeback
Showback reports each team's cloud spend for visibility only; chargeback actually bills that spend back to the team's budget.
Showback is the lighter-weight, more common practice: each team sees a report of what its tagged resources cost, with no accounting entry attached — the goal is awareness and behavior change, not a budget transfer. Chargeback goes further, moving the actual dollar amount into the consuming team's cost center, which creates real financial accountability but also real organizational friction if the underlying tagging and allocation isn't accurate.
Most teams that aren't already running a mature FinOps practice get most of the behavioral benefit from showback alone, and save chargeback for cost centers large enough that the accounting overhead is worth it.
Unit economics
Infrastructure cost expressed per customer, per request, or per transaction, instead of as a single company-wide total.
A total monthly cloud bill tells you almost nothing about whether the business is getting more efficient or less — it just grows with usage. Dividing that same spend by an active-customer count, a request count, or a completed transaction count turns it into a number you can actually compare over time: is it costing more or less to serve the same unit of value as the product and its usage evolve?
This is where cloud and AI cost measurement converge, since per-request cost (the AI/LLM equivalent) is exactly the same idea applied to a metered API call instead of an infrastructure footprint.
A per-unit cost view is also exportable as a report — save it once and it can generate a CSV or PDF export on demand, or be delivered to a channel on a recurring schedule for whoever owns the metric.
RI/SP coverage and utilization
Coverage measures what share of eligible usage is discounted by a commitment; utilization measures what share of the commitment you actually purchased is being used.
Coverage answers "of everything we could be running at a discount, how much actually is" — low coverage means you're overpaying on-demand for usage a commitment could have discounted. Utilization answers the opposite question, "of the commitment we bought, how much are we using" — low utilization means you paid for capacity that's sitting unused.
The two numbers should be reviewed together on a fixed cadence, because they point to opposite fixes: low coverage means buy more commitment, low utilization means you've already bought too much (or the wrong shape) for your current footprint.