Αν κοιτάξεις προσεκτικά οποιονδήποτε λογαριασμό AWS του 2026, θα δεις κάτι ενοχλητικό: τα data transfer κόστη έχουν μετατραπεί σιωπηλά σε έναν από τους πιο ύπουλους «κρυφούς φόρους» του cloud. Ενώ οι περισσότερες FinOps ομάδες κυνηγούν Savings Plans για EC2 ή κάνουν rightsizing στις RDS instances, μια τυπική production αρχιτεκτονική μπορεί να σπαταλά κάπου ανάμεσα στο 15% και το 25% του συνολικού της λογαριασμού σε χρεώσεις δικτύου — internet egress, cross-AZ traffic, και πάνω απ' όλα στο διαβόητο NAT Gateway processing fee.
Σε αυτόν τον οδηγό θα δούμε πρακτικές στρατηγικές, με κώδικα Terraform και AWS CLI, για να ρίξουμε τα data transfer κόστη έως και 80% — χωρίς να θυσιάσουμε ασφάλεια ή availability. Όλες οι τιμές είναι ενημερωμένες για τον Απρίλιο του 2026.
Γιατί τα Data Transfer Κόστη είναι Τόσο Δύσκολα στον Εντοπισμό
Σε αντίθεση με τα EC2 instances ή τα EBS volumes που εμφανίζονται καθαρά στο Cost Explorer, τα data transfer κόστη είναι κατακερματισμένα σε δεκάδες line items. Ένα μόνο HTTPS request από ένα EKS pod σε ένα ECR registry μπορεί να ενεργοποιήσει ταυτόχρονα:
- Cross-AZ data transfer (αν το pod και το NAT Gateway είναι σε διαφορετικά AZ)
- NAT Gateway hourly fee
- NAT Gateway data processing fee
- Internet egress charge (αν δεν χρησιμοποιείται VPC Endpoint)
Το αποτέλεσμα; Μια Kubernetes εφαρμογή που τραβάει container images συχνά μπορεί να παράγει χιλιάδες ευρώ τον μήνα μόνο σε χρεώσεις NAT — και κανείς δεν το συνειδητοποιεί μέχρι το πρώτο «bill shock» του τριμήνου.
Η Πλήρης Δομή Τιμολόγησης AWS Data Transfer το 2026
Πίνακας Βασικών Χρεώσεων
| Τύπος Μεταφοράς | Κόστος ανά GB | Σχόλια |
|---|---|---|
| Internet Ingress (προς AWS) | $0.00 | Πάντα δωρεάν |
| Internet Egress (πρώτα 10 TB/μήνα) | $0.09 | Πρώτα 100 GB δωρεάν |
| Cross-AZ (κάθε κατεύθυνση) | $0.01 | Χρεώνεται και στις δύο πλευρές |
| Cross-Region | $0.02 - $0.09 | Διαφέρει ανά region pair |
| NAT Gateway Processing | $0.045 | Επιπλέον του egress |
| CloudFront (πρώτα 10 TB) | $0.085 | Συν caching benefits |
| VPC Gateway Endpoint (S3, DynamoDB) | $0.00 | Εντελώς δωρεάν |
| VPC Interface Endpoint (PrivateLink) | $0.01 | Συν $0.01/ώρα ανά AZ |
Ας κάνουμε τα μαθηματικά. Το «πραγματικό» κόστος ενός byte που φεύγει από ένα private subnet προς το internet μέσω NAT Gateway είναι: $0.045 (NAT processing) + $0.09 (egress) = $0.135 ανά GB. Δηλαδή ένα terabyte τον μήνα κοστίζει $135 — και αυτό χωρίς να μετράμε καν τη χρέωση των $0.045/ώρα ($32.40/μήνα) ανά NAT Gateway. Καθόλου αμελητέο.
Στρατηγική #1: VPC Gateway Endpoints για S3 και DynamoDB
Αν διαβάσεις μόνο μία στρατηγική από αυτό το άρθρο, ας είναι αυτή. Τα VPC Gateway Endpoints για S3 και DynamoDB είναι εντελώς δωρεάν — δεν υπάρχει ωριαία χρέωση, ούτε χρέωση ανά GB. Η κίνηση παραμένει στο AWS backbone και δεν περνά ποτέ από το NAT Gateway.
Παράδειγμα Terraform
resource "aws_vpc_endpoint" "s3" {
vpc_id = aws_vpc.main.id
service_name = "com.amazonaws.${var.aws_region}.s3"
vpc_endpoint_type = "Gateway"
route_table_ids = aws_route_table.private[*].id
policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Effect = "Allow"
Principal = "*"
Action = ["s3:GetObject", "s3:PutObject", "s3:ListBucket"]
Resource = [
"arn:aws:s3:::my-app-bucket",
"arn:aws:s3:::my-app-bucket/*"
]
}]
})
tags = {
Name = "s3-gateway-endpoint"
CostCenter = "platform-engineering"
}
}
resource "aws_vpc_endpoint" "dynamodb" {
vpc_id = aws_vpc.main.id
service_name = "com.amazonaws.${var.aws_region}.dynamodb"
vpc_endpoint_type = "Gateway"
route_table_ids = aws_route_table.private[*].id
}
Πραγματικό Παράδειγμα Εξοικονόμησης
Πέρυσι δούλεψα με μια ομάδα που είχε ένα data pipeline να ανεβάζει καθημερινά 5 TB log files στο S3 — μέσω NAT Gateway, φυσικά, γιατί κανείς δεν είχε σκεφτεί κάτι άλλο. Το μηνιαίο κόστος μόνο για το processing ήταν:
5 TB/day × 30 days = 150 TB/month
150,000 GB × $0.045 = $6,750/month σε NAT processing
+ $32.40/month για το NAT Gateway hourly fee
= $6,782.40/month
Μετά την εγκατάσταση ενός Gateway Endpoint για S3 (κυριολεκτικά 15 λεπτά δουλειά με Terraform): $0/μήνα. Ετήσια εξοικονόμηση: $81,388. Δεν σου λέω, ήταν μάλλον το πιο ικανοποιητικό PR της χρονιάς.
Στρατηγική #2: VPC Interface Endpoints για Άλλα AWS Services
Τώρα, τι γίνεται με τα services που δεν υποστηρίζουν Gateway Endpoints — όπως ECR, CloudWatch Logs, SQS, SNS, Secrets Manager, KMS; Εκεί μπαίνουν στο παιχνίδι τα Interface Endpoints (μέσω AWS PrivateLink). Δεν είναι δωρεάν, αλλά είναι σημαντικά φθηνότερα από το NAT Gateway:
- $0.01 ανά ώρα ανά endpoint ανά AZ
- $0.01 ανά GB data processing
Συγκριτικά με τα $0.045/GB του NAT Gateway, μιλάμε για μείωση 78% στο per-GB κόστος. Όχι κακά νούμερα.
Πότε Συμφέρει ένα Interface Endpoint
Το break-even point είναι περίπου 2 TB/μήνα traffic ανά service ανά AZ. Με βάση τον τύπο:
Hourly cost ανά endpoint ανά AZ = $0.01 × 24 × 30 = $7.20/month
Επίπεδο break-even: $7.20 / ($0.045 - $0.01) = ~205 GB/month
Άρα για deployment σε 3 AZ: ~615 GB/month
Αν περνάς λιγότερο από αυτό από το NAT για ένα συγκεκριμένο service, τότε ναι, το Interface Endpoint κοστίζει περισσότερο. Πάνω από αυτό το όριο όμως, αρχίζεις να εξοικονομείς αμέσως.
Παράδειγμα: ECR VPC Endpoints για EKS
locals {
ecr_endpoints = [
"ecr.api",
"ecr.dkr",
"logs",
"sts",
"secretsmanager"
]
}
resource "aws_vpc_endpoint" "interface" {
for_each = toset(local.ecr_endpoints)
vpc_id = aws_vpc.main.id
service_name = "com.amazonaws.${var.aws_region}.${each.key}"
vpc_endpoint_type = "Interface"
subnet_ids = aws_subnet.private[*].id
security_group_ids = [aws_security_group.vpc_endpoints.id]
private_dns_enabled = true
tags = {
Name = "vpce-${replace(each.key, ".", "-")}"
}
}
resource "aws_security_group" "vpc_endpoints" {
name = "vpc-endpoints-sg"
description = "Allow HTTPS from VPC CIDR to VPC endpoints"
vpc_id = aws_vpc.main.id
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = [aws_vpc.main.cidr_block]
}
}
Στρατηγική #3: Εξάλειψη του Cross-AZ Traffic
Το cross-AZ traffic χρεώνεται $0.01/GB σε κάθε κατεύθυνση — δηλαδή $0.02/GB για round-trip. Σε ένα chatty microservices περιβάλλον με χιλιάδες API calls το δευτερόλεπτο, αυτό μπορεί να φτάσει εύκολα τα $1,000+/μήνα. Και αυτό μόνο μεταξύ services που μιλάνε στο ίδιο cluster.
Topology Aware Routing στο Kubernetes
Από το Kubernetes 1.27 και μετά, μπορείς να χρησιμοποιήσεις Topology Aware Routing ώστε να προτιμώνται service endpoints στο ίδιο AZ:
apiVersion: v1
kind: Service
metadata:
name: payment-service
annotations:
service.kubernetes.io/topology-mode: Auto
spec:
selector:
app: payment
ports:
- port: 8080
targetPort: 8080
Σε ένα EKS cluster με 3 AZ και ομοιόμορφη κατανομή pods, αυτή η μικρή αλλαγή μπορεί να μειώσει το cross-AZ traffic κατά ~66%. Μία annotation, μηδέν αλλαγή στον κώδικα της εφαρμογής.
Εντοπισμός των Πιο «Ακριβών» Cross-AZ Flows
Πριν αρχίσεις να κυνηγάς cross-AZ κίνηση, καλό είναι να ξέρεις πού κρύβεται. Ενεργοποίησε VPC Flow Logs σε S3 και χρησιμοποίησε Athena για να βρεις τα πιο πολυσύχναστα cross-AZ flows:
SELECT
srcaddr,
dstaddr,
src_az,
dst_az,
SUM(bytes) / 1024 / 1024 / 1024 AS gb_transferred,
SUM(bytes) / 1024 / 1024 / 1024 * 0.02 AS estimated_cost_usd
FROM vpc_flow_logs
WHERE src_az != dst_az
AND src_az IS NOT NULL
AND dst_az IS NOT NULL
AND date_partition >= date_format(current_date - interval '30' day, '%Y/%m/%d')
GROUP BY srcaddr, dstaddr, src_az, dst_az
ORDER BY gb_transferred DESC
LIMIT 50;
Στρατηγική #4: CloudFront για Internet Egress
Αν εξυπηρετείς στατικό περιεχόμενο, APIs ή ακόμα και HTTPS streaming κατευθείαν από EC2/ALB/S3 προς το internet, σχεδόν πάντα συμφέρει να βάλεις CloudFront μπροστά. Τα οφέλη:
- Φθηνότερη egress τιμή: $0.085/GB έναντι $0.09/GB direct (μικρή μείωση, αλλά υπάρχει).
- Cache hit ratio: 60–80% των requests εξυπηρετούνται από edge — δεν φτάνουν καν στο origin.
- Δωρεάν data transfer από AWS προς CloudFront (χρέωση μόνο για cache misses).
Συνολικά, ένα τυπικό web app μπορεί να μειώσει τις egress χρεώσεις του κατά 50–70% με την προσθήκη CloudFront. Συν το γεγονός ότι οι χρήστες σου παίρνουν χαμηλότερο latency, οπότε win-win.
Παράδειγμα: CloudFront μπροστά από S3 για Static Assets
resource "aws_cloudfront_distribution" "static_assets" {
enabled = true
default_root_object = "index.html"
price_class = "PriceClass_100" # Μόνο NA + EU για χαμηλότερο κόστος
origin {
domain_name = aws_s3_bucket.assets.bucket_regional_domain_name
origin_id = "s3-assets"
origin_access_control_id = aws_cloudfront_origin_access_control.assets.id
}
default_cache_behavior {
target_origin_id = "s3-assets"
viewer_protocol_policy = "redirect-to-https"
allowed_methods = ["GET", "HEAD"]
cached_methods = ["GET", "HEAD"]
compress = true
cache_policy_id = "658327ea-f89d-4fab-a63d-7e88639e58f6"
}
restrictions {
geo_restriction { restriction_type = "none" }
}
viewer_certificate {
cloudfront_default_certificate = true
}
}
Στρατηγική #5: Νέο για το 2026 — Regional NAT Gateway
Στα τέλη του 2025, η AWS παρουσίασε το Regional NAT Gateway, μια νέα λειτουργία που επιτρέπει σε ένα NAT Gateway να εξυπηρετεί ολόκληρο το region αντί για ένα μόνο AZ. Αυτό μειώνει αισθητά το hourly cost σε αναπτύξεις πολλαπλών AZ:
- Παλιά αρχιτεκτονική: 3 NAT Gateways × $32.40 = $97.20/μήνα
- Regional NAT Gateway: 1 × $32.40 = $32.40/μήνα (μείωση 66%)
Μια προειδοποίηση όμως: το data processing fee παραμένει $0.045/GB. Επιπλέον, το Regional NAT Gateway δημιουργεί ένα single point of failure (αν και η AWS υπόσχεται in-region redundancy). Δεν θα το συνιστούσα προσωπικά για αυστηρά mission-critical workloads, εκτός αν έχεις στήσει active-passive backup.
Στρατηγική #6: Συμπίεση Δεδομένων Πριν από τη Μεταφορά
Πολύ συχνά παραμελημένη — αλλά τόσο απλή. Η συμπίεση payloads πριν τα στείλεις. Για JSON APIs, gRPC με Protobuf encoding, ή log shipping στο CloudWatch, η ενεργοποίηση gzip/zstd μειώνει τα bytes κατά 60–85%. Πληρώνεις δηλαδή λιγότερα ευρώ για να μεταφέρεις την ίδια ακριβώς πληροφορία.
Παράδειγμα: gzip σε Application Load Balancer
Στα ALBs, η συμπίεση είναι ήδη ενεργοποιημένη για content types όπως text/html ή application/json — αλλά μόνο εφόσον το upstream την επιστρέψει. Βεβαιώσου ότι το web framework σου στέλνει Content-Encoding: gzip:
# Express.js
const compression = require('compression');
app.use(compression({ level: 6, threshold: 1024 }));
# FastAPI (Python)
from fastapi.middleware.gzip import GZipMiddleware
app.add_middleware(GZipMiddleware, minimum_size=1000)
# Spring Boot (application.yml)
server:
compression:
enabled: true
mime-types: application/json,application/xml,text/html
min-response-size: 1024
Στρατηγική #7: Παρακολούθηση και Cost Allocation
Δεν μπορείς να βελτιστοποιήσεις αυτό που δεν μετράς. Ενεργοποίησε Cost Allocation Tags και χρησιμοποίησε το AWS Cost Explorer με grouping by «API Operation» για να εντοπίσεις τα πιο ακριβά usage types:
aws ce get-cost-and-usage \
--time-period Start=2026-04-01,End=2026-05-01 \
--granularity MONTHLY \
--metrics "UnblendedCost" \
--filter '{"Dimensions": {"Key": "USAGE_TYPE_GROUP", "Values": ["EC2: Data Transfer - Internet (Out)"]}}' \
--group-by Type=DIMENSION,Key=USAGE_TYPE
Αυτή η εντολή θα σου δείξει ακριβώς πόσο πληρώνεις ανά τύπο data transfer — internet, cross-region, cross-AZ, NAT processing — ώστε να εντοπίσεις γρήγορα τους «κυρίαρχους».
Quick Wins Checklist
Δεν έχεις χρόνο για ολόκληρη ανάλυση; Δεν πειράζει. Ξεκίνα με αυτά τα γρήγορα wins, που το καθένα θέλει λιγότερο από μία ώρα δουλειάς:
- Δευτέρα: Δημιούργησε Gateway Endpoints για S3 και DynamoDB σε όλα τα production VPCs (δωρεάν + άμεση εξοικονόμηση)
- Τρίτη: Πρόσθεσε Interface Endpoints για ECR (api + dkr) σε όλα τα clusters με EKS/ECS
- Τετάρτη: Ενεργοποίησε CloudFront σε όλα τα publicly-accessible ALB/S3 origins
- Πέμπτη: Ενεργοποίησε topology-aware routing στα Kubernetes services
- Παρασκευή: Στήσε VPC Flow Logs με Athena για ongoing monitoring
Από τη δική μας εμπειρία, αυτό το πενθήμερο sprint εξοικονομεί τυπικά 30–55% των data transfer χρεώσεων με μηδενική επίπτωση στην εφαρμογή. Όχι κακά για μία εβδομάδα δουλειάς.
Συχνές Ερωτήσεις (FAQ)
Πόσο κοστίζει ένα NAT Gateway στην AWS το 2026;
Ένα NAT Gateway κοστίζει $0.045 ανά ώρα ($32.40/μήνα) συν $0.045 ανά GB data processing. Πάνω σε αυτό προστίθεται και η εξωτερική egress χρέωση των $0.09/GB όταν τα δεδομένα φεύγουν προς το internet. Συνολικά, το πραγματικό κόστος ανά GB μέσω NAT είναι περίπου $0.135.
Είναι τα VPC Endpoints δωρεάν;
Μόνο τα Gateway Endpoints για S3 και DynamoDB είναι εντελώς δωρεάν. Τα Interface Endpoints (PrivateLink) χρεώνονται $0.01/ώρα ανά endpoint ανά AZ συν $0.01/GB processing. Παρόλα αυτά, παραμένουν 78% φθηνότερα από το NAT Gateway για κάθε GB που περνάει.
Πώς μπορώ να δω πόσο πληρώνω για data transfer στο AWS;
Πήγαινε στο AWS Cost Explorer, εφάρμοσε filter για «Usage Type Group: Data Transfer» και κάνε group by «Usage Type». Θα δεις ξεκάθαρα ποιο κομμάτι πάει σε internet egress, NAT processing, cross-AZ ή cross-region traffic. Για deep-dive ανάλυση, ενεργοποίησε VPC Flow Logs και τρέξε queries με Amazon Athena.
Είναι το CloudFront πάντα φθηνότερο από direct egress;
Το CloudFront έχει ελαφρώς χαμηλότερη egress τιμή ($0.085 vs $0.09 ανά GB), αλλά το πραγματικό όφελος έρχεται από το caching. Με ένα cache hit ratio 70%, μόνο το 30% των requests φτάνει στο origin — που σημαίνει 70% λιγότερη egress χρέωση συνολικά. Επιπλέον, η μεταφορά από AWS origins προς CloudFront είναι δωρεάν.
Μπορώ να αποφύγω εντελώς το NAT Gateway;
Σε πολλές περιπτώσεις, ναι. Αν το workload σου μιλάει αποκλειστικά με AWS services, μπορείς να το αντικαταστήσεις με συνδυασμό Gateway Endpoints (S3, DynamoDB) και Interface Endpoints για όλα τα υπόλοιπα. Αν χρειάζεσαι επικοινωνία με third-party APIs, εναλλακτικές είναι: NAT Instance πάνω σε φθηνό t4g.nano (~$3/μήνα + processing), fck-nat open-source λύση, ή AWS Direct Connect για όγκους πάνω από 50 TB/μήνα.