The other day I got a request from our team leader to check why our AWS expenses had shot up unexpectedly the last month. After a few minutes revising the previous months’ billing, I figured out that AWS started collecting taxes, CloudWatch had been increasing as we were implementing a better logging system for our apps, and also AWS started charging us $0.005 per IP address hourly starting in February 2024.

AWS New charges on IP Addresses

AWS IP Address cost per hour

I already had a proposal to start removing IP addresses, but from previous experiences like this, I learned that the best way to be taken seriously is by showing the numbers. Investigating the case, I found an amazing report called IPAM (Amazon VPC IP Address Manager) that helped me to detect all of the public/elastic IPs assigned to our services.

After setting up the report, AWS took about a day to map all of the IP addresses in the account. I also had to set this up several times as we had several accounts for environment isolation. In the meantime, as I was curious about what the total number of addresses could be, I started checking services manually. My count was around 50 IP addresses, but the next day I was surprised by the IPAM report. There were 85 IP addresses in use, and most of them were for services that didn’t require an IP address. An example of this was the main database, deployed in a public subnet allowing public access to it. This was fixed, and the DB is in the private subnet now. We will cover this in detail in another post.

Now it was time to show the numbers and a plan to start removing IPs. Earlier that day I mentioned to the CTO the expenses associated with the IPs, and at first this was kinda disregarded until I showed the total IP addresses and the impact in costs yearly, which was near $4,000. Also, my plan to remove them considered 2 or 3 workdays. You might guess at this point I got the green light to start cleaning.

Total IPs Cost per hour Total Hours (365 days) Total Yearly
85 $0.005 8,760 $3,723

This is how the IPAM report looks after the cleaning:

IP Address total after cleaning

Total IPs Cost per hour Total Hours (365 days) Total Yearly
14 $0.005 8,760 $613.2

After removing all the unused IP addresses, we were saving a bit over $3,100, and even more importantly, details about old, non-documented implementations were discovered, presenting a great opportunity to improve our security, reliability, performance, cost savings, and more.

This is proof of the importance of substantiating your findings when presenting them to the team leader or even to a board of directors. It’s a lot easier for people to understand what you’re saying when you back it up with numbers and simple graphs, especially if they’re not super technical.