Cloud bills grow quietly. A new RDS instance here, a forgotten Elastic IP there, a development environment left running over a long weekend — individually small, collectively enormous. When a client brought us in to audit their AWS spend, we found $14,200 in monthly waste in an account paying $35,000/month. Here's the audit process we used.
Step 1: Enable AWS Cost Explorer and Set Up Cost Allocation Tags
If you don't have cost allocation tags, you can't see which team or project is responsible for which spend. Implement tags immediately: environment (prod/staging/dev), team, project. This alone will reveal surprises — development environments running at production scale is one of the most common findings.
Step 2: Right-Size Your EC2 Instances
AWS Compute Optimizer will analyse your actual usage and make right-sizing recommendations. In the client's account, 11 EC2 instances were running at under 10% CPU utilisation on average. Downsizing to the next instance class saved $2,100/month. For workloads with variable traffic, consider migrating from fixed instances to auto-scaling groups — you only pay for what you use.
Step 3: Eliminate Idle and Orphaned Resources
Elastic IPs not attached to running instances ($3.65/month each, but they add up), unused EBS volumes (snapshots from terminated instances), old AMI images, unused load balancers. Run a monthly audit with AWS Trusted Advisor or a tool like Infracost. In the client's account, 23 unattached EBS volumes were costing $890/month for storage no one was using.
Step 4: Reserved Instances and Savings Plans
If you have predictable baseline workloads (most production environments do), Reserved Instances or Compute Savings Plans typically save 30-60% versus on-demand pricing. The analysis is straightforward: look at your minimum monthly EC2 spend, commit that baseline to 1-year reserved pricing. You break even in 7-8 months; everything after is pure savings.
Step 5: S3 and Data Transfer Costs
Data transfer out is one of AWS's less-visible costs. Put CloudFront in front of S3 for any user-facing assets — CloudFront's transfer pricing is significantly lower than direct S3 transfer, and you get CDN performance benefits simultaneously. Also audit your S3 storage classes: infrequently accessed data moved to S3-IA or Glacier can reduce storage costs by 50-60%.