Guida ai costi di Data Transfer su AWS in pillole
17 Dicembre 2025 - 10 min. read
Alessio Gandini
Cloud-native Development Line Manager

Nell’articolo precedente: "Guida ai costi di Data Transfer su AWS in pillole" abbiamo esplorato in dettaglio i costi di network su AWS: data transfer in ingresso e uscita, traffico tra Region e Availability Zone, VPC peering, NAT Gateway e VPC Endpoints. La teoria è chiara.
Ma come si traduce nella pratica?
È il momento di passare dall'astrazione alla realtà. In questo articolo analizzeremo tre scenari reali di complessità crescente, dimostrando come una corretta analisi dei costi di network possa portare a risparmi significativi e decisioni architetturali più consapevoli.
Preparate i vostri Jupyter Notebook: è tempo di fare i conti.
Un'applicazione ospitata su AWS utilizza MongoDB Atlas come database. Attualmente l'accesso avviene tramite endpoint pubblici, ma ci viene chiesto di valutare se convenga investire tempo per configurare un VPC Peering verso la VPC messa a disposizione da MongoDB.
La differenza sostanziale tra le due soluzioni risiede nel percorso di rete:
Consideriamo un'istanza MongoDB M10 (57$/mese) e analizziamo i costi di network per entrambe le soluzioni.
I costi includono:
La formula del costo totale è:
CostSaaS-M10 = ClusterM10 + NAThourly × 730 + V × (NATprocessing + Internetout)
dove V rappresenta il volume di traffico mensile (V assumerà lo stesso significato anche per le successive formule).
MongoDB Atlas non applica costi per il VPC peering. I costi sono limitati al traffico AWS:
Qui sorge una complicazione: le Availability Zone non sono allineate tra account AWS diversi. L'identificatore eu-west-1a nel nostro account non corrisponde necessariamente a eu-west-1a nell'account MongoDB. Senza poter garantire il posizionamento same-AZ, dobbiamo assumere traffico cross-AZ.
La formula diventa:
CostPeering-M10 = ClusterM10 + V × (CrossAZin + CrossAZout)
Nota: il traffico cross-AZ costa $0.01/GB in entrambe le direzioni (ingresso e uscita dall'AZ), per un totale di $0.02/GB sul peering.
Calcoliamo la differenza di costo:
ΔCostM10(V) = CostSaaS-M10 − CostPeering-M10
ΔCostM10(V) = [ClusterM10 + NAThourly × 730 + V × (NATprocessing + Internetout)] − [ClusterM10 + V × (CrossAZin + CrossAZout)]
ΔCostM10(V) = NAThourly × 730 + V × [(NATprocessing + Internetout) − (CrossAZin + CrossAZout)]
ΔCostM10(V) = $35.04 + V × 0.118
Il risultato è sempre positivo: il VPC peering genera un risparmio in ogni scenario di traffico.

Il grafico evidenzia due aspetti fondamentali:
Anche con volumi di traffico molto elevati (oltre 10TB/mese), il costo del data transfer cross-AZ sul peering non raggiunge nemmeno il costo del solo NAT Gateway della soluzione pubblica.
Il VPC peering verso MongoDB Atlas è conveniente dal punto di vista economico in qualsiasi scenario di traffico. Ai benefici economici si aggiungono:
Vale la pena notare che, pur assumendo traffico cross-AZ (scenario peggiore), esiste una probabilità statistica di ottenere un matching same-AZ, che renderebbe il risparmio ancora maggiore grazie all'assenza di costi sul peering.
Un cliente ci commissiona un'architettura per effettuare backup di server on-premise su S3. I requisiti forniti sono:
Il cliente dispone già di una connessione Direct Connect verso AWS con un Transit Gateway configurato.
Come sempre in architettura, è fondamentale validare i requisiti prima di accettarli acriticamente.
Comprendiamo il ragionamento: avendo già investito in un Direct Connect, sembra logico utilizzarlo per ogni caso d'uso. Tuttavia, per il traffico verso S3, AWS fornisce connettività pubblica ottimizzata e, soprattutto, il data transfer IN verso AWS è gratuito.
La domanda diventa: quanto costa realmente questa "privatezza" del traffico?
In questo caso la nostra variabile sarà il volume in GB di cui effettuare mensilmente il backup su S3 Standard.
Il percorso del traffico è:
On-premise → Direct Connect → Transit Gateway → VPC → VPC Endpoint (S3) → S3

I costi includono:
Di conseguenza il costo totale dell’opzione A è:
CostPrivate = DCPortHours + TGAttachmenthourly × 730 + (V × TGprocessing) + S3Storage + S3API
CostPrivate = $219 + $36.50 + (V × $0.02) + S3Storage + API Costs
CostPrivate = $255.50 + (V × $0.02) + S3Storage + API Costs
In realtà, se il Direct Connect è già presente, è possibile escluderlo dal costo totale:
CostPrivate = $36.50 + (V × $0.02) + S3Storage + API Costs
Il percorso è semplicemente:
On-premise → Internet → S3

I costi sono:
CostPublic = S3Storage + S3API
A questo punto risulta molto semplice fare la differenza tra i due costi:
ΔCost(V) = CostPrivate − CostPublic
ΔCost(V) = $36.50 + (V × $0.02)

L'analisi grafica rivela un quadro inequivocabile:
Per completezza, menzioniamo che esiste una terza opzione: utilizzare un AWS Direct Connect Public VIF invece del Private VIF con Transit Gateway. Questa soluzione mantiene il traffico sulla connessione Direct Connect dedicata (evitando il transito su internet pubblico) ma elimina la necessità del Transit Gateway, riducendo significativamente i costi. L'analisi dettagliata di questa opzione esula dagli obiettivi di questo articolo, ma rappresenta un'alternativa interessante per contesti specifici.
L'analisi economica non è l'unico fattore decisionale. La soluzione privata può essere giustificata in presenza di:
Dal punto di vista puramente economico, la soluzione pubblica è superiore in ogni scenario. Il risparmio varia da un fattore 5-10x per piccoli volumi a un fattore 2x per grandi volumi.
Un'organizzazione AWS con decine di account si trova a gestire un elevato numero di NAT Gateway distribuiti. Ogni account ha una VPC con tre NAT Gateway (uno per Availability Zone), generando costi mensili significativi anche in assenza di traffico.
La domanda sorge spontanea: ha senso mantenere NAT Gateway in ogni account, o conviene centralizzare l'egress internet in un account dedicato, raggiungibile dagli altri account tramite Transit Gateway?
Questa decisione architetturale ha implicazioni che vanno oltre il puro aspetto economico:
In questo articolo ci concentreremo esclusivamente sull'analisi economica, ma è fondamentale considerare questi aspetti in una valutazione reale.
Consideriamo un'organizzazione con N account AWS, ognuno con una VPC e tre NAT Gateway (uno per AZ).
Ogni account ha:
CostDistributed = N × (NATper_AZ × AZCount × NAThourly × 730 + Vper_account × NATprocessing) + V × Internetout
Sostituendo alcune variabili arriviamo a:
CostDistributed = N × (3 × $0.048 × 730 + Vper_account × $0.048) + V × Internetout
CostDistributed = N × ($105.12 + Vper_account × $0.048) + InternetEgressCost
Lasciamo il costo del traffico in uscita espresso come variabile, in quanto sarà presente anche nel secondo caso, di conseguenza non è necessario calcolarlo ai fini del confronto.
Architettura:
VPC spoke → Transit Gateway → VPC egress → NAT Gateway → Internet
Costi coinvolti:
CostCentralized = (N + 1) × TGAttachmenthourly × 730 + NATcount × NAThourly × 730 + V × (TGprocessing + NATprocessing + Internetout)
Sostituendo alcune variabili arriviamo a:
CostCentralized = (N + 1) × $0.05 × 730 + 3 × $0.048 × 730 + V × ($0.02 + $0.048) + InternetEgressCost
CostCentralized = (N + 1) × $36.50 + $105.12 + V × $0.068 + InternetEgressCost
CostCentralized = ($36.50 + $105.12) + N × $36.50 + V × $0.068 + InternetEgressCost
CostCentralized = $141.62 + N × $36.50 + V × $0.068 + InternetEgressCost
Ci troviamo di fronte a una funzione con due variabili: traffico e numero di account. Dobbiamo analizzare entrambe.

Fissando il volume di traffico a diversi livelli (1TB, 5TB, 10TB, 50TB, 100TB), osserviamo che:
Se vogliamo invece evitare di fissare la variabile del traffico, un grafico in due dimensioni non basta più, dobbiamo quindi passare da una retta ad un piano. Il grafico tridimensionale offre una visione completa dell'andamento dei costi al variare di entrambe le variabili simultaneamente.

Dal grafico tridimensionale si delinea lo stesso andamento evidenziato in precedenza. Il risparmio massimo si ottiene con un elevato numero di account e basse quantità di traffico.
Questo grafico rende più evidente un’altra informazione interessante: sebbene altissime quantità di traffico possano rendere la centralizzazione dei NAT Gateway poco vantaggiosa in termini economici, a partire dalla decina di account è quasi impossibile trovarsi in questa situazione.
Il grafico tridimensionale, pur completo, può risultare di difficile lettura. Per semplificare la visualizzazione, abbiamo creato un grafico bidimensionale che mostra la differenza di costo (zona verde = risparmio, zona rossa = costo aggiuntivo) in funzione di account e traffico.

L'analisi economica indica chiaramente che la centralizzazione dei NAT Gateway è conveniente nella maggioranza degli scenari reali, in particolare:
Centralizzare è conveniente quando:
La distribuzione può essere preferibile nelle rare situazioni in cui:
Attraverso questi tre casi reali abbiamo mostrato che l'analisi accurata dei costi di network AWS può portare a risparmi significativi e decisioni architetturali più consapevoli. La lezione principale è chiara: mettere in discussione i requisiti iniziali e validarli con dati concreti, anche quando sembrano derivare da scelte logiche o investimenti già effettuati. I costi fissi come NAT Gateway e Transit Gateway hanno un impatto enorme per workload con traffico limitato, mentre la scala dell'organizzazione può ribaltare completamente le convenienze economiche. Il tempo investito nell'ottimizzazione iniziale viene tipicamente ripagato in pochi mesi di operatività.
Proud2beCloud è il blog di beSharp, APN Premier Consulting Partner italiano esperto nella progettazione, implementazione e gestione di infrastrutture Cloud complesse e servizi AWS avanzati. Prima di essere scrittori, siamo Solutions Architect che, dal 2007, lavorano quotidianamente con i servizi AWS. Siamo innovatori alla costante ricerca della soluzione più all'avanguardia per noi e per i nostri clienti. Su Proud2beCloud condividiamo regolarmente i nostri migliori spunti con chi come noi, per lavoro o per passione, lavora con il Cloud di AWS. Partecipa alla discussione!