Skip to main content
rightsizing · aws

EBS Provisioned IOPS Over-Allocation

resource types
1
rule IDs covered
1
severity
low

What does ZopNight detect here?

Over-provisioned io1 and io2 volumes pay for IOPS the workload never uses. ZopNight recommends a 25% IOPS reduction floored at the 3,000 gp3 baseline, pricing the reclaim at AWS's published per-IOPS rates (io1 at $0.065 per IOPS-month, io2 tiered down to $0.032) and requires 30-day utilization metrics.

Signal and threshold

How ZopNight evaluates EBS Provisioned IOPS Over-Allocation.
Field Value
Rule IDsRC-075
Categoryrightsizing
Severitylow
Metricnone — pure configuration read
Sourceebs_iops_overalloc.go

Which io1 and io2 volumes qualify

  • InstanceType = io1 / io2 (volume type; only provisioned-IOPS volumes qualify)
  • iops (provisioned IOPS, in resource Metadata): required; rule abstains when absent

Pricing the reclaimed IOPS at published rates

savings is the per-provisioned-IOPS charge reclaimed by dropping from the current IOPS to the recommended target IOPS (a 25% reduction floored at the 3000 gp3 baseline), priced at AWS’s published per-IOPS rates: io1 flat $0.065/IOPS-mo, io2 tiered ($0.065 first 32K, $0.046 32K–64K, $0.032 64K+). These rates are mirrored byte-for-byte from the aggregator cost engine (backend/aggregator/internal/cost/calc_aws_storage.go) so recommender savings and aggregator spend agree. savings = iopsCost(current) − iopsCost(target), scaled onto the billed basis (× cost/iopsCost(current)) when the rack IOPS cost alone exceeds the billed monthly cost (committed-use/EDP discounts), then clamped to [0, currentCost].

Lowering IOPS toward peak, never raising it

this is an OVER-allocation (downsize) rule, so it emits only a lower iops target (25% reduction, floored at 3000). It never raises IOPS and never emits a throughput target, since doing either would mutate the volume in the wrong (cost-raising) direction. At/ below baseline it returns nil, so the resize template plans no workflow (advisory only).

  1. Review VolumeThroughputPercentage, VolumeReadOps and VolumeWriteOps among the volume metrics EBS sends to CloudWatch for peak usage patterns
  2. Reduce provisioned IOPS toward the observed peak (never below the 3000 gp3 baseline)
  3. Consider switching to gp3 if IOPS needs are < 16,000
  4. Modify volume via EC2 Console → Volumes → Actions → Modify

The provisioned IOPS utilization gate

EBSIOPSUtilPct (provisioned-IOPS utilization %, 30d): REQUIRED, fail-closed (D2)

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·