Easily build complex reports
Monitoring and efficiency metrics
Custom cost allocation tags
Network cost visibility
Organizational cost hierarchies
Budgeting and budget alerts
Discover active resources
Consumption-based insights
Alerts for unexpected charges
Automated AWS cost savings
Discover cost savings
Unified view of AWS discounts
COGS and business metrics
Model savings plans
Collaborate on cost initiatives
Create and manage your teams
Automate cloud infrastructure
Cloud cost issue tracking
Detect cost spikes
by Emily Dunenfeld
Contents
On February 1st, AWS implemented a controversial price increase for IPv4 addresses to, in their words, “encourage you to be a bit more frugal with your use of public IPv4 addresses and to think about accelerating your adoption of IPv6 as a modernization and conservation measure.” The problem—compatibility issues and a lack of support for IPv6.
The good news is there are tools you can use to gain visibility on your IPv4 addresses. Skip to the How You Can See AWS Public IPv4 Costs section if you’re already familiar with what’s changing and why.
Before this month, there was no charge for in-use AWS Public IPv4 addresses. Now, the price is $0.005 an hour, which equates to $43.8 a year. This applies to public IPv4 addresses and Elastic IP addresses (IPv4) assigned to resources within your VPC, Amazon Global Accelerator, and AWS Site-to-Site VPN tunnel. This decision was motivated by the shortage of IPv4 addresses.
As you may already know, there are only 4.3 billion IPv4 addresses. With every device that connects to the internet (e.g., laptops, smartphones, and tablets) needing IP addresses, it was inevitable to run out. This depletion of IPv4 addresses is called IPv4 Address Exhaustion.
Technically, we’ve already run out. History recap: in 2011, the Number Resource Organization (NRO) announced the free pool of available IPv4 addresses to be fully depleted. More specifically, the Internet Assigned Numbers Authority (IANA) had equally distributed the IANA pool between the five Regional Internet Registries (RIRs). After that, the RIRs began to run out of IPv4 addresses to distribute. In 2019, RIPE (Europe’s RIR) was the last to announce that they officially ran out. However, the RIRs continue to recover them, for example, when a company goes out of business or no longer needs them.
Though IPv4 addresses have “run out,” you can still buy them on the private market. That’s what companies like Amazon have done. In 2020, AWS had over 100 million IPv4 addresses with roughly 53 Million allocated. Still, that estimate leaves them with about half of their IPv4 addresses. With all that in mind, their stance to motivate conservation measures checks out.
If you were already familiar with IPv4 Address Exhaustion, you’re probably aware that IPv6 was designed to solve the problem. This time, they wanted to ensure that the IP addresses wouldn’t run out. Fortunately, there are so many IPv6 addresses it is hard to type out or put it into words. Steve Leibson does a good job at the atom level, “we could assign an IPV6 address to EVERY ATOM ON THE SURFACE OF THE EARTH, and still have enough addresses left to do another 100+ earths.” As you can see, we’re not running out of IPv6 addresses any time soon.
So, why don’t we switch? As pointed out by members of the community, IPv6 is just not there yet.
End-user incompatibility is a huge factor for hesitation in switching. Many Internet Service Providers (ISPs), devices (e.g., routers, servers, internet-connected TVs, and home security systems), and software (e.g., operating systems and firewalls) are not yet compatible with IPv6.
The lack of tooling support for AWS services is also a major drawback. There are several AWS services not supported, such as Load Balancers, Lambda, CloudFront, and most APIs. Other cloud providers like GCP and Azure also have IPv4-only features and functionalities. They’re not alone, many other services are lacking support as well. GitHub is another popular example of a platform where IPv6 adoption has faced challenges.
Despite the challenges and hesitations surrounding IPv6 adoption, there has been noticeable growth in recent years. A graph by Google shows the percentage of users accessing Google over IPv6 is growing (although it is almost non-existent in some countries). Organizations, governments, and ISPs worldwide are gradually transitioning. Cloud providers are increasing efforts to make their services compatible with IPv6. See this list of AWS services that support IPv6. Still, a lack of tooling support and global adaption could make IPv6 inoperable for your use case.
There are three tools you can use to see Public IPv4 costs.
With this announcement, AWS also announced Public IP Insights as a free tool to monitor, analyze, and audit your public IPv4 addresses. With Public IP Insights, you can see a list of your public IPv4 addresses, their type, EIP usage, a breakdown by regions and accounts, as well as details such as associated service, network interface ID, EC2 Instance ID, Account ID owner, and more.
AWS Public IPv4 Insights graphs from AWS.
AWS Public IPv4 Insights table from AWS.
Follow these steps from Amazon to view Public IP Insights:
One thing you can’t see in Public IP Insights is cost. You can also view the total cost of Public IP addresses in Cost Explorer by following these steps from Amazon:
PublicIPv4:IdleAddress
PublicIPv4:InUseAddress
Vantage combines some of the functionalities of Public IP Insights and Cost Explorer for full visibility into IPv4 costs. Vantage supports cost forecasting, views by region, idle and in-use costs, and costs by resource ID.
Public IPv4 total cost and forecasted costs in Vantage.
To see Public IPv4 total cost and forecasted costs in Vantage follow these steps:
Cost Reporting
New
Filters
AWS
New Rule
Category
Select a Service
Other
Select a Category
Subcategory
is
contains
Keyword
Save as New
You can also automate the creation of the previous report using Terraform. See this guide for a tutorial on how to get set up with Terraform in Vantage.
Use the following configuration for your report. The below configuration is also available in this repository. Ensure you have a valid API token created:
terraform { required_providers { vantage = { source = "vantage-sh/vantage" } } } provider "vantage" { # this can also be configured with export VANTAGE_API_TOKEN=<YOUR_API_TOKEN> # and this block removed entirely: api_token = var.api_token } resource "vantage_cost_report" "ipv4_report" { title = "IPv4 Report" filter = <<FILTER (costs.provider = 'aws' AND (costs.service = 'Amazon Virtual Private Cloud' AND costs.category = 'Other') AND (costs.service = 'Amazon Virtual Private Cloud' AND costs.subcategory LIKE '%PublicIPv4%')) FILTER workspace_token = "<YOUR_WORKSPACE_TOKEN>" # optionally, use folder_token instead of workspace_token # folder_token = "fldr_12345" }
This configuration uses the vantage_cost_report resource to create a report that displays your public IPv4 costs. It uses VQL—or Vantage Query Language—to create the report filters. The report will also generate a forecast.
vantage_cost_report
Public IPv4 costs by Subcategory in Vantage.
You can also group by Subcategory to see a breakdown of costs by region, as well as idle vs in-use (or active) costs. To do this, simply click Group By, then select Subcategory. We also changed the view from Cumulative to Weekly.
Group By
Cumulative
Weekly
Public IPv4 costs by Resource in Vantage.
Grouping by both Subcategory and Resource will show the costs associated with each Public IPv4 address. Add Resource to the Group By options. We also changed the view back to Cumulative and changed the date range to start before February 1st. As you can see, there were no costs associated with these Public IPv4 addresses before this month.
Resource
After using these visibility tools, you can audit your public IPv4 addresses and perform any cost-saving strategies within your scope. Here are a few options:
As the world makes efforts to transition from IPv4 to IPv6, pain points such as increased costs are inevitable. By using observability tools, you can understand your costs and optimize accordingly. By auditing your Public IP costs, you can consider cost-optimization techniques, such as removing idle addresses, switching to IPv6, leveraging NAT Gateways and private subnets, and configuring your EC2 instances.
MongoDB Atlas is the cost-effective choice for production workloads where high-availability is a requirement.
Grafana is a strong competitor to the monitoring and observability features of Datadog for a fraction of the price.
AWS is implementing a policy update that will no longer allow Reserved Instances and Savings Plans to be shared across end customers.