Optimizacija troškova NAT Gatewaya: kako smanjiti mrežne naknade na AWS-u, Azureu i GCP-u (2026.)

Vodič za smanjenje NAT Gateway troškova na AWS-u, Azureu i GCP-u u 2026.: VPC Endpointi, Private Google Access, tagging i konkretni Terraform/CLI primjeri koji smanjuju račun za 40 do 70%.

NAT Gateway troškovi: Ušteda (2026.)

Ažurirano: 9. rujna 2026.

NAT Gateway troškovi na AWS-u, Azureu i GCP-u smanjuju se prvenstveno rutiranjem prometa prema managed servisima kroz besplatne ili jeftinije VPC Endpointe (Gateway Endpoint za S3/DynamoDB, PrivateLink Interface Endpointi, Azure Private Endpointi, Private Google Access), konsolidacijom NAT Gatewayeva po regiji umjesto po AZ-u tamo gdje je resiliency prihvatljiv, i dosljednim praćenjem per-GB naknade obradom VPC Flow Logs-a. U prosjeku, tim koji ne dira ovaj sloj plaća 30–60% previše, a u multi-account setupu s desecima VPC-jeva to je četveroznamenkasti račun mjesečno.

  • AWS NAT Gateway naplaćuje 0,045 USD/h po gatewayu plus 0,045 USD po GB obrađenog prometa; per-GB naknada gotovo uvijek dominira računom.
  • S3 i DynamoDB promet unutar iste regije treba ići kroz Gateway VPC Endpoint (besplatan). To je jedan od dva najbrža zero-risk quick-winsa.
  • Karpenter, EKS worker čvorovi i Fargate zadaci koji povlače container imagese iz ECR-a preko NAT-a čest su skriveni krivac za tisuće GB-a mjesečno.
  • Azure NAT Gateway naplaćuje 0,045 USD/h + 0,045 USD/GB; Private Endpointi i Service Endpointi uklanjaju veći dio potrebe za njim.
  • GCP Cloud NAT je 0,044 USD/h po gatewayu (per VM tier) plus 0,045 USD/GB. Private Google Access uklanja NAT za Google API pozive.
  • Jedan NAT Gateway po regiji (umjesto po AZ) štedi do 66% na hourly komponenti, ali povećava blast radius pri AZ ispadu, pa odlučujte po workloadu.

Kako se NAT Gateway zapravo naplaćuje

Svaki od tri velika providera koristi istu dvokomponentnu formulu: fiksna satnica po gatewayu plus varijabilna naknada po obrađenom gigabajtu. U svom fleetu (28 AWS accounta, sedam regija) vidim da je omjer u prosjeku 20:80 u korist per-GB komponente, a to znači da će brisanje suvišnih gatewayeva donijeti manje uštede nego smanjenje prometa kroz njih.

Na AWS-u u regiji eu-central-1 plaćate 0,045 USD po satu (≈ 32,85 USD mjesečno) po NAT Gatewayu i 0,045 USD po GB obrađenog prometa, bez obzira ide li promet prema Internetu ili prema drugom VPC-u. Napominjem: ta 0,045 USD/GB naknada je dodatna na standardnu data transfer out cijenu ako promet napušta AWS. Detalje potvrdite u službenom AWS VPC pricing dokumentu.

Azure NAT Gateway u West Europe košta 0,045 USD/h po resursu i 0,045 USD/GB obrađenih podataka. GCP Cloud NAT ima blago drukčiji model: 0,044 USD po satu po NAT gatewayu i po VM instanci koja ga koristi, plus 0,045 USD/GB. To znači da klaster od 20 čvorova plaća 20× hourly komponentu, što se brzo akumulira ako to niste primijetili.

U mojim spreadsheetima za planiranje uvijek razdvajam ta dva reda: hourly per gateway, per-GB processed. Osamdeset posto vaše optimizacije bit će na drugom retku, pa tamo trošite pažnju.

Kako pronaći koji resursi troše NAT promet

Prije bilo kakve optimizacije trebate podatke. NAT Gateway CloudWatch metrike (BytesOutToDestination, BytesInFromSource) pokazuju agregat, ali ne kažu tko je poslao 400 GB u nedjelju popodne. Odgovor je u VPC Flow Logs-u uz analizu preko Athene ili Amazon Athena Query-ja nad Parquet formatom.

-- Athena: top 20 privatnih IP-jeva koji su generirali odlazni promet kroz NAT ENI-je
-- Zamijenite <flow_logs_table> i ENI ID-jeve svojih NAT Gatewayeva.
SELECT
  srcaddr                       AS private_ip,
  SUM(bytes) / 1024 / 1024 / 1024 AS gb_sent,
  SUM(bytes) * 0.045 / 1024 / 1024 / 1024 AS estimated_usd
FROM <flow_logs_table>
WHERE interface_id IN ('eni-0aaa111', 'eni-0bbb222')
  AND action = 'ACCEPT'
  AND start >= to_unixtime(current_date - interval '7' day)
GROUP BY srcaddr
ORDER BY gb_sent DESC
LIMIT 20;

Honestly, ovaj query mi u sedam od deset slučajeva odmah pokaže tri stalna krivca: worker čvorove koji vuku container imagese, backup agente koji šalju snapshotove i CI runnere koji npm install-om pokupe sto megabajta node_modules pri svakom buildu. Kada te tri kategorije adresirate, promet padne za 40–70%.

Na Azureu ekvivalent su NSG Flow Logs i Traffic Analytics. Na GCP-u koristite VPC Flow Logs uz BigQuery export. Obje analize slijede istu logiku: grupirajte po izvornoj adresi ili tagu, sortirajte po volumenu, prevedite u dolare.

VPC Endpointi: zero-risk quick win

Gateway VPC Endpointi za S3 i DynamoDB na AWS-u su besplatni, dodaju se u nekoliko minuta i preusmjeravaju promet unutar AWS backbone-a, što znači nula NAT naknade i nula data transfer naknade unutar iste regije. Ako se pitate zašto to nije uključeno by default: nije, jer AWS ne mijenja postojeće route tables bez vaše naredbe. Detalje su dobro sažeti u službenoj VPC Endpoint dokumentaciji.

# Terraform: Gateway Endpointi za S3 i DynamoDB (besplatni)
resource "aws_vpc_endpoint" "s3" {
  vpc_id            = aws_vpc.main.id
  service_name      = "com.amazonaws.${var.region}.s3"
  vpc_endpoint_type = "Gateway"
  route_table_ids   = aws_route_table.private[*].id

  tags = {
    Name       = "s3-gateway-endpoint"
    CostCenter = "platform"
  }
}

resource "aws_vpc_endpoint" "dynamodb" {
  vpc_id            = aws_vpc.main.id
  service_name      = "com.amazonaws.${var.region}.dynamodb"
  vpc_endpoint_type = "Gateway"
  route_table_ids   = aws_route_table.private[*].id
}

Za ostale servise (ECR, SSM, Secrets Manager, STS, CloudWatch Logs) koristite Interface Endpointe preko PrivateLinka. Nisu besplatni; plaćate 0,01 USD/h po AZ-u u kojem su dostupni plus 0,01 USD/GB, ali su gotovo uvijek jeftiniji od NAT Gateway naknade od 0,045 USD/GB. Break-even je već kod ~250 GB mjesečno po servisu.

U jednom multi-account setupu koji sam nedavno konsolidirala, dodavanje pet Interface Endpointa (ECR API, ECR DKR, SSM, Logs, STS) po VPC-u smanjilo je NAT per-GB potrošnju za 62%. Ušteda je pokrila samu cijenu endpointa unutar prvog tjedna.

AWS: konkretne strategije i skripte

Prva stvar koju radim u novom accountu je popis svih NAT Gatewayeva s njihovim tagovima i mjesečnom potrošnjom. Skripta koja to radi:

#!/usr/bin/env bash
# Popis svih NAT Gatewayeva u svim regijama uz tagove
for region in $(aws ec2 describe-regions --query 'Regions[].RegionName' --output text); do
  aws ec2 describe-nat-gateways --region "$region" \
    --query 'NatGateways[?State==`available`].[NatGatewayId,VpcId,SubnetId,Tags]' \
    --output json \
    | jq -r --arg r "$region" '.[] | [$r, .[0], .[1], .[2]] | @tsv'
done

Sljedeći korak je unakrsna referenca s Cost and Usage Reportom (CUR). Grupirajte po lineItem/ResourceId filtrirajući product/productFamily = 'NAT Gateway'. To vam da mjesečnu potrošnju po pojedinom NAT-u, po hourly i per-GB komponentama odvojeno. Bez tog razdvajanja teško je znati što ciljate.

Za rijetko korištene development VPC-jeve razmislite o NAT Instanci: self-managed EC2 s t4g.nano može biti 3–5× jeftiniji od managed NAT Gatewaya za male promete, ali gubite HA i managed patching. Ja to koristim samo u ephemeral okruženjima koja se dižu za review environmente. Za produkciju, nikada.

Također, ako vidite da vaš promet ide prema drugom AWS accountu unutar iste regije, razmotrite VPC Peering ili Transit Gateway: cross-account promet preko peeringa je 0,01 USD/GB naprama 0,045 USD/GB kroz NAT plus egress. Više o egress obrascima pokrila sam u vodiču za optimizaciju egress prometa.

Azure NAT Gateway i Private Endpointi

Azure NAT Gateway (naslijedio je javnu IP outbound funkcionalnost od Basic Load Balancera koji je deprecated od rujna 2025.) košta 0,045 USD/h po instanci i 0,045 USD/GB obrađenih podataka. Cijene je najbolje potvrditi u službenoj Azure networking pricing tablici.

Ključna razlika naspram AWS-a: Azure aktivno gura Private Endpointe za PaaS servise (Storage, SQL, Key Vault, Service Bus). Kad Private Endpoint postavite u istu virtualnu mrežu kao vaš workload, promet ne prolazi kroz NAT Gateway. Putuje kroz Microsoft backbone i naplaćuje se po Private Link tarifi (0,01 USD/h + 0,01 USD/GB). Break-even naspram NAT-a je kod ~285 GB mjesečno po endpointu, što većina produkcijskih workloada premašuje u prvom danu.

Service Endpointi su besplatna alternativa za manje osjetljive workloade (Storage, SQL, Cosmos, KeyVault). Ne pružaju jednaku razinu izolacije kao Private Endpointi (koriste public IP-ove servisa, samo bez izlaza kroz NAT), ali za low-risk internal traffic potpuno su dovoljni.

# Azure CLI: primijeni Service Endpointe za Storage i SQL na subnetu
az network vnet subnet update \
  --resource-group prod-rg \
  --vnet-name prod-vnet \
  --name workload-subnet \
  --service-endpoints Microsoft.Storage Microsoft.Sql

Kombinacija Private Endpointa za osjetljive servise plus Service Endpointa za low-risk workloadove u praksi eliminira 70–90% NAT prometa u većini Azure setupova koje vidim.

GCP Cloud NAT i Private Google Access

GCP Cloud NAT ima strukturu naknade koja iznenađuje one koji su navikli samo na AWS: 0,044 USD/h po NAT gatewayu po VM instanci. To znači da vas 50 čvorova iza jednog Cloud NAT-a košta 50 × 0,044 USD/h, ne 1 × 0,044 USD/h. U klasteru s Karpenterovim autoscalingom ta se komponenta zna udvostručiti preko noći bez upozorenja. Detalji su u službenoj Cloud NAT dokumentaciji.

Dobra vijest: Private Google Access uklanja potrebu za NAT-om kada VM u privatnom subnetu poziva Google API (Cloud Storage, BigQuery, Artifact Registry, Pub/Sub itd.). Uključivanje je jedan flag na subnetu:

gcloud compute networks subnets update prod-subnet \
  --region europe-west3 \
  --enable-private-ip-google-access

Za privatni pristup vlastitim servisima u drugoj VPC-u koristite Private Service Connect. Cijena je 0,01 USD/h po endpointu, a promet ide kroz Google backbone bez NAT naknade. U jednom GKE klasteru s 40 čvorova koji je hvatao container imagese iz Artifact Registry-ja, uključivanje Private Google Access-a smanjilo je Cloud NAT per-GB naknadu za 78% u prvom tjednu.

Jedan NAT po AZ ili po regiji?

Standardni AWS reference architecture preporučuje jedan NAT Gateway po Availability Zone, troje u regiji s tri AZ-a. To je 3 × 32,85 = 98,55 USD/mj samo za hourly komponentu. Za produkciju sa strogim SLA-om to je opravdano; za dev, staging ili low-traffic internal servise često nije.

Alternativa: jedan NAT Gateway po regiji, s route tablesima svih privatnih subneta koji pokazuju na njega. Uštedite 66% na hourly dijelu, ali ako AZ u kojem se NAT nalazi ispadne, gube svi. Za većinu non-produkcijskih VPC-jeva to je prihvatljiv trade-off.

KarakteristikaNAT po AZNAT po regiji
Mjesečni fiksni trošak (3 AZ)~98,55 USD~32,85 USD
Cross-AZ data transfer0 USD/GB0,01 USD/GB
HA pri AZ ispaduDaNe (jedan SPOF)
Preporučeno zaProdukcijaDev, staging, sandbox
Uštedu vidite kadan/aFiksni trošak > per-GB

Pažnja: NAT po regiji uvodi cross-AZ data transfer od 0,01 USD/GB kad workload iz AZ-a A ide na NAT u AZ-u B. Ako je vaš promet volumetričan, ta naknada može anulirati uštedu na hourly komponenti, pa spreadsheet mora obračunati oboje prije odluke.

Kubernetes klasteri i NAT: skriveni krivac

Ovo je najčešća priča koju vidim u FinOps auditima. EKS ili GKE klaster s Karpenterom koji pri svakom autoscale eventu skida par gigabajta container imagesa iz javnog registryja kroz NAT. Trideset pull-ova na dan × 2 GB = 60 GB × 0,045 USD = 2,70 USD dnevno, ili 81 USD mjesečno, samo za jedan namespace.

U jednom projektu prošli kvartal upravo je ovaj obrazac činio 43% ukupnog NAT računa jednog scale-up klijenta. Bili su iskreno šokirani kad smo im pokazali brojke, jer nitko nije mislio da docker pull može značiti stotine dolara mjesečno.

Mitigacije po prioritetu:

  1. ECR/Artifact Registry Interface Endpoint (AWS/GCP) ili Azure Container Registry Private Endpoint: imagesi se povlače kroz PrivateLink umjesto NAT-a.
  2. Image caching na node-u: koristite node-local registry mirror (Harbor, Zot) da smanjite broj pullova s regije.
  3. Smaller base images: Alpine, distroless ili scratch smanjuju svaki pull s 500 MB na 30 MB.
  4. Node lifetime tuning: Karpenter consolidation koji radi svakih 30 sekundi može hiperagilno rušiti i dizati čvorove; postavite razuman expiration od nekoliko sati za stabilne workloade.

Više o troškovima Kubernetesa i uzorcima autoscalinga pokrila sam u vodiču za optimizaciju troškova Kubernetesa.

Tagiranje i alokacija NAT troškova

U multi-account setupu problem nije samo koliko NAT košta, nego kome ga naplatiti. NAT Gateway ne prenosi tagove s VPC-a ili subneta na line iteme, pa ako niste eksplicitno tagirali sam NAT resurs s CostCenter ili Team, alokacija je noćna mora.

Preporuka je: automatiziranom pravilo u Terraformu (ili SCP-om kroz AWS Organizations) prisilite da svaki NAT Gateway ima obavezne tagove Environment, Team i CostCenter. U Cost and Usage Reportu ti se tagovi propagiraju na svaki line item i showback izvještaj postaje trivijalan.

Detaljnu strategiju označavanja resursa (uključujući kako popuniti povijesne stavke bez ponovnog stvaranja resursa) razradila sam u posebnom vodiču za tagging strategiju. Alocirajte prije nego što optimizirate; inače pregovarate u mraku.

Uz alokaciju, uključite i anomaly detection na NAT liniji. Nagli skok od 500 GB/dan gotovo uvijek znači loop u aplikaciji ili proces koji je slučajno počeo pisati logove u S3 iz krivog VPC-a. Kako postaviti alertove pokrila sam u vodiču za detekciju anomalija u cloud troškovima.

Česta pitanja

Koliko točno košta AWS NAT Gateway u 2026.?

U većini AWS regija cijena je 0,045 USD po satu po NAT Gatewayu plus 0,045 USD po GB obrađenih podataka. Za jedan NAT koji neprestano radi to je ~32,85 USD mjesečno prije bilo kakvog prometa; per-GB komponenta obično čini 60–80% konačnog računa.

Koja je razlika između NAT Gatewaya i VPC Endpointa?

NAT Gateway omogućava resursima u privatnom subnetu odlazni pristup Internetu, a plaća se po satu i po GB. VPC Endpoint omogućava privatni pristup specifičnim AWS servisima bez izlaska iz AWS mreže. Gateway Endpointi (S3, DynamoDB) su besplatni, Interface Endpointi koštaju 0,01 USD/h + 0,01 USD/GB.

Trebam li NAT Gateway u svakoj Availability Zone?

Za produkcijske workloade s HA zahtjevima da, jedan NAT po AZ eliminira single point of failure. Za dev, staging i sandbox okruženja jedan NAT po regiji je legitimna optimizacija koja štedi do 66% na hourly komponenti; morate samo prihvatiti dodatnu cross-AZ data transfer naknadu od 0,01 USD/GB i mogući ispad pri AZ događaju.

Kako pratiti koji resurs troši najviše NAT prometa?

Uključite VPC Flow Logs za ENI-je NAT Gatewaya, exportirajte ih u S3, i pokrenite Athena query koji grupira bytes po srcaddr. Dobit ćete top 20 privatnih IP-jeva rangiranih po volumenu. Ekvivalent je NSG Flow Logs + Traffic Analytics na Azureu i VPC Flow Logs + BigQuery na GCP-u.

Je li NAT Instanca jeftinija od NAT Gatewaya?

Za male promete (do ~500 GB mjesečno) NAT Instanca na t4g.nano može biti 3–5× jeftinija, ali gubite managed HA, automatsko skaliranje, patchevi i CloudWatch metrike. Preporučam je samo za ephemeral dev okruženja; produkciju držite na managed NAT Gatewayu.

Sara Al-Mahmoud
O Autoru Sara Al-Mahmoud

Cloud cost architect specialising in the gnarly multi-account, multi-region setups. Spreadsheet enthusiast.