Our monthly AWS bill has jumped 40% without a proportional increase in traffic. We suspect orphaned EBS volumes and over-provisioned EC2 instances are the culprits. How can we implement a FinOps framework to gain better visibility and automate the termination of unused resources?
3 answers
FinOps is about culture as much as it is about tools. First, enforce a strict tagging policy; if a resource isn't tagged with an "Owner" and "Project," it should be automatically flagged. Use AWS Trusted Advisor or third-party tools like CloudHealth to identify underutilized instances. I recommend setting up "Lambda Janitor" scripts that automatically take snapshots and delete EBS volumes that have been unattached for more than 48 hours. Moving to Graviton-based instances can also provide an immediate 20% price-performance improvement. Finally, implement "Rightsizing" reviews during every sprint to ensure developers aren't picking 4xlarge instances for 1xlarge workloads.
Have you looked into Savings Plans or Reserved Instances yet, or are you still running everything on-demand while you figure out your baseline?
Automated scheduling is your friend. If your dev and staging environments don't need to be up 24/7, shut them down after 6 PM and on weekends to save instantly.
That’s a low-hanging fruit that many forget. We saved nearly 30% on our non-production bill just by implementing a simple start/stop schedule for our RDS instances.
We are mostly on-demand because our workloads fluctuate. We're hesitant to commit to 1-year terms until we see if we can optimize our current architecture through better auto-scaling.