{"id":583,"date":"2025-09-05T04:11:24","date_gmt":"2025-09-05T04:11:24","guid":{"rendered":"https:\/\/finopsschool.com\/blog\/?p=583"},"modified":"2025-09-05T04:11:25","modified_gmt":"2025-09-05T04:11:25","slug":"aws-cost-optimization-for-public-ipv4-addresses","status":"publish","type":"post","link":"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/","title":{"rendered":"AWS Cost Optimization for Public IPv4 Addresses"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><\/h1>\n\n\n\n<p>AWS introduced <strong>new public IPv4 pricing in 2024<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>$0.005 per hour per public IPv4<\/strong> = <strong>$3.60\/month each<\/strong><\/li>\n\n\n\n<li>Applies whether the IP is Elastic or directly attached to an EC2.<\/li>\n\n\n\n<li>This cost is <strong>in addition to<\/strong> your EC2, VPC, and data transfer charges.<\/li>\n<\/ul>\n\n\n\n<p>If you run multiple domains or services on AWS, these charges add up quickly. Below is a <strong>step-by-step cost reduction playbook<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 1. Consolidate Domains on Fewer Public IPs<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Instead of assigning <strong>1 IP per domain<\/strong>, you can serve <strong>multiple domains from a single IP<\/strong> using <strong>Virtual Hosts<\/strong> in Apache\/Nginx.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Example: Apache VirtualHosts<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:80&gt;\n    ServerName domain1.com\n    DocumentRoot \/var\/www\/domain1\n&lt;\/VirtualHost&gt;\n\n&lt;VirtualHost *:80&gt;\n    ServerName domain2.com\n    DocumentRoot \/var\/www\/domain2\n&lt;\/VirtualHost&gt;\n\n&lt;VirtualHost *:80&gt;\n    ServerName domain3.com\n    DocumentRoot \/var\/www\/domain3\n&lt;\/VirtualHost&gt;\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Point all DNS records (<code>A<\/code> or <code>CNAME<\/code>) to the <strong>same EC2 public IP<\/strong>.<\/li>\n\n\n\n<li>The web server selects the right site based on the <code>Host<\/code> header.<\/li>\n\n\n\n<li><strong>Savings:<\/strong> 3 IPs \u2192 1 IP = cut IPv4 cost by <strong>66%<\/strong> (from $11.16 to $3.72\/month).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 2. Use <strong>Application Load Balancer (ALB)<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ALB provides a <strong>single DNS name<\/strong> (e.g., <code>myapp-1234567890.ap-south-1.elb.amazonaws.com<\/code>).<\/li>\n\n\n\n<li>Supports <strong>host-based routing<\/strong>:\n<ul class=\"wp-block-list\">\n<li><code>domain1.com \u2192 target group 1<\/code><\/li>\n\n\n\n<li><code>domain2.com \u2192 target group 2<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>You don\u2019t need <strong>any public IPs<\/strong> on EC2 (only private IPs in private subnets).<\/li>\n\n\n\n<li>ALB has a <strong>fixed hourly + LCU cost (~$16\u2013$18\/month)<\/strong>, so it\u2019s cost-effective if:\n<ul class=\"wp-block-list\">\n<li>You manage <strong>5+ domains<\/strong>.<\/li>\n\n\n\n<li>You want SSL offloading, WAF, auto-scaling.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 3. Put Domains Behind <strong>CloudFront CDN<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CloudFront distributions don\u2019t charge per IP.<\/li>\n\n\n\n<li>Each distribution gets a public <strong>edge DNS name<\/strong> (e.g., <code>dxxxxx.cloudfront.net<\/code>).<\/li>\n\n\n\n<li>Attach your custom domains via CNAME + ACM certificate.<\/li>\n\n\n\n<li>CloudFront forwards traffic to your EC2 instance\u2019s private IP or ALB.<\/li>\n\n\n\n<li>You can consolidate <strong>dozens of domains<\/strong> behind CloudFront, <strong>all with zero IPv4 cost<\/strong>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 4. Embrace <strong>IPv6 (Free)<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AWS charges for <strong>IPv4<\/strong>, but <strong>IPv6 is free<\/strong>.<\/li>\n\n\n\n<li>Steps:\n<ul class=\"wp-block-list\">\n<li>Enable <strong>dual-stack<\/strong> networking for EC2\/ALB\/CloudFront.<\/li>\n\n\n\n<li>Add <strong>AAAA DNS records<\/strong> for your domains.<\/li>\n\n\n\n<li>Encourage users\/CDNs\/ISPs to connect via IPv6.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>You\u2019ll still need at least <strong>1 IPv4<\/strong> for compatibility, but gradually traffic shifts away.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 5. Release Idle Elastic IPs<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Check for unused Elastic IPs: <code>aws ec2 describe-addresses --query \"Addresses[?AssociationId==null]\"<\/code><\/li>\n\n\n\n<li>Release them: <code>aws ec2 release-address --allocation-id eipalloc-xxxxxx<\/code><\/li>\n\n\n\n<li>AWS charges for <strong>unattached Elastic IPs<\/strong>, so don\u2019t keep them reserved if not in use.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 6. Use DNS Instead of IPs for Apps<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Many setups bind services directly to public IPs.<\/li>\n\n\n\n<li>Instead, use <strong>Route 53 (or any DNS provider)<\/strong> and map domain \u2192 <strong>single public endpoint<\/strong>.<\/li>\n\n\n\n<li>This avoids the \u201c1 IP per service\u201d trap.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 7. Automate Audit &amp; Alerts<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enable <strong>AWS Cost Explorer + Budgets<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Track IPv4 cost (<code>Amazon Virtual Private Cloud \u2192 Public IPv4 Address<\/code> line item).<\/li>\n\n\n\n<li>Set alerts if IPv4 spend > $5\u2013$10.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Run a weekly script to list public IP usage: <code>aws ec2 describe-instances --query \"Reservations[*].Instances[*].[InstanceId,PublicIpAddress]\" --output table<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u2705 Summary of Optimization Options<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Strategy<\/th><th>Effort<\/th><th>Savings<\/th><th>Best For<\/th><\/tr><\/thead><tbody><tr><td><strong>VirtualHosts (1 IP, many domains)<\/strong><\/td><td>Easy<\/td><td>High (66\u201380%)<\/td><td>Small setups, 2\u201310 domains<\/td><\/tr><tr><td><strong>Release unused IPs<\/strong><\/td><td>Easy<\/td><td>Small (~$3.60\/IP\/mo)<\/td><td>Anyone with idle Elastic IPs<\/td><\/tr><tr><td><strong>ALB (DNS-based routing)<\/strong><\/td><td>Medium<\/td><td>Moderate<\/td><td>Multi-domain, need SSL\/WAF\/scaling<\/td><\/tr><tr><td><strong>CloudFront (CDN)<\/strong><\/td><td>Medium<\/td><td>High (remove all IPv4 costs, reduce egress too)<\/td><td>Global traffic, static assets<\/td><\/tr><tr><td><strong>IPv6 adoption<\/strong><\/td><td>Medium\/Long<\/td><td>Future-proof<\/td><td>Long-term savings, modern apps<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udccc Recommended Path (for your case)<\/h1>\n\n\n\n<p>Since you said <strong>3 domains \u2192 3 EC2 public IPs<\/strong>:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u2705 Switch all 3 domains to <strong>1 EC2 public IP<\/strong> (via Apache VirtualHosts).<\/li>\n\n\n\n<li>\u2705 Release the 2 extra Elastic IPs.<\/li>\n\n\n\n<li>Later, move everything behind <strong>CloudFront<\/strong> \u2192 <strong>$0 IPv4 charge<\/strong> + huge egress savings.<\/li>\n\n\n\n<li>Enable <strong>IPv6 dual-stack<\/strong> now to future-proof.<\/li>\n<\/ol>\n\n\n\n<p>\ud83d\udc49 This way your IPv4 cost drops from <strong>$11.16 \u2192 $3.72 now<\/strong>, and eventually <strong>$0<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>AWS introduced new public IPv4 pricing in 2024: If you run multiple domains or services on AWS, these charges add up quickly. Below is a step-by-step cost reduction playbook. \ud83d\udd39 1. Consolidate Domains on Fewer Public IPs Example: Apache VirtualHosts \ud83d\udd39 2. Use Application Load Balancer (ALB) \ud83d\udd39 3. Put Domains Behind CloudFront CDN \ud83d\udd39 &#8230; <a title=\"AWS Cost Optimization for Public IPv4 Addresses\" class=\"read-more\" href=\"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/\" aria-label=\"Read more about AWS Cost Optimization for Public IPv4 Addresses\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-583","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AWS Cost Optimization for Public IPv4 Addresses - FinOps School<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS Cost Optimization for Public IPv4 Addresses - FinOps School\" \/>\n<meta property=\"og:description\" content=\"AWS introduced new public IPv4 pricing in 2024: If you run multiple domains or services on AWS, these charges add up quickly. Below is a step-by-step cost reduction playbook. \ud83d\udd39 1. Consolidate Domains on Fewer Public IPs Example: Apache VirtualHosts \ud83d\udd39 2. Use Application Load Balancer (ALB) \ud83d\udd39 3. Put Domains Behind CloudFront CDN \ud83d\udd39 ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/\" \/>\n<meta property=\"og:site_name\" content=\"FinOps School\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-05T04:11:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-05T04:11:25+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/\",\"url\":\"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/\",\"name\":\"AWS Cost Optimization for Public IPv4 Addresses - FinOps School\",\"isPartOf\":{\"@id\":\"https:\/\/finopsschool.com\/blog\/#website\"},\"datePublished\":\"2025-09-05T04:11:24+00:00\",\"dateModified\":\"2025-09-05T04:11:25+00:00\",\"author\":{\"@id\":\"https:\/\/finopsschool.com\/blog\/#\/schema\/person\/29c7dd23259588e39e7e5695e7b69d2f\"},\"breadcrumb\":{\"@id\":\"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/finopsschool.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AWS Cost Optimization for Public IPv4 Addresses\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/finopsschool.com\/blog\/#website\",\"url\":\"https:\/\/finopsschool.com\/blog\/\",\"name\":\"FinOps School\",\"description\":\"FinOps NoOps Certifications\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/finopsschool.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/finopsschool.com\/blog\/#\/schema\/person\/29c7dd23259588e39e7e5695e7b69d2f\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/finopsschool.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/606cbb3f855a151aa56e8be68c7b3d065f4064afd88d1008ff625101e91828c6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/606cbb3f855a151aa56e8be68c7b3d065f4064afd88d1008ff625101e91828c6?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/finopsschool.com\"],\"url\":\"https:\/\/finopsschool.com\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AWS Cost Optimization for Public IPv4 Addresses - FinOps School","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/","og_locale":"en_US","og_type":"article","og_title":"AWS Cost Optimization for Public IPv4 Addresses - FinOps School","og_description":"AWS introduced new public IPv4 pricing in 2024: If you run multiple domains or services on AWS, these charges add up quickly. Below is a step-by-step cost reduction playbook. \ud83d\udd39 1. Consolidate Domains on Fewer Public IPs Example: Apache VirtualHosts \ud83d\udd39 2. Use Application Load Balancer (ALB) \ud83d\udd39 3. Put Domains Behind CloudFront CDN \ud83d\udd39 ... Read more","og_url":"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/","og_site_name":"FinOps School","article_published_time":"2025-09-05T04:11:24+00:00","article_modified_time":"2025-09-05T04:11:25+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/","url":"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/","name":"AWS Cost Optimization for Public IPv4 Addresses - FinOps School","isPartOf":{"@id":"https:\/\/finopsschool.com\/blog\/#website"},"datePublished":"2025-09-05T04:11:24+00:00","dateModified":"2025-09-05T04:11:25+00:00","author":{"@id":"https:\/\/finopsschool.com\/blog\/#\/schema\/person\/29c7dd23259588e39e7e5695e7b69d2f"},"breadcrumb":{"@id":"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/finopsschool.com\/blog\/aws-cost-optimization-for-public-ipv4-addresses\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/finopsschool.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AWS Cost Optimization for Public IPv4 Addresses"}]},{"@type":"WebSite","@id":"https:\/\/finopsschool.com\/blog\/#website","url":"https:\/\/finopsschool.com\/blog\/","name":"FinOps School","description":"FinOps NoOps Certifications","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/finopsschool.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/finopsschool.com\/blog\/#\/schema\/person\/29c7dd23259588e39e7e5695e7b69d2f","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/finopsschool.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/606cbb3f855a151aa56e8be68c7b3d065f4064afd88d1008ff625101e91828c6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/606cbb3f855a151aa56e8be68c7b3d065f4064afd88d1008ff625101e91828c6?s=96&d=mm&r=g","caption":"admin"},"sameAs":["http:\/\/finopsschool.com"],"url":"https:\/\/finopsschool.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/finopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/finopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/finopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/finopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/finopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=583"}],"version-history":[{"count":1,"href":"https:\/\/finopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/583\/revisions"}],"predecessor-version":[{"id":584,"href":"https:\/\/finopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/583\/revisions\/584"}],"wp:attachment":[{"href":"https:\/\/finopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/finopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/finopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}