AWS bill line item
PublicIPv4:InUseAddress
You are being charged hourly for every public IPv4 address you hold, whether it's actively attached and serving traffic, or allocated but unattached and idle.
Public IPv4 address charge
Verified against official AWS documentation last checked
Why it shows up
AWS began charging for all public IPv4 addresses on February 1, 2024. Previously, only "extra"/idle Elastic IPs were charged. This now covers the default public IP on every internet-facing instance, every Elastic IP, NAT gateway public IPs, and public IPs on AWS-managed resources, not just Elastic IPs.
Bills spike when accounts accumulate unattached Elastic IPs left over from decommissioned instances, or when a large fleet of instances or NAT gateways each get their own public IP instead of sharing egress through fewer public endpoints.
How to cut it
- Release Elastic IPs that aren't attached to a running resource. They cost the same rate whether idle or in use, so idle ones are pure waste.
- Move private-subnet workloads behind a NAT gateway (shared public IP) instead of giving each instance its own public IP.
- Use a load balancer or CDN in front of a fleet instead of assigning public IPs to individual instances.
- Audit across accounts with Cost Explorer filtered to this usage type to find and reclaim unused allocations.
$0.005 per hour per address — us-east-1 (uniform across commercial AWS regions); identical whether the address is in-use or idle; as of 2026-07
How to read a usage type
The colon in PublicIPv4:InUseAddress 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 PublicIPv4:InUseAddress 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.