AWS bill line item
NatGateway-Bytes
You are being charged per gigabyte for every byte that passes through your NAT gateway, on top of its flat hourly uptime charge and on top of any standard data-transfer charge the traffic would incur anyway.
NAT gateway data processing
Verified against official AWS documentation last checked
Why it shows up
NAT gateways are the default egress path for private-subnet resources, so anything a private instance, a task, or a function does over the internet (pulling container images, calling third-party APIs, downloading OS/package updates) is metered here, often invisibly to the engineer who wrote the code.
The classic spike is container image pulls: registry layers, base OS images, and CI/CD artifact downloads routed through NAT can dwarf actual application traffic, especially in clusters with frequent deploys or aggressive auto-scaling.
How to cut it
- Add VPC gateway endpoints for S3 and DynamoDB (no hourly or per-GB charge) and interface endpoints for other AWS services so that traffic never touches the NAT gateway.
- Cache container base images and dependencies in-region rather than re-pulling from the internet on every deploy or scale event.
- Run one NAT gateway per AZ (not one shared gateway) to avoid stacking cross-AZ charges on top of NAT processing charges.
- For high-volume, latency-tolerant batch egress, evaluate whether a self-managed alternative is materially cheaper at your traffic volume.
$0.045 per GB processed — us-east-1; separate from the flat $0.045/hour NAT gateway uptime charge and from any standard data-transfer charge on the same bytes; as of 2026-07
How to read a usage type
NatGateway-Bytes carries no region or direction token, so there's nothing to break down here.
Source
Source: AWS docs →Found NatGateway-Bytes on your own bill?
Drop your Cost Explorer CSV into the AWS Bill Analyzer. It'll flag line items like this one on your own bill and link straight back to the fix.
Analyze your own bill →The meter you don't watch still grows.
Waste rarely hides in the service you check every week. CostMon watches every meter on your stack, including the ones you forgot were running.