AWS-Datentransferkosten entstehen dort, wo Daten eine Grenze überschreiten: zwischen Availability Zones, zwischen Regionen, ins Internet oder durch ein NAT Gateway. Die Rechnung nennt dafür keine Anwendung, sondern einen Usage Type wie EUC1-DataTransfer-Regional-Bytes. Wer AWS Datentransfer Kosten erklären will, ordnet deshalb zuerst jede Zeile im Cost and Usage Report (CUR) 2.0 einem Netzwerkpfad zu und sucht danach mit VPC Flow Logs die Workload, die diesen Pfad benutzt.

Welche Datenwege AWS berechnet

Die Tabelle zeigt die wichtigsten Pfade, das Muster, unter dem sie im CUR erscheinen, und den Listenpreis für eu-central-1 (Frankfurt). Die Preise stammen aus der AWS Price List API, Stand 10. Oktober 2026, in USD ohne Umsatzsteuer; verhandelte Rabatte senken sie.

PfadUsage Type (Frankfurt)Listenpreis eu-central-1
Internet-AusgangEUC1-DataTransfer-Out-Bytes0,09 USD/GB für die ersten 10 TB im Monat nach dem Freikontingent, danach gestaffelt
Eingang aus dem InternetEUC1-DataTransfer-In-Byteskostenlos
Zwischen Availability Zones, auch über öffentliche oder Elastic IPs in der RegionEUC1-DataTransfer-Regional-Bytes0,01 USD/GB je Richtung
Frankfurt nach IrlandEUC1-EU-AWS-Out-Bytes, Gegenzeile EU-EUC1-AWS-In-Bytes in Irland ohne Kosten0,02 USD/GB
NAT Gateway, zonalEUC1-NatGateway-Hours, EUC1-NatGateway-Bytes0,052 USD je Stunde und 0,052 USD/GB verarbeitet
NAT Gateway, regionalEUC1-RegionalNatGateway-Hours, EUC1-RegionalNatGateway-Bytes0,052 USD je Stunde und AZ, 0,052 USD/GB
Interface Endpoint (PrivateLink)EUC1-VpcEndpoint-Hours, EUC1-VpcEndpoint-Bytes0,012 USD je Stunde und AZ, 0,01 USD/GB im ersten PB
Region zu CloudFront (Origin Fetch)EUC1-CloudFront-Out-Bytes0,00 USD/GB

Drei Regeln aus den AWS-Preisseiten erklären viele Überraschungen. Erstens sind 100 GB Internet-Ausgang pro Monat frei, aber aggregiert über alle Services und Regionen außer China und GovCloud, nicht je Region. Zweitens ist Verkehr zwischen S3 und EC2 in derselben Region kostenlos, solange kein weiterer Dienst im Pfad liegt: Läuft er durch ein NAT Gateway, fällt dessen Datenverarbeitung an. AWS rechnet genau dieses Beispiel auf der VPC-Preisseite vor. Drittens können EU-Kunden laut AWS für berechtigte Anwendungsfälle unter dem EU Data Act reduzierte Transferpreise beim Support anfragen; was der Data Act für Wechselkosten bedeutet, beschreibt EU Data Act: Cloud-Wechselkosten vor 2027 richtig planen.

So lesen Sie Transferzeilen im CUR 2.0

Ein Byte erzeugt oft mehrere Zeilen. AWS dokumentiert die Muster in „Understanding data transfer charges“:

  • Zwischen Regionen entstehen zwei Zeilen. Die -AWS-In-Bytes-Zeile der Zielregion kostet nichts, berechnet wird die -AWS-Out-Bytes-Zeile der Quellregion.
  • Zwischen AZs berechnet AWS für jede gemessene Ressource Eingang und Ausgang. Sie sehen also zwei DataTransfer-Regional-Bytes-Zeilen, und beide kosten.
  • Ohne Regionspräfix, etwa DataTransfer-Out-Bytes, steht die Zeile für US East (N. Virginia).
  • Irland heißt in Usage Types EU, London EUW2. EUC1-EU-AWS-Out-Bytes ist also Frankfurt nach Irland.
  • CloudFront nutzt ähnliche Namen wie EU-DataTransfer-Out-Bytes; hier meint EU die europäischen Edge-Standorte. Unterscheiden Sie über line_item_product_code (AmazonCloudFront).
Zwischen Regionen: ein Transfer, zwei ZeilenZwischen Availability Zones: ein Transfer, zwei ZeilenQuellregion: -AWS-Out-Bytes, berechnetZielregion: -AWS-In-Bytes, kostenlosAbsender: Regional-Bytes, berechnetEmpfänger: Regional-Bytes, berechnet
Ein Transfer, mehrere Zeilen: zwischen Regionen kostet nur die Out-Zeile der Quellregion, zwischen Availability Zones kosten die Zeilen beider Ressourcen

Für die Auswertung brauchen Sie neben line_item_usage_type die statischen CUR-2.0-Spalten product_from_location, product_to_location, product_from_region_code und product_to_region_code. Die Spalte line_item_resource_id existiert nur, wenn der Export mit der Tabellenkonfiguration INCLUDE_RESOURCES angelegt wurde. Wenn Sie noch zwischen CUR 2.0 und FOCUS entscheiden, hilft AWS CUR 2.0 oder FOCUS 1.2: den richtigen Kostenexport wählen.

SQL: Transferkosten nach Pfad und Ressource

Die Abfrage läuft in Athena gegen eine CUR-2.0-Tabelle und listet die teuersten Kombinationen aus Konto, Service, Pfad und Ressource eines Abrechnungsmonats.

-- cur2: Ihre Athena-Tabelle des CUR-2.0-Exports
SELECT
  line_item_usage_account_id,
  line_item_product_code,
  line_item_usage_type,
  product_from_location,
  product_to_location,
  line_item_resource_id,
  pricing_unit,
  ROUND(SUM(line_item_usage_amount), 2)   AS menge,
  ROUND(SUM(line_item_unblended_cost), 2) AS kosten
FROM cur2
WHERE bill_billing_period_start_date = TIMESTAMP '2026-09-01 00:00:00'
  AND line_item_line_item_type = 'Usage'
  AND (   line_item_usage_type LIKE '%DataTransfer%'
       OR line_item_usage_type LIKE '%-AWS-Out-Bytes'
       OR line_item_usage_type LIKE '%NatGateway%'
       OR line_item_usage_type LIKE '%VpcEndpoint%')
GROUP BY 1, 2, 3, 4, 5, 6, 7
HAVING SUM(line_item_unblended_cost) > 0
ORDER BY kosten DESC
LIMIT 50;

Lesen Sie Menge immer zusammen mit der Einheit: NAT- und Endpoint-Stunden stehen in Stunden, Transferzeilen in GB. Ist Ihre Tabelle nach Abrechnungsperiode partitioniert, ergänzen Sie den Partitionsfilter, damit Athena weniger scannt. Rabatte stehen als eigene Zeilen vom Typ Discount im Export; die Kosten nach Rabatt zeigt line_item_net_unblended_cost, die nur vorhanden ist, wenn Ihr Konto im Zeitraum einen Rabatt hatte.

Ohne SQL: Cost Explorer in fünf Schritten

  1. Öffnen Sie Cost Explorer, wählen Sie die letzten drei abgeschlossenen Monate und monatliche Granularität.
  2. Filtern Sie unter Usage type group auf die EC2-Gruppen für Datentransfer und NAT Gateway; ihre Namen beginnen mit „EC2: Data Transfer“ und „EC2: NAT Gateway“.
  3. Gruppieren Sie nach Usage type, danach nacheinander nach Linked account und Region.
  4. Usage type groups gibt es nur für DynamoDB, EC2, ElastiCache, RDS, Redshift und S3. Für andere Services filtern Sie direkt unter Usage type nach Einträgen mit Bytes.
  5. Für Ressourcen-IDs aktivieren Sie in den Cost-Management-Einstellungen Ressourcendaten mit täglicher Granularität. Sie decken die letzten 14 Tage ab und stehen innerhalb von 48 Stunden bereit; für längere Zeiträume bleibt der CUR die Quelle.

Wer den Verkehr erzeugt: VPC Flow Logs

Die Rechnung sagt, welches NAT Gateway wie viele GB verarbeitet hat, aber nicht, welche Instanz oder welcher Pod sie geschickt hat. Ein Flow Log auf der Netzwerkschnittstelle des NAT Gateways beantwortet das.

CUR-Zeile: verarbeitete GB je NAT Gateway, kein AbsenderFlow Log auf der Netzwerkschnittstelle des Gatewayspkt-srcaddr: die Instanz oder der Pod, der die Bytes geschickt hatpkt-dst-aws-service: S3 oder DYNAMODB, ein Gateway Endpoint könnte den Verkehr übernehmenaz-id: ein Gateway in einer anderen AZ als der Absender kostet zusätzlich Regional-Bytes
Von der Rechnung zum Absender: das CUR nennt das Gateway, das Flow Log auf seiner Netzwerkschnittstelle nennt Adresse, Zieldienst und Zone

Netzwerkschnittstelle des NAT Gateways ermitteln:

aws ec2 describe-nat-gateways --nat-gateway-ids nat-0123456789abcdef0 \
  --query 'NatGateways[].NatGatewayAddresses[].NetworkInterfaceId' --output text

Flow Log mit Paketadressen, Ziel-Service und AZ als Parquet nach S3:

aws ec2 create-flow-logs \
  --resource-type NetworkInterface \
  --resource-ids eni-0123456789abcdef0 \
  --traffic-type ALL \
  --log-destination-type s3 \
  --log-destination arn:aws:s3:::example-flow-logs/nat/ \
  --log-format '${interface-id} ${flow-direction} ${pkt-srcaddr} ${pkt-dstaddr} ${pkt-dst-aws-service} ${az-id} ${traffic-path} ${bytes} ${start} ${end}' \
  --max-aggregation-interval 60 \
  --destination-options FileFormat=parquet,PerHourPartition=true

Für ein regionales NAT Gateway kennt create-flow-logs den Ressourcentyp RegionalNatGateway. So deuten Sie die Felder:

  • pkt-srcaddr ist die ursprüngliche private IP hinter dem NAT Gateway, bei EKS auch die Pod-IP. Summieren Sie bytes je Adresse und ordnen Sie die größten Absender Instanzen oder Pods zu.
  • pkt-dst-aws-service mit S3 oder DYNAMODB zeigt Verkehr, den ein Gateway Endpoint übernehmen könnte.
  • Liegt die az-id des NAT Gateways in einer anderen AZ als das Subnetz des Absenders, zahlen Sie zusätzlich DataTransfer-Regional-Bytes.
  • Für andere Pfade legen Sie das Flow Log auf VPC oder Subnetz. traffic-path zeigt bei ausgehendem Verkehr den Weg, etwa 8 für Internet Gateway, 7 für Gateway Endpoint, 4 und 5 für Peering in derselben oder einer anderen Region.

Flow Logs kosten selbst Gebühren für Vended Logs. Begrenzen Sie Schnittstelle und Zeitraum. IP-Adressen externer Nutzer können personenbezogene Daten sein; legen Sie Aufbewahrung und Zugriff mit Ihrer Datenschutzverantwortlichen fest.

Maßnahmen und ihre Gegenkosten

BefundMaßnahmeGegenkosten und Risiko
NAT-Bytes zu S3 oder DynamoDB in derselben RegionGateway Endpoint in den Route Tables der privaten Subnetzekeine Gebühr; wirkt nur in derselben Region; Endpoint-Policy prüfen
NAT-Bytes zu anderen AWS-Services wie ECR oder CloudWatch LogsInterface Endpoint je ServiceStundenpreis je AZ und GB-Preis, lohnt nur oberhalb der Break-even-Menge
Regional-Bytes zwischen Workload und NAT GatewayNAT Gateway je AZ oder regionales NAT Gatewayzusätzliche NAT-Stunden je AZ
Regional-Bytes zwischen DienstenVerkehr in der AZ halten, etwa mit topologiebewusstem Routingweniger Reserve, wenn eine AZ ausfällt
Regional-Bytes über öffentliche IPs innerhalb der Regionprivate Adressen und interne DNS-NamenKonfigurationsaufwand
Inter-Region-OutReplikation filtern, aus der lokalen Kopie lesenRecovery- und Latenzanforderungen
Internet-Ausgang aus EC2, S3 oder Load BalancerCloudFront vor den Origin, Komprimierung, CachingCloudFront hat eigene Preise, nutzungsbasiert oder als Flatrate-Tarif

Für einen Interface Endpoint gilt pro Service: Er lohnt sich, wenn GB pro Monat × (NAT-Preis je GB − Endpoint-Preis je GB) größer ist als Anzahl AZs × Stunden im Monat × Endpoint-Preis je Stunde. Setzen Sie die Preise Ihres Vertrags ein, nicht nur die Listenpreise.

Nachmessen und entscheiden

Achten Sie auf Verlagerung: Sinken die NAT-Bytes, während Endpoint-Stunden oder Regional-Bytes steigen, ist das keine Einsparung. Und wer bei Inter-Region-Verkehr die kostenlosen Eingangszeilen mitsummiert, verdoppelt das Volumen.

Die Entscheidung gehört dem Team, dem der Pfad gehört: Pfad akzeptieren, Route ändern oder Architektur ändern. Notieren Sie vor dem Umbau alten Pfad, belastete Usage Types und erwarteten neuen Pfad, und messen Sie dieselben Usage Types einen vollen Abrechnungsmonat danach. Im monatlichen Cloud-Kostenreview gehört diese Nachmessung auf die Maßnahmenliste.

Transferkosten in Costfluent

Costfluent liest AWS-Kosten über eine schreibgeschützte IAM-Rolle aus einem FOCUS-1.2-Data-Export in Ihrem eigenen S3-Bucket (AWS-Integration). Transferkosten lassen sich dort nach Konto, Service, Region und Ressource gruppieren und als Kostenbericht speichern. Kosteneinblicke zeigen, wenn ein Service im Vergleichszeitraum ungewöhnlich wächst. Welche Workload den Verkehr erzeugt, beantworten weiterhin die Flow Logs in Ihrem Konto; Costfluent ändert keine Netzwerkkonfiguration.

Quellen und Methode

Geprüft am 10. Oktober 2026: AWS Data Exports: Understanding data transfer charges, CUR 2.0: Product columns, CUR 2.0: Line item columns, CUR 2.0: Tabellenkonfigurationen, Amazon VPC Pricing, Pricing for NAT gateways, Regional NAT gateways, Amazon EC2 On-Demand Pricing: Data Transfer, Amazon S3 Pricing: Data transfer, AWS PrivateLink Pricing, Gateway endpoints, Amazon CloudFront Pricing, Cost Explorer: Filtering and grouping, Cost Explorer: Resource-level data, Flow log records, Flow Logs: Pricing, AWS CLI create-flow-logs. Preise für eu-central-1 aus der AWS Price List API: AWSDataTransfer (veröffentlicht am 16. September 2026), AmazonEC2 (9. Oktober 2026) und AmazonVPC (17. September 2026); CloudFront-Usage-Types aus AmazonCloudFront (3. Oktober 2026). Tabellen, Abfrage und Prüfschritte sind Empfehlungen von Costfluent, keine Rechts- oder Datenschutzberatung.