EC2
Learn how Rightsize sizes your EC2 instances.
On AWS accounts, Rightsize sizes EC2 instances. It recommends a smaller or cheaper instance type, a larger one when an instance runs near capacity, or a stop for an idle instance.
What Rightsize Recommends
For each EC2 instance, Rightsize recommends one of these:
A smaller instance type in the same family.
An instance type in a different family.
A larger instance type.
A stop. The saving for a stop is an estimate, based on the instance's cost in the month that the results cover. You continue to pay for any commitment that covers the instance, and for its attached EBS volumes.
Rightsize does not suggest a burstable instance type (t2, t3, t3a, or t4g) as a target.
How Rightsize Sizes an Instance
Rightsize reads these CloudWatch metrics over the lookback window: CPU utilization, network in and out, EBS read and write bytes, and memory used.
Memory data comes from the CloudWatch agent. Without the agent, Rightsize can lower the vCPU count but never lowers memory. The panel then shows "Sized on CPU only. Install the CloudWatch agent to include memory."
The Sizing Target
Rightsize measures CPU and memory at the CPU percentile setting, which is P99 by default. A candidate instance type fits when that measured usage, scaled to the candidate's vCPU and memory, stays at or below the target:
base target = 100% − headroom
target = base target × max(volatility floor, 1 − volatility sensitivity × CoV)CoV is the coefficient of variation of the usage: its standard deviation divided by its mean. A spiky workload has a higher CoV. A higher CoV lowers the target, so the recommended size has more spare capacity.
For example, with the Balanced defaults (CPU headroom 20%, volatility sensitivity 0.5, volatility floor 0.5) and a CoV of 0.4:
You can change the CPU percentile, the headroom, and the volatility values in EC2 Settings, below.
Rightsize then recommends the cheapest instance type that fits. Every candidate must also pass the network and storage checks, and a candidate with fewer vCPUs must also pass the peak load check:
Peak load - for a candidate with fewer vCPUs, the highest CPU utilization in the window, scaled to the candidate, stays below 95%.
Network - the candidate's network capacity is at least twice the observed peak, in either direction.
Storage - the candidate's EBS baseline is at least twice the observed peak of read and write traffic combined. Its EBS bandwidth is also at least that of the current type.
Rightsize runs the network and storage checks only when the metric data has periods shorter than one hour. When a check excludes a smaller type that would otherwise have been recommended, Rightsize adds a Limited by reason to the finding.
Larger Instance Types
Rightsize recommends a larger instance type when daily average usage exceeds the base target on at least 25% of observed days. This must happen on at least two days. In such cases, the finding state is Under provisioned.
Idle Instances and Stops
Rightsize recommends a stop for an instance only when all of these are true. The three thresholds are settings that you can change in EC2 Settings, below.
Average CPU stays at or below Idle CPU ceiling, which is 10% by default.
CPU stays steady, with a CoV at or below Idle volatility ceiling, which is 0.35 by default.
Network egress stays at or below 1 MB per sample at the CPU percentile, and no single network sample in either direction exceeds 25 MB.
The highest CPU utilization, and memory use where measured, never passed Stop safety peak, which is 40% by default.
Commitments
When a commitment covers an instance, the recommendation depends on the commitment:
Reserved Instances that do not allow a size change - AWS allows a size change only on Linux/UNIX Reserved Instances with default tenancy. Reserved Instances for Windows, RHEL, SUSE, or SQL Server, and Reserved Instances with Dedicated tenancy, do not allow one. For these, Rightsize recommends no other instance type. It does the same when a commitment covers the instance and Rightsize cannot identify it. When this blocks a type that would otherwise have been recommended, Rightsize adds the reason Review Reserved Instance coverage before resizing.
Linux/UNIX Reserved Instances with default tenancy - Rightsize can recommend a smaller type in the same family. When it does, Rightsize adds the same reason. A regional Reserved Instance applies its discount across all sizes in the family automatically. A zonal Reserved Instance needs a modification to cover the new size.
EC2 Instance Savings Plans - The discount applies only within one instance family, so Rightsize keeps the recommendation in the current family. When this blocks a type in another family that would otherwise have been recommended, Rightsize adds the reason Commitment limits sizing to this family.
Compute Savings Plans - The discount applies across families. Rightsize can recommend a type in another family only when it has the committed rate for every candidate type in the other families. Otherwise, it keeps the recommendation in the current family.
Using the EC2 Tab
The summary metrics on the EC2 tab are Available Savings, Idle, Over provisioned, Under provisioned, Tagged, and Untagged. Available Savings on this tab excludes Auto Scaling groups. The cost chart includes them, and its tooltip reads "Includes Auto Scaling".
Click a row's AI Suggestion button to open the instance's panel:
Current State - the instance name, and its instance type.
Noros Recommendation - the recommended instance type, or Stop instance.
Monthly Savings - the estimated saving. For an instance covered by a commitment, the card also shows "Estimated at your commitment's blended rate."
Findings - the reasons behind the recommendation, as chips.
Below the panel sections, a chart shows the instance's utilization history. Choose CPU, Memory, Network egress, Network ingress, EBS read, or EBS write to change the metric.
EC2 Settings
In Settings, open Per-service overrides and select EC2 & Auto Scaling. The same settings apply to Auto Scaling groups. An empty field uses the account default.
CPU percentile
The usage percentile Rightsize sizes against. P99 excludes the highest 1 percent of readings.
P99
CPU headroom
Spare CPU kept above CPU usage at the CPU percentile. A higher value gives a larger, safer size.
20%
Memory headroom
Spare memory kept above memory usage at the CPU percentile. A higher value gives a larger, safer size.
20%
Volatility sensitivity
How much variable usage lowers the sizing target. 0 does not lower it. 1 lowers it the most.
0.5
Volatility floor
The lowest value the target can be lowered to. 0.5 keeps at least half of the base target.
0.5
Idle CPU ceiling
The average CPU at or below which an instance can count as idle.
10%
Idle volatility ceiling
How steady CPU must be for an instance to count as idle. A lower value requires steadier CPU.
0.35
Stop safety peak
Rightsize never recommends a stop for an instance whose CPU or memory ever passed this.
40%
Min savings percent
Rightsize does not recommend a smaller or cheaper type that saves less than this share of what the resource costs today. The resource shows as Optimized instead. Stops and larger types are not affected.
5%
EC2 Finding Reasons
Rightsize lists the reasons behind each finding. Check these before you act on a recommendation, to understand what it is based on.
CPU Overprovisioned / Underprovisioned
The finding is based on CPU usage.
Memory Overprovisioned / Underprovisioned
The finding is based on memory usage.
Volatile usage
CPU usage varies, so Rightsize lowered the sizing target.
Limited by peak load
A smaller size passed the CPU percentile test, but the highest peak in the window exceeds its capacity.
Limited by network throughput
The recommended size is the smallest one with enough network capacity for the observed peak.
Limited by storage throughput
The recommended size is the smallest one with enough storage throughput for the observed peak. This check uses throughput only. It does not check IOPS.
Limited by missing memory data / No memory metrics
No memory agent is reporting data, so the recommendation is bounded by CPU alone. The resource's panel links to the install guide for the CloudWatch agent.
Burst credits exhausted
The current type is burstable (t2, t3, t3a, or t4g), and daily average usage exceeded the base target on at least 25% of observed days and on at least two days. This indicates that the instance needs a larger size.
Idle
The instance shows no meaningful activity. Rightsize recommends a stop.
Commitment limits sizing to this family
Because of the covering commitment, Rightsize keeps the recommendation in the current family. See Commitments, above.
Review Reserved Instance coverage before resizing
Resizing this resource would change what its Reserved Instance covers. See Commitments, above.
GPU not sized
The instance has GPU accelerators. Rightsize sizes on CPU, memory, and network, so it does not size GPU instances.
Spot capacity — not right-sized
The instance runs on Spot capacity. Spot capacity is reclaimed and priced on different terms, so Rightsize does not size it.
Last updated
Was this helpful?

