AWS bill line item
EBS:VolumeP-IOPS.piops
A separate per-IOPS-month charge for the performance you provisioned on io1/io2 volumes, billed apart from the volume's GB-month storage charge.
EBS Provisioned IOPS charge (io1/io2)
Verified against official AWS documentation last checked
Why it shows up
io1/io2 volumes bill storage and performance separately: capacity on one line, provisioned IOPS on this one. Teams provisioning IOPS "for headroom" often don't realize it's billed continuously whether or not that performance is ever used.
Because it's a distinct line item from storage, it can spike independently of any storage growth: a temporary IOPS bump for a migration or load test that never gets scaled back down.
How to cut it
- Compare actual read/write operations against provisioned IOPS and right-size down.
- Migrate io1 to gp3, which bundles a meaningful IOPS baseline into the base price with no separate per-IOPS charge below that.
- Reserve the highest-IOPS tiers only for workloads that truly need that ceiling or durability.
- Audit for volumes with elevated provisioned IOPS left over from one-off performance testing.
How to read a usage type
The colon in EBS:VolumeP-IOPS.piops doesn't introduce an instance type the way it does in a code like BoxUsage:m5.large. This code carries no region or direction token either, so there's nothing to break down here.
Source
Source: AWS docs →Found EBS:VolumeP-IOPS.piops on your own bill?
Drop your Cost Explorer CSV into the AWS Bill Analyzer. It'll flag line items like this one on your own bill and link straight back to the fix.
Analyze your own bill →The meter you don't watch still grows.
Waste rarely hides in the service you check every week. CostMon watches every meter on your stack, including the ones you forgot were running.