Always-on EC2 instances with no Savings Plan covering their spend
What does ZopNight detect here?
ZopNight flags running EC2 instances with no Savings Plan or Reserved Instance on their billing lines that pass a 60-day history, 70% uptime and 30% utilization check. The saving uses the live 1-year No Upfront Compute Savings Plan rate for the instance type, never the deeper RI rate, so the figure matches what a Compute Savings Plan would actually deliver.
Signal and threshold
| Field | Value |
|---|---|
| Rule IDs | RC-1508 |
| Category | discount |
| Severity | medium |
| Metric | CPUUtilization |
| Threshold | no Savings Plan or RI on the instance's billing lines; 60+ days history, 70%+ uptime, CPU or memory average 30%+ |
| Evaluation window | 60d history |
| Source | ZopNight |
| Permissions used | ec2:DescribeInstances · ce:GetSavingsPlansCoverage · ce:GetSavingsPlansPurchaseRecommendation · savingsplans:DescribeSavingsPlans |
Where it applies
Compute Savings Plans trade flexibility for a smaller discount
A Savings Plan is a commitment to spend a fixed amount per hour for one or three years. Compute Savings Plans are the flexible kind: they apply regardless of instance family, size, Availability Zone, Region, operating system or tenancy, and also to Fargate and Lambda. The Compute Savings Plans pricing page puts the discount at up to 66%, against up to 72% for Standard Reserved Instances.
Two billing rules shape the maths. Savings Plans apply after Reserved Instances, and any usage beyond the hourly commitment is charged at On-Demand rates. That makes the steady baseline, not the peak, the part worth committing.
Reading Savings Plans coverage yourself
aws ce get-savings-plans-coverage \ --time-period Start=2026-08-01,End=2026-09-01 \ --group-by Type=DIMENSION,Key=INSTANCE_FAMILY
aws ce get-savings-plans-purchase-recommendation \ --savings-plans-type COMPUTE_SP --term-in-years ONE_YEAR \ --payment-option NO_UPFRONT --lookback-period-in-days THIRTY_DAYSThe recommendation works at account level; this rule works per instance, which makes it easier to see which workloads drive the commitment.
The evidence an instance must show
- It is
runningand not an ECS Managed Instance. - No Savings Plan or Reservation label appears on its billing lines. An instance with no label counts as uncovered. No coverage percentage is measured, despite the 30% in the rule’s name.
- Its monthly cost is positive and taken from the bill rather than ZopNight’s estimate.
- At least 60 days of history, measured uptime of 70% or more, and CPU (or agent memory) averaging 30% or higher.
- The Compute Savings Plan rate for its type, run for 730 hours, comes out cheaper than today.
There is no production-name condition here: any steady instance qualifies.
Instances it will not recommend a plan for
Covered instances never get a buy suggestion. Instances that run part-time fail the uptime check, because a plan bills the committed hours whether the box is on or not. Low-utilization instances are left for rightsizing first. If the live Compute Savings Plan rate for the type and Region is missing or stale, the rule stays silent rather than falling back to the RI rate, which would overstate the saving. For the account-wide view, see EC2 Compute Savings Plan Opportunity.
Pricing at the Savings Plan rate, not the RI rate
plan cost = 1-year No Upfront Compute Savings Plan hourly rate x 730saving = current monthly cost - plan cost (capped at the current cost)Raising coverage safely
- Add up the steady hourly spend of the flagged instances; that baseline is the safe commitment.
- Start with a 1-year No Upfront Compute Savings Plan sized to that baseline, not to peak.
- Prefer EC2 Instance Savings Plans only where a family and Region will not change, since they discount more but apply more narrowly.
- Recheck coverage and utilization a month later before committing more.