Skip to main content
rightsizing · aws

Non-Nitro EC2 Instance -- Migrate for Better Performance

resource types
1
rule IDs covered
1
severity
low

What does ZopNight detect here?

Pre-Nitro EC2 families like m4, c4, t2, and non-metal i3 run on Xen virtualization with a documented Nitro successor available. ZopNight prices the migration at the genuine catalog delta: cost times (1 minus destination/source rate). The rule abstains when the successor isn't strictly cheaper; the inflated 0.20 fallback is gone.

Signal and threshold

How ZopNight evaluates Non-Nitro EC2 Instance -- Migrate for Better Performance.
Field Value
Rule IDsRC-187
Categoryrightsizing
Severitylow
Metricnone — pure configuration read
Sourceec2_nitro.go

Pre-Nitro families with a named successor

  • resource.Status: running
  • InstanceType in preNitroFamilies (read directly from the instance type). i3 is in preNitroFamilies (2026-07 fix): per AWS’s “Instances built on the AWS Nitro System” docs, only i3.metal (and i3en) run on Nitro; plain (non-metal) i3.* sizes are still Xen-virtualized, matching nitroMap’s own i3 → i4i entry. The rule special-cases the .metal size (not the family) to abstain on i3.metal since it already runs on Nitro.
  • a concrete Nitro successor must exist (skuladder.NitroEquivalent ≠ "", and f1/h1/p2 have no published replacement → abstain, no target to name or price). p2 was removed from nitroMap (2026-07 fix): its natural successor p3 is not itself Nitro-based (only p3dn is), so mapping p2→p3 made the “migrate to Nitro” rationale false for the target.
  • cost basis (PricingForUID > 0) + SKU rates for both the current type and the Nitro target (the rule implements TargetSKUCandidates so fetchSKURates pre-fetches the upsize family swap)

The catalog rate delta to the successor SKU

the saving is the genuine catalog delta between the current SKU’s on-demand rate and the Nitro successor’s: savings = cost × (1 − dstRate/srcRate). model.DeriveCatalogDiffSavings now emits the real small delta instead of inflating to the old 0.20 fallback (was up to 5× over on same-arch swaps). Abstains when either rate is missing or the successor is not strictly cheaper (dstRate ≥ srcRate), and never falls back to a flat fraction of cost under the rightsizing category.

Stopping, retyping, restarting

  1. Identify the Nitro equivalent in the current instance-family lineup (e.g., m4 -> m5, c4 -> c5, t2 -> t3)
  2. Check application compatibility with Nitro networking (ENA driver)
  3. Stop instance, change type, start instance
  4. Verify application functionality and performance

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

417 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

417 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·