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.