Cloud bills grow faster than almost any other IT cost category. Here is a structured approach that consistently finds 20-35% in waste.
Step 1: Get Visibility Before Optimisation
You cannot optimise what you cannot see. Enable AWS Cost Explorer, Azure Cost Management, or GCP Cost Tools and ensure cost allocation tags are applied to every resource. Tags should include: environment (prod/staging/dev), team owner, and project or product. Without tags, cost data is aggregated at the account level and you cannot determine which team or product is driving growth. Cost visibility is a prerequisite; schedule a tagging sprint before any other optimisation work.
Step 2: Identify and Kill Idle Resources
The easiest wins are idle resources: EC2 instances running at <5% CPU utilisation, unattached EBS volumes, load balancers with no targets, and snapshots older than 180 days with no restore plan. These are pure waste with no business value. AWS Trusted Advisor, Azure Advisor, and GCP Recommender all surface these automatically. Typical finding: 8-15% of cloud spend in idle or unattached resources at companies without active FinOps practices. These can be reclaimed in a single sprint.
Step 3: Right-Size Compute
Instances provisioned for peak load but running at 20-40% average utilisation are a common source of waste. CloudWatch/Azure Monitor performance data over 14-30 days tells you actual resource consumption patterns. Right-sizing recommendations from AWS Compute Optimizer or Azure Advisor identify specific instance changes. Typically saves 15-25% of EC2/VM spend. Schedule right-sizing during a maintenance window and test for 48 hours before committing.
Steps 4–6: Commitments, Storage, and Egress
Step 4: Buy Reserved Instances or Savings Plans for steady-state compute identified in steps 1-3. Step 5: Audit storage — S3 lifecycle policies to move infrequently accessed objects to Glacier, EBS volume type optimisation (gp2 to gp3 saves 20% with equal performance), and identify buckets with cross-region replication that is no longer needed. Step 6: Identify egress costs — traffic leaving your cloud to the internet or between regions. Redesigning data flows to keep traffic within a region or using CloudFront for caching often reduces egress by 30-50%.
- Cost allocation tags are a prerequisite — you cannot attribute or optimise costs without them
- Idle resources (underutilised EC2, unattached volumes, orphaned load balancers) typically represent 8-15% of cloud spend
- Right-sizing compute based on actual performance data typically saves 15-25% of EC2/VM costs
- Egress cost redesign (region-local traffic, CDN caching) often reduces egress fees by 30-50%