All cheat sheets
Cost Governancecheat sheet

Rightsizing Recommendations in Cost Explorer

Cost Explorer's built-in EC2 rightsizing tab is free, already populated, and almost nobody opens it — a fast first-pass scan for oversized and idle instances. Its one trap: without the CloudWatch Agent it sees only CPU, so memory-bound workloads look downsizable.

Last reviewed: July 14, 2026

TL;DR: Cost Explorer has a free Rightsizing Recommendations tab (Cost Management → Recommendations → Compute) that compares each EC2 instance's 14-day CloudWatch utilization against its size and returns one of three verdicts — right-sized, downsize, or terminate — each with a dollar figure and a target type. It's the closest tool (already enabled and populated), not the deepest (Compute Optimizer is that). Its one big trap: without the CloudWatch Agent it sees only CPU, so a memory-bound box at 8% CPU / 90% RAM looks downsizable and breaks when you act.

The numbers

  • Data source: last 14 days of CloudWatch — CPU always; memory/disk only with the CloudWatch Agent installed.
  • Three verdicts: right-sized (skip), downsize (one or more sizes — the bread and butter, from prod boxes idling at 10–20% CPU), terminate (so idle it shouldn't exist — forgotten test/dev boxes).
  • vs Compute Optimizer: CE is EC2-only, 14-day, conservative within-family; Compute Optimizer covers EC2/EBS/Lambda/Fargate/ASG, up to 93 days (Enhanced), and recommends modernization (m5→m6i/m7i, Graviton). Both free — CE for the quick scan, CO for the deep dive.
  • Field examples: a 38-instance SaaS recovered $1,440/mo ($17k/yr) from a 90-min audit (4 terminates + 5 downsizes); a lift-and-shift fleet oversized "for safety" downsized 19 of 22 flagged boxes for $3,800/mo ($46k/yr); 47 forgotten dev sandboxes flagged for termination, 31 killed for ~$2,400/mo.

Do this

  1. Open the tab and sort by estimated monthly savings descending — the top rows are where the dollars are.
  2. Verify memory data exists before trusting a downsize — no CloudWatch Agent means the recommendation is CPU-blind; install the Agent fleet-wide via SSM Run Command (or bake it into the AMI) and re-run after two weeks.
  3. Prefer "one size down" over "three sizes down", pilot on non-prod first, and downsize prod in a maintenance window (it needs a stop/start) with the original type written down for rollback.
  4. Validate terminate candidates by who logs in and what traffic they serve — the finding is a signal to investigate, not to delete.
  5. Make it a quarterly recurring ticket owned by a real person — one hour, top 5, one Saturday window; the reason it never gets done is that nobody owns it.

Gotchas

  • Memory-blindness is the headline risk — JVM apps, Redis/Memcached, and DBs with big buffer pools all look idle on CPU alone and break when downsized.
  • 14-day lookback misses cycles — a month-end close job idle from the 1st–14th can be flagged "terminate"; the tool also doesn't know weekend traffic is intentionally low.
  • Burstable t-family confuses it — "low CPU" may just be living within baseline credits; check CPUCreditBalance before downsizing.
  • Savings assume on-demand list price — RI/SP-covered resources save less than shown, and the number doesn't include additional savings from moving to SPs, Spot, or newer families.

Skip this if

  • You need broader or deeper coverage (RDS/EBS/Lambda/Fargate, modernization, longer lookback) — go to Compute Optimizer.
  • Your fleet is locked to instance-type-specific Reserved Instances that would strand a discount on downsize — prefer flexible Compute Savings Plans so you can rightsize freely first, then commit. And rightsize before committing — locking discounts onto oversized capacity is a real mistake; catch stragglers with the Trusted Advisor Low Utilization EC2 check.

Run this audit with your AI assistant

Paste this into Claude, ChatGPT, or any agent that can run the AWS CLI with read-only credentials. It audits your account for exactly the waste this sheet describes — and changes nothing.

You are auditing an AWS account's EC2 fleet using Cost Explorer
rightsizing recommendations. Use the AWS CLI with READ-ONLY credentials.
Do not create, modify, or delete anything — report findings and
recommended (unapplied) fixes only.

1. Pull recommendations: aws ce get-rightsizing-recommendation
   --service AmazonEC2 — capture per instance the verdict (RIGHTSIZE /
   TERMINATE / MODIFY), target type, and estimated monthly savings; sort
   by savings desc.
2. Memory-blindness check: for each downsize/terminate candidate, verify
   the CloudWatch Agent is reporting memory (mem_used_percent). Flag
   memory-sensitive workloads (JVM, Redis/Memcached, DBs) where only CPU
   is visible — the recommendation is untrustworthy there.
3. Context guards: flag t-family instances (check CPUCreditBalance —
   "low CPU" may be normal burst baseline), instances with monthly/
   quarterly cycles the 14-day window misses, and weekend-idle boxes.
4. Commitment interaction: note whether targets are covered by RIs
   (instance-type-locked) vs Savings Plans (flexible) so downsizing
   doesn't strand a discount.

Report a table: instance | verdict | target | est. $/mo | memory data? |
context risk | act/verify/defer. Change nothing.
Works with any assistant that can run shell commands.

Want the guided version?

The Rightsizing Recommendations in Cost Explorer walkthrough covers this topic interactively — it asks about your setup, branches to what’s relevant, and quizzes you on the tricky parts. Free and anonymous.

Start the walkthrough