Skip to main content

AI & assistant-friendly summary

This section provides structured content for AI assistants and search engines. You can cite or summarize it when referencing this page.

Summary

import PricingHeroStats from '~/components/blog/PricingHeroStats. astro'; import PricingDimensionTable from '~/components/blog/PricingDimensionTable. astro'; import BillSurpriseCallout from '~/components/blog/BillSurpriseCallout

Key Facts

  • The VPC itself, subnets, security groups, and route tables are free
  • The bill comes from what you attach: public IPv4 at $3
  • 60/month per address (since Feb 2024), Interface VPC Endpoints at $0
  • 01/hour per AZ, Transit Gateway at $0
  • 05/hour per attachment, VPN at $0

Entity Definitions

EC2
EC2 is an AWS service discussed in this article.
S3
S3 is an AWS service discussed in this article.
DynamoDB
DynamoDB is an AWS service discussed in this article.
CloudWatch
CloudWatch is an AWS service discussed in this article.
IAM
IAM is an AWS service discussed in this article.
VPC
VPC is an AWS service discussed in this article.
Amazon VPC
Amazon VPC is an AWS service discussed in this article.
EKS
EKS is an AWS service discussed in this article.

Amazon VPC Pricing: The VPC Is Free — Everything Around It Bills

Quick summary: The VPC itself, subnets, security groups, and route tables are free. The bill comes from what you attach: public IPv4 at $3.60/month per address (since Feb 2024), Interface VPC Endpoints at $0.01/hour per AZ, Transit Gateway at $0.05/hour per attachment, VPN at $0.05/hour, and inter-AZ data transfer at $0.01/GB each way. A modest production VPC easily lands at $500–$2,000/month.

Key Takeaways

  • The VPC itself, subnets, security groups, and route tables are free
  • The bill comes from what you attach: public IPv4 at $3
  • 60/month per address (since Feb 2024), Interface VPC Endpoints at $0
  • 01/hour per AZ, Transit Gateway at $0
  • 05/hour per attachment, VPN at $0
Amazon VPC Pricing: The VPC Is Free — Everything Around It Bills
Table of Contents

Amazon VPC has the longest list of free-to-create resources of any AWS service — the VPC itself, subnets, route tables, security groups, NACLs, internet gateways, virtual private gateways, all free. The bill comes from what you attach to those resources: public IPv4 addresses (every one of them billable since February 2024), Interface VPC Endpoints per AZ, NAT Gateways, Transit Gateways, VPN connections, Direct Connect, VPC Lattice service networks, and the easily-overlooked $0.01/GB each way for inter-AZ data transfer on every byte that crosses AZ boundaries.

This post is the bill story. For the operational angle — VPC design, subnet layout, security group hygiene, multi-account network architecture — see our VPC networking best practices guide. NAT Gateway pricing (one of the most consequential VPC-related lines) has its own dedicated post at NAT Gateway billing.

The 10 VPC-Adjacent Billing Dimensions

VPC pricing breakdown — us-east-1, June 2026

Prices in us-east-1

The VPC primitives are free. The bill comes from attached resources and data movement.

VPC, subnets, route tables, security groups, NACLs

$0.00

Free to create and operate

Unit price
Free
Example workload
Standard 3-AZ production VPC

Public IPv4 address (attached or unattached)

$72

New as of Feb 2024 — audit and consolidate

Unit price
$0.005 / hour = $3.60 / month
Example workload
20 public IPs across fleet

Elastic IP (unattached)

$18

Release unattached EIPs immediately

Unit price
$0.005 / hour
Example workload
5 orphaned EIPs

NAT Gateway

$98.55 base + data

See dedicated post for alternatives

Unit price
$0.045/hour + $0.045/GB processed
Example workload
3-AZ HA setup

Gateway VPC Endpoints (S3, DynamoDB)

$0.00

Every VPC should have these

Unit price
Free
Example workload
Endpoint per VPC for S3 + DynamoDB

Interface VPC Endpoint (PrivateLink)

$216 + data

Per service per AZ; HA multiplies by 3

Unit price
$0.01/hour/AZ + $0.01/GB
Example workload
10 service endpoints × 3 AZs

VPC Peering connection

$0 + data transfer

Inter-VPC same-region: $0.01/GB each way

Unit price
Free (data transfer billed standard rates)
Example workload
5 peering connections

Transit Gateway VPC attachment

$360 + data

Multi-VPC hub-and-spoke

Unit price
$0.05/hour + $0.02/GB processed
Example workload
10 VPCs attached

Site-to-Site VPN connection

$72

Plus data transfer out at standard rates

Unit price
$0.05/hour
Example workload
2 VPNs for HA

Direct Connect dedicated (1 Gbps)

$216 + data

Hosted DC at lower port rates

Unit price
~$0.30/hour port + data
Example workload
1 Gbps dedicated

VPC Lattice service network

~$900 + data

Modern service mesh primitive

Unit price
$0.025/hour per network + $0.025/hour per service + $0.025/GB
Example workload
50 services on Lattice

Inter-AZ data transfer

$20 total

Both sender and receiver charged

Unit price
$0.01/GB each way
Example workload
1 TB cross-AZ / month

VPC Flow Logs to CloudWatch

$25

Cheaper to ship to S3 for retention

Unit price
CloudWatch ingestion rate ($0.50/GB)
Example workload
50 GB flow logs / month

Reachability Analyzer

$2

Useful debugging tool; cheap per use

Unit price
$0.10 per analysis
Example workload
20 troubleshooting analyses

The NAT Gateway dimension is covered in depth in its own pricing post; the IPv4 dimension is the most recent material change to the VPC bill.

The IPv4 Address Charge: The Bill Change That Surprised Everyone

In February 2024, AWS introduced a charge for every public IPv4 address in use. Before the change, public IPv4 was free as long as it was attached to a running resource. After: every public IP, attached or not, bills $0.005/hour ($3.60/month per address).

The fleet-wide impact on accounts that have not audited:

  • Every public-facing EC2 instance with an Elastic IP: $3.60/month each.
  • Every NAT Gateway: $3.60/month for its public IP, on top of the NAT Gateway charges themselves.
  • Every public-facing Application Load Balancer: an IP per AZ × $3.60/month.
  • Every old Elastic IP attached to terminated instances: $3.60/month, forever, until released.

A medium-sized organization with ~100 public-facing endpoints saw the line item appear from zero to $360/month overnight in February 2024 with no warning beyond the AWS announcement.

Gateway Endpoints Are Free — Use Them

VPC Gateway Endpoints for S3 and DynamoDB are completely free — no hourly charge, no per-GB processing. They route traffic between resources in your VPC and the service without going through a NAT Gateway or the public internet.

The economic impact: a workload that accesses 1 TB/month of S3 via a NAT Gateway pays ~$45 in NAT data processing fees. The same workload with an S3 Gateway Endpoint pays $0. Every VPC with workloads that access S3 or DynamoDB should have Gateway Endpoints for both. The configuration is one-time, free, non-controversial.

Interface Endpoints: The Hidden Per-AZ Multiplier

Interface VPC Endpoints (PrivateLink) cost $0.01/hour per endpoint per AZ plus $0.01/GB of data processed. A workload using 10 AWS services privately (Secrets Manager, SQS, SNS, ECR API, ECR Docker, KMS, CloudWatch Logs, etc.) across a 3-AZ deployment costs $216/month just for the endpoint hours before data.

The decision is per-service: when does the Interface Endpoint pay off vs routing the same traffic via NAT Gateway?

Interface Endpoint vs NAT Gateway — break-even per service per AZ

Prices in us-east-1

Interface Endpoints win when the per-GB savings on NAT processing exceeds the per-hour endpoint cost.

Endpoint cost

$21.60 / service

Plus $0.01/GB data processing

Unit price
$0.01/hr/AZ
Example workload
3 AZs × 1 month

NAT Gateway processing avoided

Saves $0.045 per GB

Direct cost saving

Unit price
$0.045/GB
Example workload
Per GB routed via endpoint instead

Break-even traffic per service

~620 GB / month / service

Below this, NAT is cheaper for that service

Unit price
Calculation
Example workload
$21.60 / ($0.045 - $0.01)

High-volume service (5 TB/mo, e.g. CloudWatch Logs)

Saves $175/mo per service

Plus latency improvement

Unit price
Interface Endpoint wins
Example workload
5000 GB × $0.035 saved

The 620 GB/month break-even is per service per AZ. Many AWS services see well under this volume from a typical VPC; for those, NAT Gateway processing is cheaper than dedicated Interface Endpoints.

The decision is service-by-service. Most VPCs benefit from Interface Endpoints for high-volume services (CloudWatch Logs, ECR, S3 via Interface if Gateway is not enough) and stay on NAT for low-volume services (KMS, IAM, Secrets Manager at small volume).

Inter-AZ Data Transfer: The Quietest Bill Driver

Inter-AZ data transfer bills $0.01/GB in each direction — both the sender and receiver pay. A microservices architecture with 3-AZ EKS clusters routinely sees 1–10 TB/month of inter-AZ traffic as services in one AZ call services in another. The bill is not large on a per-GB basis, but it compounds across services and is largely invisible without explicit measurement.

Mitigations:

  • EKS Topology Aware Hints route Kubernetes service traffic to same-AZ pods preferentially. Enabled at the service level.
  • Topology spread constraints ensure replicas of the same service spread across AZs so callers in any AZ have a local replica.
  • AWS Local Zones for latency-sensitive single-AZ workloads where the multi-AZ overhead is not justified.
  • Cluster-aware service discovery (Consul, custom DNS) that prefers local-AZ endpoints.

For chatty service pairs (a frontend and its backend, for example), explicit single-AZ placement is often the cheapest answer at the cost of losing the multi-AZ redundancy on that specific service pair.

VPC Peering vs Transit Gateway: The 5–10 VPC Crossover

VPC Peering is free for the connection itself; data transfer bills the standard $0.01/GB inter-AZ rate (or $0.02/GB inter-region for cross-region peering). Transit Gateway charges $0.05/hour per VPC attachment ($36/month per VPC) plus $0.02/GB processed through the TGW.

For 2–3 VPCs needing point-to-point connectivity, peering is cheaper and operationally simpler — the cost is purely data transfer at standard rates. For 5+ VPCs needing full-mesh connectivity, peering’s n² connection complexity becomes operationally untenable; Transit Gateway’s hub-and-spoke model simplifies management at the cost of per-VPC attachment fees.

The crossover is roughly 5–10 VPCs depending on traffic patterns. Below: stay on peering. Above: Transit Gateway’s operational simplicity is worth the per-attachment cost.

VPC Lattice: The Modern Service Mesh

VPC Lattice is AWS’s managed service-mesh primitive — service network at $0.025/hour, services at $0.025/hour each, $0.025/GB processed. A 50-service workload on Lattice costs roughly $900/month for the service and network charges, plus data processing.

The comparison vs running Istio on EKS:

  • Istio: no per-service AWS charge, but adds control-plane operational overhead (Istio mesh management, configuration drift, sidecar resource overhead on every pod, certificate management).
  • Lattice: per-service AWS charge, but zero operational overhead — service discovery, auth, observability are managed.

The right choice depends on team capacity. Teams with strong service-mesh operational expertise can run Istio at scale; teams without that capacity will find Lattice’s managed model worth the per-service rate.

When to Use Each VPC Connectivity Pattern

Gateway Endpoints for S3/DynamoDB always; Interface Endpoints for high-volume services; Peering for few VPCs; Transit Gateway for many.

Use when

  • Gateway Endpoints (S3, DynamoDB) in every VPC — free and saves NAT processing
  • Interface Endpoints for services with consistent traffic above ~620 GB/month per AZ
  • VPC Peering when 2–4 VPCs need connectivity — free connections
  • Transit Gateway when 5+ VPCs need full-mesh — operational simplicity outweighs per-attachment cost
  • Site-to-Site VPN for hybrid connectivity under 500 GB/month — cheap entry point
  • Direct Connect when bandwidth exceeds 500 GB/month consistently and latency predictability matters
  • VPC Lattice when service-mesh capability is needed without operating Istio yourselves

Avoid when

  • Public IPv4 addresses left attached when workload could use IPv6 or be consolidated behind ALB/NLB
  • Unattached Elastic IPs — release immediately
  • Interface Endpoints for low-traffic services where NAT Gateway processing would be cheaper
  • VPC Peering scaling beyond 5 VPCs — operational complexity becomes worse than Transit Gateway cost
  • NAT Gateways without S3 + DynamoDB Gateway Endpoints in the VPC — paying NAT processing for traffic that could be free
  • Inter-AZ chatty service pairs without topology-aware routing — silent compounding bill

Most VPC bill problems are configuration choices, not architecture choices. Audit the IPv4 line, the endpoint coverage, and inter-AZ traffic patterns quarterly.

A 30-Day VPC Bill Cleanup Plan

Week 1 — IPv4 audit. Find every public IPv4 address in the account: aws ec2 describe-addresses for EIPs, aws ec2 describe-instances --filters Name=ip-address for instance public IPs. Release unattached EIPs immediately. Consolidate public-facing endpoints behind ALB/NLB where multiple instances currently have their own public IPs.

Week 2 — Add Gateway Endpoints. Audit every VPC for the presence of S3 and DynamoDB Gateway Endpoints. Add to every VPC that doesn’t have them. The change is non-destructive and immediately reduces NAT processing fees for S3/DynamoDB traffic.

Week 3 — Interface Endpoint break-even. For each Interface Endpoint currently provisioned, check actual data processed (CloudWatch metric BytesProcessed per endpoint). If under ~620 GB/month per AZ, consider removing and routing through NAT. Conversely, for high-volume services currently routing through NAT, consider adding an Interface Endpoint.

Week 4 — Inter-AZ topology. For EKS workloads, audit Topology Aware Hints adoption. For chatty service pairs, evaluate explicit single-AZ placement vs the multi-AZ redundancy trade-off. Use VPC Flow Logs to identify the highest-volume inter-AZ traffic patterns.

What This Post Doesn’t Cover

  • NAT Gateway pricing details and alternatives (fck-nat, VPC endpoints, NAT instances) — covered in the dedicated NAT Gateway billing post.
  • Cross-region data transfer rates for specific service pairs — covered in the data transfer costs post.
  • Direct Connect pricing in depth including hosted vs dedicated and LAG configurations — covered in our hybrid connectivity content.
  • VPC Flow Logs cost optimization patterns (S3 vs CloudWatch vs Firehose destinations) — covered in our observability content.

If You Only Do One Thing This Week

Add S3 and DynamoDB Gateway Endpoints to every VPC in your account that doesn’t have them. The change is one IaC line or one CLI command per VPC, costs nothing, and immediately starts saving on NAT Gateway data processing fees for S3 and DynamoDB traffic. Cross-check the NAT Gateway impact in our NAT Gateway billing post — the two changes (Gateway Endpoints + a NAT audit) typically compound to recover 20–40% of the networking-related bill on accounts that haven’t done either recently.

For the broader networking architecture decisions — multi-account network setup, Transit Gateway design, hybrid connectivity — the VPC networking best practices guide covers the design side.

PP
Palaniappan P

AWS Cloud Architect & AI Expert

AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.

AWS ArchitectureCloud MigrationGenAI on AWSCost OptimizationDevOps

Recommended Reading

Explore All Articles »
5 min

Amazon CloudFront Pricing: Regional Tiers, Per-Request Fees, and the Lambda@Edge Surprise

CloudFront bills $0.085/GB egress in North America tiered down to $0.020/GB at extreme volume, plus $0.0075–$0.0100 per 10K requests, plus origin egress. Regional price classes drop the bill 30–60% by skipping expensive geographies. Real-time logs at $0.01 per million entries surprise high-traffic sites. Lambda@Edge is dramatically more expensive than CloudFront Functions.

6 min

Amazon EKS Pricing: The $73 Control Plane, the $438/Month Extended Support Trap, and the Auto Mode Markup

EKS control planes are $73/month per cluster. Stay on a Kubernetes version beyond its 14-month standard support and Extended Support kicks in at +$0.50/hour — $438/month per cluster, a 5× multiplier. EKS Auto Mode adds a ~12% markup over standard EC2 + EBS for managed compute simplicity. The compute side (Karpenter, Spot, Graviton) is where most of the bill lives.

5 min

Amazon GuardDuty Pricing: Nine Data Sources, One Compounding Bill

GuardDuty bills across nine separate data sources — CloudTrail management events at $4/M tiered down, VPC Flow Logs at $1/GB tiered, EKS Runtime Monitoring per vCPU-hour, plus S3, DNS, Lambda, RDS, and Malware Protection. The 30-day free trial regularly hides the true production bill, and organization-wide auto-enable turns every new account into a billing line.