Platform Engineering KPIs That Actually Lower Cloud Spend
Measure platform outcomes that correlate with lower Kubernetes bills instead of vanity DevOps metrics.
Why is your AWS bill so high? It's probably NAT Gateways. Learn the 'Double Dip' trap, see the architecture diagrams, and discover 3 cheaper alternatives.
If you’ve ever opened your AWS bill and gasped at the “EC2-Other” or “VPC” line items, you’ve likely met the NAT Gateway.
It is one of the most notoriously expensive components in the AWS ecosystem. For many data-intensive applications, the NAT Gateway bill actually exceeds the cost of the EC2 instances it serves.
In this guide, we’ll visualize exactly why it’s so expensive, explain the “Double Dip” trap, and give you 3 concrete architectural changes to slash this cost by 50-90%.
[!IMPORTANT] Calculate Your Exact Cost Don’t guess. Use our free Interactive NAT Gateway Cost Calculator to see exactly how much you’re paying based on your traffic.
To understand the cost, you have to understand the traffic flow. Here is how a standard private subnet communicates with the internet:
graph LR subgraph VPC subgraph Private_Subnet EC2[EC2 Instance] end subgraph Public_Subnet NAT[NAT Gateway] end IGW[Internet Gateway] end Internet((Internet))
EC2 -- "$0.01/GB (Cross-AZ)" --> NAT NAT -- "$0.045/GB (Processing)" --> IGW IGW -- "$0.09/GB (Egress)" --> InternetAWS charges for NAT Gateways in two dimensions, but the data path often triggers three separate fees for the same packet of data.
You pay just for having the NAT Gateway provisioned.
You pay for every GB that passes through the gateway.
This is the one people forget. The NAT Gateway fee covers processing, not transfer. You still pay standard Data Transfer Out rates to the internet.
Total Cost for 1GB of Traffic: $0.01 (Cross-AZ) + $0.045 (NAT Proc) + $0.09 (Egress) = $0.145 / GB
That is a 60% markup over standard internet egress, just for using a NAT Gateway.
If you want to save money, you have to stop sending data through the NAT Gateway. Here are the three best ways to do that.
Savings Potential: High (100% for S3/DynamoDB) Complexity: Low
Many applications spend huge amounts of bandwidth talking to AWS services like S3 (downloading images, logs, backups) or DynamoDB.
You do not need a NAT Gateway for this. You can use a Gateway VPC Endpoint.
Action Item: Check your VPC Route Tables immediately. If you don’t see a route to a pl-xxxx prefix (S3 prefix list), you are burning money.
Savings Potential: Medium Complexity: Medium
“Private Subnets for everything” is a security best practice, but it’s not a law. If you have:
…and they are secured properly with Security Groups (allowing traffic only on specific ports), you can move them to a Public Subnet.
Savings Potential: High Complexity: High
Before NAT Gateways existed, we used EC2 instances configured as routers (“NAT Instances”).
t4g.nano). No data processing fee.fck-nat is a popular open-source project that makes this easier.BytesOutToDestination metrics. Find out who is talking.NAT Gateways are a convenience tax. You pay for the convenience of not managing NAT instances and not worrying about IP routing. For low-traffic apps, it’s worth it. For high-bandwidth apps, it’s a budget killer.
Stop guessing. Model your savings now: Go to Calculator →
Founder & CEO
Measure platform outcomes that correlate with lower Kubernetes bills instead of vanity DevOps metrics.
A step-by-step playbook to triage sudden spend spikes and prevent them from happening again.
Every agent you install (Datadog, Splunk, Istio) taxes your CPU and Memory. Learn how to calculate the true cost of your DaemonSets.
Get Kubernetes and ECS cost tactics delivered weekly.