Guide

You cannot change spend you cannot attribute. Tags label each resource with its owner, such as the team, service and environment. Tags turn the bill into a list of owners. Unit cost, such as cost per million requests, turns the bill into a product metric you can watch next to latency.

Concept

Showback shows each team what its resources cost, without moving any money. Chargeback bills those costs to the team's budget. Showback builds awareness. Chargeback changes behavior, because the cost hits the team's own numbers.

The big idea

FinOps runs in three repeating phases. You inform by allocating costs accurately and sharing dashboards. You optimize by rightsizing, scheduling and changing architecture. You operate by setting budgets and checks so the same mistakes stop recurring.

Think of a household budget where each person sees their own spending. It works because people adjust what they can see. The analogy breaks when tags are wrong or missing. Then the report is confident and incorrect.

Tags

Enforce the tags at creation time, using an org policy or an admission webhook. The usual set is team, service, env and cost-center. Add customer for dedicated tenancy. If a resource is created without the required tags, deny the request. An untagged production resource is the most common gap.

Unit cost

A total bill tells you the spend. A unit cost tells you whether the spend is buying useful work.

cost per million requests = monthly service cost / (requests / 1,000,000)
cost per active customer  = monthly allocated cloud cost / active customers

Say the monthly cost of a service rises, but its requests rise faster. The unit cost falls, and the spend is healthy growth. Say the cost rises while requests stay flat. The unit cost rises, and you have a regression, as real as a latency spike. Track it next to p99.

For GPU-heavy products, use the per-token view in cost per token.

Walking through a review

Here is a cost routine for one service, once a week.

  1. Open the cost explorer filtered to the service's tags.
  2. Sort by the last 30 days and list the top five lines.
  3. For each line, write one sentence on whether you would defend it in a design review.
  4. If you cannot defend two lines, file tickets. They are usually orphan cleanup or a log filter, not a rewrite.

Do the same after every major launch. Launches are when idle replicas and debug logging quietly become permanent.

Budgets and guardrails

  • Budgets and anomaly alerts per account and per service tag: an alert at 50% of the monthly budget mid-month, or a 30% jump week over week.
  • A weekly 15-minute cost review of the top five movers.
  • A cost estimate on every Terraform plan that adds instances or node pools. Even a rough hourly price times 730 helps.
  • Log and metric budgets so one new high-cardinality label cannot add thousands of dollars.
  • A labeled exception process for planned spend, such as a load test, a DR drill or a backfill.

Engineers respond to concrete diffs, such as "this PR adds about $1.2k a month," more than to general warnings.

Common mistakes

  • Untagged resources. Nobody owns them, so nobody removes them.
  • A dashboard nobody opens. A bot message to the owning team works better.
  • Optimizing locally. Cheap instances that hurt latency are not savings.
  • Forgetting post-launch cleanup. Temporary spend becomes a permanent line.

Check yourself

  1. Why is a unit metric more useful than a total? It shows whether cost grows with useful work. A total can rise just because traffic grew.
  2. What is the difference between showback and chargeback? Showback reports costs to teams. Chargeback moves those costs into the team's budget.

Key takeaways

  • Tags assign spend to owners. Enforce them when resources are created.
  • Unit cost, such as cost per million requests, makes spend a product signal.
  • FinOps is inform, optimize, operate, with engineers accountable every week.
  • Budgets, plan estimates and log limits catch spend before it lands on the bill.

Further learning

The platform engineering page covers how platform teams set efficient defaults, which is the cheapest place to enforce tags and cost policy.