AWSCost

AWS cost · public IPv4

Why AWS is charging you for public IPv4 addresses

For years a public IPv4 address was effectively free as long as it was attached to something. That changed on February 1, 2024. Now every public IPv4 address costs $0.005/hour - attached or idle, in use or forgotten. On its own it is small, about $3.60/month. The problem is that public IPs accumulate: one per instance, one per NAT gateway, a few Elastic IPs left over from resources that no longer exist. They were free when you created them, so nobody counted them. Now they all bill.

Since February 2024 every public IPv4 address costs $0.005/hour (~$3.60/month), whether it is attached to a running resource or sitting idle. An Elastic IP left over from a deleted instance is pure waste - it bills for nothing. Release the idle ones and drop public IPs from resources that do not need to face the internet.

How much do public IPv4 addresses add up to?

Trivial for one, real once they accumulate across an account or an org:

How manyPer monthPer year
1 public IPv4~$3.60/month~$43
10 addresses~$36/month~$432
50 across an org~$180/month~$2,160

Why is an idle Elastic IP the worst case?

Because you get nothing for it. An address attached to a running server at least routes traffic. An Elastic IP left behind when its instance was stopped or terminated routes nothing and still bills $0.005/hour. It is the same quiet leak as a stopped instance still charging for its disk - a resource that outlived its purpose and kept the meter running.

How do I find and release idle public IPs?

Idle Elastic IPs are the fastest win: an allocated address with no association is attached to nothing. This lists exactly those - the ones with no instance and no interface behind them - so you can release the ones you do not need. Releasing frees the address and stops the charge:

# Elastic IPs allocated but attached to nothing - pure waste
aws ec2 describe-addresses \
  --query 'Addresses[?AssociationId==`null`].{IP:PublicIp,AllocId:AllocationId}' \
  --output table

# release one you do not need (stops the charge)
aws ec2 release-address --allocation-id eipalloc-0123456789abcdef0

Want to know how many public IPs you are quietly paying for? Connect your account read-only and see what it is wasting, in real dollars.

Connect your AWS

The role can only read - Get, Describe, List, nothing else. Read the exact permissions before you deploy it, and delete the stack whenever you want.

Frequently asked questions

Why is AWS charging me for public IPv4 addresses?+

Since February 1, 2024, AWS charges $0.005 per hour - about $3.60/month - for every public IPv4 address you have, whether it is attached to a running resource or sitting idle. IPv4 addresses are a scarce resource, and the charge applies across EC2, RDS, load balancers, NAT gateways, and more.

How much does a public IPv4 address cost on AWS?+

$0.005 per hour, which works out to roughly $3.60/month or about $43/year per address. It applies to in-use and idle addresses alike - there is no free allowance for an idle Elastic IP.

Do I pay for an Elastic IP that is not attached to anything?+

Yes, and this is the pure-waste case. An Elastic IP allocated to your account but not associated with a running resource still bills $0.005/hour. The moment you stop the instance it was on, or release nothing, that address becomes an idle charge you gain nothing from.

How do I find idle Elastic IPs?+

List your allocated addresses and look for the ones with no association - no instance and no network interface attached. Those are doing nothing but billing. You can list them in one command, then release the ones you genuinely do not need.

How do I stop paying for public IPv4 addresses?+

Release Elastic IPs you are not using, and remove public IPs from resources that do not need to be reachable from the internet - a database or an internal service behind a private subnet does not need one. For genuinely private workloads, IPv6 and private networking avoid the charge entirely.

Does the free tier cover public IPv4 addresses?+

Only partially, and only for new accounts. The EC2 free tier includes 750 hours of in-use public IPv4 per month for the first 12 months. Idle Elastic IPs are never covered, and after the 12 months the charge applies to everything.

Related cost breakdowns

More AWS cost breakdowns