AWS Compute Optimizer vs. Manual Rightsizing: What It Catches and What It Misses

Compute Optimizer is free, ML-backed, and genuinely good at rightsizing EC2/RDS/Lambda/EBS/ECS. It's also not the whole picture of AWS cost waste. Here's exactly where its blind spots are.

AWS Compute Optimizer is a genuinely good product, and it's free. It watches 14-32 days of CPU, memory, network, and disk metrics for your EC2 instances, Auto Scaling groups, EBS volumes, Lambda functions, and ECS services on Fargate, and recommends a smaller (or larger — it flags under-provisioning too) size based on real utilization, not a generic rule of thumb. If you're not already looking at it, that's the first thing to fix before buying any third-party tool, including this one.

You can see your own recommendations right now:

aws compute-optimizer get-ec2-instance-recommendations \
  --query "instanceRecommendations[?finding=='OVER_PROVISIONED']"

Where it stops

Compute Optimizer answers one question: given a resource that exists, is it the right size? It has no opinion on resources that shouldn't exist at all, because that's a different question entirely. A handful of concrete things it will never flag, because they're structurally outside what it looks at:

  • An idle NAT Gateway. Not an EC2 instance, not in scope — but it bills exactly like one, hourly, regardless of size.
  • An unattached EBS volume. Compute Optimizer only rightsizes volumes that are attached to something; a volume with nothing attached isn't a sizing problem, it's a cleanup problem.
  • A load balancer with no healthy targets. Same story — it's not a compute resource Compute Optimizer watches at all.
  • An S3 bucket that never transitions to cheaper storage. Storage-class lifecycle is a completely separate lever from compute rightsizing.
  • A Savings Plan or Reserved Instance opportunity for commitment-eligible, steady-state spend. Compute Optimizer doesn't cover this at all — that recommendation comes from Cost Explorer's own Savings Plans API, a separate call most tools (including this one) have to make on top of Compute Optimizer, not instead of it.

The other gap: the enhanced-metrics upsell

Compute Optimizer's free tier uses standard CloudWatch metrics at 14-32 day lookback. There's an "enhanced infrastructure metrics" option that extends the lookback and sharpens the recommendation — and it costs money per instance-month. Whether that's worth it depends entirely on how much is riding on getting a specific instance's sizing exactly right; for most fleets, the free tier's recommendation is already good enough to act on.

So what should actually check for what

The practical split: let Compute Optimizer do rightsizing, because it's free, already running, and backed by actual ML over your real usage — rebuilding that badly from scratch is a waste of engineering time. Then separately check for the things that are structurally invisible to it: orphaned networking resources, storage that never got a lifecycle policy, load balancers nothing is using, and the Savings Plans recommendation Cost Explorer holds separately. None of that is rightsizing. All of it is still money.

This is the exact split CostLens is built around.

It ingests and ranks Compute Optimizer's own recommendations rather than reinventing them, and runs its own checks only for the waste Compute Optimizer structurally can't see.

Connect your AWS account