Cloud cost optimisation checklist

Work in this order: make the spend visible, remove what you do not use, resize what you keep, and only then commit to discounts. Doing it in another order is how teams lock in waste. AWS and Azure both supply free or low-cost tools for most of the steps below, and the rest is habit.

Empty modern office desks in daylight

Honest Consultancy. Updated

Where should we start?

With visibility, because you cannot cut what you cannot attribute. Before changing anything, answer one question: what does each product, team or environment cost per month?

The FinOps Foundation describes this work as a cycle of Inform, Optimize and Operate. 5 Treating it as a cycle matters more than any single saving, because new waste arrives with every release.

  • Agree a short tag list, such as application, environment and owner.
  • On AWS, activate your tags as cost allocation tags. They must be activated before they appear in Cost Explorer or on a cost allocation report, and they can take up to 24 hours to appear. 1
  • Report untagged spend as its own line. AWS includes both tagged and untagged resources in the report, so you can see the gap. 1
  • Set budgets with alerts on both clouds. AWS Budgets and Azure Cost Management both support this. 2 3
  • Report in the currency your finance team plans in. Our euro pricing guide explains why this matters for Irish companies. 4

How do we find what is not being used?

Start with the provider's own recommendations. AWS Compute Optimizer analyses configuration and usage metrics to recommend rightsizing and identify idle resources, and you must opt in to it. 6 Azure Advisor analyses configuration and usage and makes cost recommendations, among others. 7

Switch off before you delete where you can. Stopping something for two weeks is a cheap way to find out whether anyone notices, though stopped resources can still carry storage charges.

  • Unattached disks and old snapshots left behind by deleted servers.
  • Idle load balancers, databases and NAT gateways. Compute Optimizer includes NAT Gateway and several database services in its recommendations. 6
  • Unused public IP addresses. AWS charges $0.005 per hour for each public IPv4 address, whether or not it is attached to a service. 8
  • Test environments that outlived their project.
  • Resources with no owner tag. Ask, set a date, and then switch them off.

How do we rightsize safely?

Use real usage data, resize in small steps, and keep a way back. Compute Optimizer looks at the last 14 days of metrics by default, and a paid option extends that to 93 days. 6 If your business has a monthly or seasonal peak, 14 days can miss it.

  • Check memory as well as CPU. A server can look idle on CPU and be full on memory.
  • Change non-production first, then production during a quiet period.
  • Measure performance after each change, and set a rollback point.
  • Look at newer processors. AWS lists moving to its Graviton processors as one way to reduce costs when replatforming. 9

Should non-production run overnight?

Usually not, unless someone needs it. Development and test environments rarely need to run on nights and weekends, and on-demand compute is charged for the time it runs. 10

A simple schedule that stops these environments outside working hours is often among the quickest wins available. Check what must stay up first, such as overnight test runs or shared services. Azure reservations make this less clear cut, because they are charged whether or not the matching resource runs, so resolve the schedule first and commit afterwards. 11

Where does storage cost hide?

In old data on expensive tiers, and in older disk types. Nothing moves data to a cheaper tier for you unless you set a rule.

  • Set lifecycle rules on object storage. On AWS, S3 Lifecycle can move objects to cheaper storage classes or expire them. 12
  • Set retention on backups and snapshots, and remove those past the period you actually need.
  • Review disk types. AWS lists gp3 volumes at $0.08 per GB-month against $0.10 for gp2, with a baseline of 3,000 IOPS regardless of size. Check the current price for your region before you act. 13
  • Set log retention. Logs kept forever at full price are a common quiet cost, and in many cases a data protection problem too.

What about data transfer?

Look for it specifically, because it sits apart from the servers that cause it. On AWS, data coming in from the internet is free, and data going out is charged per GB after a free allowance of 100 GB a month. 14 Traffic between Availability Zones and between regions is charged too. 15

Do not trade away resilience to save transfer costs without deciding it deliberately. Spreading across zones is often the reason the charge exists, and it may be worth paying.

  • Find your largest transfer line and work out which application causes it.
  • Check for chatty services spread across zones, and for replicas in a second region that nobody needs.
  • Check NAT gateway traffic, which AWS Compute Optimizer now assesses. 6
  • Keep services that talk a lot in the same zone where your availability design allows it.

Are we paying twice for licences?

Check, if you run Microsoft workloads. Azure Hybrid Benefit applies eligible licences you already own to reduce the cost on Azure, and Azure reservations do not include Windows or SQL Server software costs, so the two work together. 16 11

AWS Compute Optimizer also lists commercial software licences among its supported resources, so review its output there as well. 6 Moving a database from a commercial engine to an open source one can be a larger saving still, though that is a project, not a setting.

When should we buy Savings Plans or reservations?

Last, and only for the steady part of your usage. AWS Savings Plans apply discounts automatically to eligible usage, and Azure Reservations commit you for one or three years in return for a billing discount. 17 11

Providers quote discounts of up to 72% for these products. 17 11 Those are maximums for specific configurations and terms, so do not put them in a forecast.

  • Rightsize first, so you do not commit to capacity you are about to remove.
  • Base the commitment on your lowest steady usage over several months.
  • Start below that line, and add more as you gain confidence.
  • Assign someone to review coverage and unused commitment each month.
  • Remember that AWS commitments are made in US dollars, so their euro cost can move. 4

How do we stop the costs creeping back?

Give it an owner and a calendar slot. Cost work done once decays, so a short monthly review keeps it in place.

AWS publishes a cost optimisation pillar in its Well-Architected Framework if you want a fuller checklist. 18

  • Review the top ten cost lines and anything that moved sharply.
  • Require an owner tag on new resources, and enforce it in your infrastructure code.
  • Add a cost estimate to the design of any new service.
  • Measure a unit cost that means something to your business, such as cost per customer.

Frequently asked questions

What is the quickest cloud saving?

Usually removing idle resources and stopping non-production outside working hours. Neither needs a long commitment, and both can be reversed. Your own bill decides the order.

How much can we save on our cloud bill?

We cannot give a figure without seeing your account. Providers quote maximum discounts for commitments, 17 but your saving depends on how much waste you have and how steady your usage is.

Do these tools cost anything?

Many are included or low cost, but check before you enable them. AWS Compute Optimizer, for example, has a paid option for its longer analysis period. 6

How often should we review cloud costs?

Monthly works for most smaller teams, with budget alerts catching sudden changes between reviews. 2 3

Sources

  1. AWS: Organising and tracking costs using cost allocation tags
  2. AWS: Managing your costs with AWS Budgets
  3. Microsoft: Create and manage budgets
  4. AWS: Supported currencies
  5. FinOps Foundation: FinOps Framework
  6. AWS: What is AWS Compute Optimizer?
  7. Microsoft: Introduction to Azure Advisor
  8. AWS: Public IPv4 address charge
  9. AWS Prescriptive Guidance: About the migration strategies
  10. AWS: EC2 On-Demand pricing
  11. Microsoft: What are Azure Reservations?
  12. AWS: Managing the lifecycle of objects in S3
  13. AWS: Amazon EBS General Purpose volumes
  14. AWS: Price reduction for data transfer out to the internet (2021)
  15. AWS: EC2 data transfer pricing
  16. Microsoft: Azure Hybrid Benefit
  17. AWS: Savings Plans
  18. AWS Well-Architected: Cost Optimisation Pillar

Tell us what needs doing.

Cloud, DevOps, AI or specialist consultants. We reply within one working day.

Reply within 1 working dayStart a project