Since the beginning of February, AWS has been charging every public IPv4 address used by customers. While the $0.005 USD per hour charge might encourage developers to be more frugal with the usage of public IPv4 addresses, AWS is estimated to generate an extra annual revenue ranging between 400 million and $1 billion USD.
The new charge has been implemented universally, across all AWS regions and services, including EC2 instances, RDS databases, EKS nodes, and other service-managed public IPv4 addresses, such as internet-facing ELB, NAT gateways, and Global Accelerators.
As covered previously on InfoQ, the change was initially announced in July 2023. Despite the growing scarcity of IPv4 addresses and their increasing acquisition costs in recent years, until recently AWS charged only for public IPv4 addresses that were allocated but not attached to an EC2 instance. While the cloud provider puts the emphasis on developers being more frugal with the use of public IPv4 addresses, improving cloud architectures, and accelerating the adoption of IPv6, numerous developers have expressed concerns and emphasized the financial implications associated with this change.
In the "IPv4 surcharge" article, Andree Toonk, founder & CEO of Border0, tries to estimate how much money will AWS make with the new charge:
Let's explore a few scenarios, starting with a very conservative estimate, say 10% of the IPv4 addresses published in the AWS JSON (79M IPv4 addresses) are used for a year. That's 7.9 million IPv4 addresses x $43.80, almost $346 Million a year. At 25% usage, that's nearly $865 million a year. And at 30% usage, that's a billion dollars.
Toonk wrote a program to send an ICMP packet to all the IP addresses with categories "AMAZON," "EC2," and "GLOBAL ACCELERATOR", receiving a reply from over 6 million addresses. Considering the likelihood of the number of active IPv4 addresses being potentially twice as much due to default security groups blocking ICMP, Toonk concludes:
I believe it's fair to say that AWS will likely make anywhere between $400 million and $1 billion dollars a year with this new IPv4 charge! That's a nice bump for AWS, especially given that this was provided for free until today.
In a popular Reddit thread, many developers suggest that AWS should have provided better IPv6 support first. Avi Keinan, senior cloud architect at DoiT International, writes instead:
This price increase is just like the tobacco tax. The purpose of this price increase is to push customers to reduce their public IP usage, not to make more money.
To mitigate the effects of the recent charges, cloud developers are advised to deactivate public IPv4 addresses whenever feasible, using for example public IPv6 to access the internet and supporting IPv4 for ingress traffic from the load balancers. NAT gateways or open-source alterNAT are other options when dealing with a substantial number of currently used public IPv4 addresses.
Corey Quinn, chief cloud economist at The Duckbill Group, adds:
My own bill is going to rise by nearly 10% as a result. It'd be a lot less galling if AWS didn't have a sad, sad level of coverage for pure IPv6 stacks among their own services.
Customers will not incur charges for IP addresses they own and bring to the cloud using Amazon BYOIP. Another exception is Lightsail, where the pricing update for the usage of public IPv4 will come into effect on May 1st, as per a separate announcement. The Free Tier now includes 750 hours of free public IPv4 addresses.