Check Maximum CPU Utilization over the last month (excluding startup spikes). If it’s below 50%, downsize while retaining the same RAM. For example: c6.2xlarge → m6.xlarge → r6.large
(same RAM/CPU type; r6.large has ¼ the vCPUs of c6.2xlarge).
RAM isn’t monitored by default in CloudWatch. Install the CloudWatch Agent to capture RAM utilization. If average RAM usage is below 50%, downsize from higher‑RAM to lower‑RAM types i.e r6.large → m6.large
or m6.large → c6.large
.
Alternatively, spin up a test workload on a smaller‑RAM instance: if it runs fine, you’ve unlocked ~10% savings.
If you run T3 instances in “unlimited” mode, it costs ~$0.05/CPU‑hour extra for any usage above the allowed baseline. On t
instances above t3.medium
at >40% utilization, switch to the equivalent m
series instance.
Order your instances by launch time (oldest first). Identify the owner and purpose, then message them:
“Hey, I understand you’re using EC2 instance (Name/ID X, IP Y, Key Pair Z). Are you still using it?” If abandoned, terminate it. If they might reuse it, propose stopping it now and restarting later. Nothing’s cheaper than a terminated instance.
After doing the above, commit to an EC2 Savings Plan for your baseline usage. It delivers the highest ROI for minimal effort—often saving thousands per month with a single click.
It's really important that you complete the above steps before you purchase savings plans. Once you commit to spending that money with AWS you're going to have to pay the full amount, even if you realise you didn't need that much compute to begin with.