Step 1
Agree the comparison basis
Choose the accounts, services, currency, and billing periods in scope. Record credits, discounts, and one-off charges so comparisons use the same basis.
Capture: Save a baseline with its scope and accounting assumptions.
Step 2
Connect spend to an owner
Group major costs by workload, team, and environment where possible. Keep unallocated spend visible rather than forcing it into an inaccurate category.
Capture: Assign an owner to each major cost group and track allocation gaps.
Step 3
Review resource use
Ask workload owners to explain usage patterns and required capacity. Investigate idle or oversized resources, but check dependencies and performance needs before changing them.
Capture: Create an opportunity list with expected benefit, risk, and validation steps.
Step 4
Compare pricing options
Review commitments and pricing choices against expected demand and planned architecture changes. Record the assumptions behind any proposed purchase.
Capture: Document the term, usage assumptions, and approval owner before a commitment.
Step 5
Validate and repeat
Compare subsequent spend on the same basis, accounting for changes in demand. Check service health alongside the bill and separate forecasts from realized savings.
Capture: Record the measured change, workload impact, and next review date.
Put it into practice
A smaller bill after a quieter month does not show whether an infrastructure change saved money. Compare the same cost categories and explain changes in traffic, discounts, and one-off charges alongside the result.
What to take away
Produce a cost baseline and a ranked action list. Each action should have an owner, an estimate, a risk assessment, and a date to check actual spend and service health.
Further reading: AWS Well-Architected Cost Optimization Pillar.
Need help working through the findings?
Bring your open questions and constraints. We can discuss the priorities and the implementation support your team needs.
