AWS FinOps: How to Find €50K-200K in Hidden Cost Savings

AWS FinOps: How to Find €50K-200K in Hidden Cost Savings
Disclaimer: The examples and patterns described in this article are generalized from industry observations and do not reveal internal technical stacks, specific implementation details, or proprietary information from any past employers or clients.
Your AWS bill is growing faster than your revenue. Sound familiar?
After 25+ years in enterprise IT and countless AWS cost optimization projects, I can tell you: most companies overspend on AWS by 20-40%.
The good news? This waste is predictable and fixable. Here's the systematic approach we use at MetaFive One to find €50K-200K in annual savings for mid-market enterprises.
The 5 Biggest Sources of AWS Waste
1. Zombie Resources (30-40% of waste)
What They Are:
Resources that are running but no longer used:
- EC2 instances from old POCs
- RDS databases for deprecated applications
- Load balancers with no targets
- Elastic IPs not attached to instances
- EBS volumes not attached to instances
How to Find Them:
# List EC2 instances with no traffic (CloudWatch metrics)
aws ec2 describe-instances --query "Reservations[*].Instances[?State.Name=='running']"
# List EBS volumes not attached to instances
aws ec2 describe-volumes --query "Volumes[?State=='available']"
# List Elastic IPs not associated with instances
aws ec2 describe-addresses --query "Addresses[?AssociationId==null]"
# List EC2 instances with no traffic (CloudWatch metrics)
aws ec2 describe-instances --query "Reservations[*].Instances[?State.Name=='running']"
# List EBS volumes not attached to instances
aws ec2 describe-volumes --query "Volumes[?State=='available']"
# List Elastic IPs not associated with instances
aws ec2 describe-addresses --query "Addresses[?AssociationId==null]"
Typical Savings: €1K-5K/month
Action: Tag resources with "owner" and "expiry_date". Automate deletion of resources past expiry.
2. Oversized Instances (20-30% of waste)
What They Are:
Instances running at 10-20% CPU/memory utilization because they were "sized for peak load" but never right-sized.
How to Find Them:
- Use AWS Compute Optimizer (free) to get right-sizing recommendations
- Check CloudWatch metrics for average CPU/memory over 30 days
- Look for instances with <20% utilization
Typical Savings: €2K-10K/month
Action: Downsize instances during maintenance windows. Use Auto Scaling to handle peak load instead of over-provisioning.
3. Unoptimized Storage (15-25% of waste)
What It Is:
- EBS volumes using
gp3whengp2would suffice - S3 data in Standard tier when Intelligent-Tiering or Glacier would work
- Snapshots retained forever with no lifecycle policy
How to Find It:
# List EBS volumes by type and size
aws ec2 describe-volumes --query "Volumes[*].[VolumeId,VolumeType,Size,State]"
# List S3 buckets without lifecycle policies
aws s3api list-buckets --query "Buckets[*].Name"
# List EBS volumes by type and size
aws ec2 describe-volumes --query "Volumes[*].[VolumeId,VolumeType,Size,State]"
# List S3 buckets without lifecycle policies
aws s3api list-buckets --query "Buckets[*].Name"
Typical Savings: €500-3K/month
Action:
- Migrate
gp2togp3(same performance, 20% cheaper) - Enable S3 Intelligent-Tiering for infrequently accessed data
- Set snapshot retention policies (e.g., keep last 7 days, then monthly for 1 year)
4. Poor Tagging & Cost Allocation (10-20% of waste)
What It Is:
You can't optimize what you can't measure. If your resources aren't tagged with team, project, environment, and owner, you have no visibility into who's spending what.
How to Find It:
# List untagged EC2 instances
aws ec2 describe-instances --query "Reservations[*].Instances[?Tags==null]"
# List untagged RDS instances
aws rds describe-db-instances --query "DBInstances[?TagList==null]"
# List untagged EC2 instances
aws ec2 describe-instances --query "Reservations[*].Instances[?Tags==null]"
# List untagged RDS instances
aws rds describe-db-instances --query "DBInstances[?TagList==null]"
Typical Savings: Indirect (enables all other optimizations)
Action:
- Enforce tagging policies with AWS Config or Service Control Policies (SCPs)
- Use AWS Cost Allocation Tags to track spending by team/project
- Automate tagging with Lambda functions (tag new resources on creation)
5. No Reserved Instances or Savings Plans (10-20% of waste)
What It Is:
You're paying On-Demand prices for workloads that run 24/7/365. Reserved Instances (RIs) and Savings Plans offer 30-70% discounts for 1-3 year commitments.
How to Find Opportunities:
- Use AWS Cost Explorer → "Reserved Instance Recommendations"
- Look for instances running >80% of the time
- Calculate break-even point (usually 9-12 months)
Typical Savings: €5K-50K/year
Action:
- Start with Compute Savings Plans (most flexible)
- Avoid EC2 RIs unless you're 100% sure the instance type won't change
- Use Convertible RIs if you need flexibility
The MetaFive One FinOps Framework
Step 1: Visibility (Week 1)
- Enable AWS Cost Explorer and Cost Allocation Tags
- Set up AWS Budgets with alerts (e.g., alert when spend exceeds €10K/month)
- Export cost data to S3 for analysis
Step 2: Audit (Week 2-3)
- Run automated scripts to find zombie resources, oversized instances, unoptimized storage
- Generate cost reports by team, project, environment
- Identify top 10 cost drivers
Step 3: Optimize (Week 4-6)
- Delete zombie resources (after confirming with owners)
- Right-size instances (start with non-production environments)
- Migrate storage to cost-effective tiers
- Purchase Reserved Instances or Savings Plans
Step 4: Automate (Week 7-8)
- Set up Lambda functions to auto-stop dev/test instances after hours
- Implement tagging enforcement policies
- Schedule regular cost reviews (monthly)
Step 5: Monitor (Ongoing)
- Track savings vs. baseline
- Adjust as workloads change
- Repeat audit quarterly
Real-World Example (Anonymized)
Company: Mid-market SaaS company, 200 employees, €30K/month AWS spend
Audit Findings:
- 40 EC2 instances from old POCs (€4K/month)
- 20 RDS instances oversized by 50% (€3K/month)
- 500 EBS snapshots with no lifecycle policy (€1K/month)
- No Reserved Instances despite 24/7 workloads (€8K/month potential savings)
Total Savings: €16K/month = €192K/year (64% reduction)
Time to Implement: 6 weeks
The Guaranteed Audit Offer
At MetaFive One, we offer a free 30-minute AWS FinOps audit:
- We'll run our AI-powered cost analyzer on your AWS environment
- If we don't find at least €1,000 in monthly savings, the audit is free
- You'll walk away with a prioritized list of quick wins
No sales pitch. No obligation.
Book your free audit: Contact Us [blocked]
The Bottom Line
AWS cost optimization is not a one-time project—it's an ongoing discipline. But the initial audit and cleanup can deliver 20-40% savings in 6-8 weeks.
If your AWS bill is over €10K/month and you haven't done a cost audit in the last 12 months, you're almost certainly overspending.
Let's fix that.
Book Your Free AWS FinOps Audit [blocked]
Share this article
Comments (0)
You must be signed in to post a comment.
Sign In to CommentNo comments yet. Be the first to share your thoughts!