Home › Decoder › PublicIPv4:InUseAddress and IdleAddress: the public IP address charge

PublicIPv4:InUseAddress and IdleAddress: the public IP address charge

AWS charges $0.005 per hour for every public IPv4 address in US East (N. Virginia), whether it is attached to a resource (InUseAddress) or sitting unattached (IdleAddress), which is $3.65 per address for a 730-hour month.

In your bill the usage type reads: PublicIPv4:InUseAddress, PublicIPv4:IdleAddress, USE1-PublicIPv4:InUseAddress, USE1-PublicIPv4:IdleAddress

What it costs

ChargePriceUnit
In-use public IPv4 address$0.005per address-hour
Idle public IPv4 address$0.005per address-hour
One address for a 730-hour month (arithmetic)$3.65per month

US East (N. Virginia); other regions may differ. Checked 2026-11-04. Sources: AWS VPC pricing, Public IPv4 Address, AWS price list file, AmazonVPC offer, us-east-1.

Example with made-up numbers

40 public IPv4 addresses x 730 h x $0.005 = $146.00 a month

Of those, 9 are idle Elastic IPs: 9 x $3.65 = $32.85 that buys nothing

3 NAT gateways, 3 ALB nodes' addresses and 25 instances with public IPs make up the rest

Typical causes

Unattached Elastic IPs

Addresses allocated for a test or a replaced instance and never released: they bill at the same hourly rate as attached ones.

Public IPs on instances that do not need them

Instances in public subnets with auto-assign public IP on, behind a load balancer or reached only through a bastion.

One address per NAT gateway and per load balancer node

NAT gateways and internet-facing load balancers hold public IPv4 addresses, so counts scale with AZs and environments.

Many small environments

Preview or per-developer stacks, each with its own public addresses.

The fix, step by step

Verify first

Check these before you change anything: the steps below are suggestions, and only you can see your own configuration.

  • List addresses with their association: an Elastic IP with no AssociationId is idle. Check DNS records, partner allow-lists and firewall rules for each address before releasing it; a released Elastic IP is not guaranteed to be allocatable again.
  • For instances with auto-assigned public IPs, check whether anything connects to them directly (SSH, webhooks, health checks) before removing the address.
  • Use the cost split in your bill (InUseAddress versus IdleAddress) to decide where to start: idle addresses are the first review list.
  • Remember load balancer and NAT gateway addresses are managed by those services; they go away only with the resource.

In the console

  1. EC2 console > Network & Security > Elastic IPs: filter Association ID empty to find idle addresses.
  2. For each one: check tags and name, then Actions > Release Elastic IP address only after the allow-list check above.
  3. EC2 > Instances: add the column Public IPv4 address, review instances that have one and are behind a load balancer.
  4. VPC console > Subnets > Modify auto-assign IP settings: turn off auto-assign public IPv4 where instances do not need direct internet reachability.

With the CLI

aws ec2 describe-addresses --query 'Addresses[?AssociationId==`null`].[PublicIp,AllocationId]'
aws ec2 describe-instances --query 'Reservations[].Instances[?PublicIpAddress!=`null`].[InstanceId,PublicIpAddress]'
aws ec2 release-address --allocation-id eipalloc-EXAMPLE   # only after the verification steps

Rollback

Allocate a new Elastic IP (it will be a different address) and update DNS and allow-lists. For auto-assign settings, re-enable the subnet setting; running instances keep what they have.

Count the public IPv4 lines in your own bill

Drop in your Cost Explorer or CUR CSV. Billtrim reads it in your browser and shows how many address-hours you pay for, in use and idle.

See a sample result

Paste your export: how to export a Cost Explorer CSV or CUR file in two minutes.

Questions people ask

Do idle Elastic IPs cost the same as attached ones?

Yes. The AWS price list shows both InUseAddress and IdleAddress at $0.005 per hour in US East (N. Virginia).

Does IPv6 avoid this charge?

The charge is for public IPv4 addresses specifically. Whether a given workload can run on IPv6 depends on its clients and dependencies; check before changing.

Is there a free allowance?

Free-tier terms for new accounts vary and are not covered here; check the AWS VPC pricing page for your account's current terms.

Related

Part of the guide: Why is my AWS bill so high? Check these 8 line items first