Build1 distinct publisher3 min readPublished
NAT Gateway charges $0.045 an hour to exist and $0.045 a gigabyte to work in Virginia and Ohio. Gateway endpoints for S3 and DynamoDB bypass the second meter for free, but only Flow Logs say how much they carry.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
Both meters run at the same rate, which makes the crossover trivial to compute. The $32.85 monthly figure implies a 730-hour month: 0.045 x 730 = 32.85 [1][3][1]. Divide that back by the per-GB rate and you get 730 GB [2]. One terabyte through the gateway is 1024 GB, or $46.08, which already exceeds what the gateway costs to sit there doing nothing [2][3].
What the endpoint actually does is smaller than it sounds. Adding a gateway VPC endpoint puts a route in the subnet's route table, and traffic bound for S3 or DynamoDB takes a private AWS path instead of the default route out through NAT [8]. There is no device to size and no hourly rate: AWS's pricing page states that gateway-type endpoints carry no data-processing or hourly charges [7]. Those bytes leave the metered path rather than moving to a cheaper one.
The ceiling on that win is the destination mix. The traffic blamed for silent growth in the per-GB line includes package installs, container image pulls, telemetry shipped out and cross-region calls, and a gateway endpoint covers none of them [9]. The sequencing in the dev.to playbook concedes as much by putting measurement first: turn on VPC Flow Logs for the NAT'd subnets, look at where the bytes go, and treat a large share of S3 or DynamoDB destinations as the easy win [12]. Cost Explorer grouped by Usage Type splits NatGateway-Hours from NatGateway-Bytes, which separates arithmetic on gateway count from the number worth chasing [11]. On this evidence, S3 and DynamoDB are the only slices with a zero-cost exit; whether they are the largest slice is a per-account fact that Flow Logs settle and a pricing page cannot.
The AZ guidance is where the free advice runs out. AWS says keep resources in the same Availability Zone as the NAT Gateway, or run a gateway in each AZ that has resources, because otherwise traffic crosses the boundary to reach NAT and crosses back, paying inter-AZ transfer on top of processing [10]. Three AZs means three gateways: 3 x 32.85 = $98.55 a month in hours before a byte moves, $65.70 of it bought purely to avoid the boundary [4][5]. Whether that trades well depends on how many gigabytes cross, and the source quotes no inter-AZ transfer rate, so the breakeven is not computable from it.
Region matters more than the Ohio number suggests. In Sao Paulo both meters sit around $0.093 [6], which puts the fixed cost near $67.89 a month per gateway and every processed gigabyte at roughly 2.07 times the Ohio rate [6]. Partial hours bill as full hours, which matters to anyone standing up a VPC per branch [4]. And the processing charge is additive: standard AWS data transfer charges still apply on top [5].
Fifteen minutes in the console decides whether this is a $30 problem or a $3,000 one [14]. Until that runs, the endpoint change is free to make and unquantified in effect, and the line item stays named the same boring thing either way [15]. The rates above are as the dev.to writeup read AWS's VPC pricing and NAT Gateway docs in June 2026 [16].
Ranked by verification strength, evidence, and original report placement.
In us-east-1 (N. Virginia) and us-east-2 (Ohio), NAT Gateway costs $0.045 per NAT Gateway-hour, charged for every hour the gateway is provisioned and available whether or not a single byte moves through it.
NAT Gateway data processing costs $0.045 per GB processed in the same regions, on top of the hourly charge, and applies to every gigabyte inbound or outbound regardless of source or destination.
The hourly charge works out to roughly $32.85 a month per gateway just to keep it available.
Standard AWS data transfer charges still apply on top of NAT Gateway processing charges, which the pricing page mentions almost in passing.
NAT Gateway rates vary by region and run higher in places like Sao Paulo, where both the hourly and per-GB rates sit around $0.093.
Distinct publishers with included, body-backed reporting in this cluster.
1 article · September 6, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
build
Two NAT Gateways nobody asked for: review cloud bills at 100x, not at this month1 distinct publisher
build
A cost-per-request panel inherits the refresh rate of your cloud invoice1 distinct publisher
build
DynamoDB vector indexes remove the second datastore, and the GSI permutation trap with it1 distinct publisher
build
Backblaze B2's $6.95/TB is cheapest under about 7TB. The API gaps decide it sooner.1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Straight off AWS's price list, and no further
The rates come from AWS VPC Pricing and the NAT Gateway documentation, which is exactly where they should come from, and the monthly figures built on them reconcile: $0.045 across a 730-hour month is $32.85, a terabyte at the same rate is $46.08. Two things cap this. The citations are dated to a June 2026 access in a piece published in September, and a price list is a source that changes without notice. Nothing beyond the price list is evidenced at all, so the descriptive claims about NAT rest on AWS's word and the prescriptive ones on the author's.
Not one bill shown
The savings case is arithmetic throughout. No account reports its NAT byte count before and after adding a gateway endpoint, there is no figure for how many VPCs run without one, and the spread the author himself offers runs from $30 to $3,000. Adoption cannot be scored from a rate card.
Title runs hotter than the remedy
A headline about a hidden tax and how to kill it resolves into a route-table entry and a reminder to check your own region, which is a mild overreach rather than a distortion. Two specifics push the gauge positive: the fix is called free while the measurement it depends on, Flow Logs, bills for its own ingest and storage, and the $3,000 illustration has no account behind it. Working the other way, the piece volunteers its own limits, including that gateway endpoints do not serve on-premises networks, cross-region peers or transit gateways, and that low-volume services can cost more behind an interface endpoint than over NAT.
No product waiting at the end of the advice
A self-published developer post with no sponsor, no tool link and nobody whose revenue depends on the reader acting. The remedy it pushes hardest is an AWS-native feature that lowers AWS's own take, which is an awkward thing to astroturf. What remains is the ordinary pull of cost-cutting content on a developer platform, where a bigger number in the title travels further, and that pull shows up in the framing rather than in the rates.
Solid on the rates, thin past them
The rate claims and the arithmetic on top of them are repeatable without hedging. Everything downstream, meaning how much any given account pushes through NAT and what a gateway endpoint recovers, rests on one author's judgement in one post. A reader opening their own region's price list and their own Cost Explorer would move this number more than any amount of additional commentary.