12 Punkte von GN⁺ 2025-11-21 | 1 Kommentare | Auf WhatsApp teilen
  • Ein Fall, in dem durch einen Fehler in der AWS-VPC-Netzwerkkonfiguration und beim NAT Gateway innerhalb eines Tages etwa 900 US-Dollar an S3-Datenübertragungskosten entstanden und kumuliert im Monat 1.000 US-Dollar überschritten wurden
  • Es gilt zwar als bekannt, dass die Übertragung von EC2 zu S3 kostenlos ist, doch wenn der Datenverkehr innerhalb einer VPC über ein NAT Gateway läuft, fallen kostenpflichtige Datenverarbeitungsgebühren an
  • Die Ursache war ein fehlender VPC Gateway Endpoint für S3; es gab also keine Konfiguration für eine direkte Verbindung von der VPC zu S3 ohne NAT Gateway
  • Ein Gateway Endpoint ist kostenlos und verursacht keine Datenübertragungsgebühren; er lässt sich mit Terraform usw. einfach einrichten
  • Der Fall zeigt, wie wichtig bei dem Betrieb von AWS-Infrastruktur Kostenüberwachung und die Prüfung der VPC-Endpoint-Konfiguration sind

Hintergrund des Problems

  • Geocodio nutzte AWS, um große interne Geodaten-Dateien nach S3 zu spiegeln
    • Die Daten umfassten Adresspunkte, Grenzdaten, Volkszählungsinformationen usw. und reichten von mehreren GB bis zu Hunderten von GB
    • Von einer auf Hetzner gehosteten ETL-Plattform aus war eine regelmäßige Synchronisierung mit der AWS-Verarbeitungsinfrastruktur erforderlich
  • Dass die Kosten für Datenübertragung bei AWS hoch sind, ist eine branchenweite, häufig geäußerte Beschwerde; Cloudflare und Corey Quinn haben auf das Problem hingewiesen
  • Der Autor prüfte vor Projektbeginn die Kostenstruktur und stellte fest, dass
    1. Übertragungen zwischen EC2 und S3 innerhalb derselben Region kostenlos sind
    2. Uploads zu S3 (Ingress) kostenlos sind
      und kalkulierte die Kosten entsprechend

Unerwartete Kosten

  • Nach dem Deployment des S3-Synchronisierungsprozesses ging eine Warnung von AWS Cost Anomaly Detection ein
    • An einem einzigen Tag betrug das Datenvolumen über das NAT Gateway 20.167,32 GB, die Kosten lagen bei 907,53 US-Dollar
    • Die kumulierten Monatskosten hatten bereits 1.000 US-Dollar überschritten
  • In einer Situation, in der man davon ausgegangen war, dass EC2–S3-Übertragungen kostenlos seien, wurde untersucht, warum Gebühren für das NAT Gateway anfielen

Ursachenanalyse: Weiterleitung über das NAT Gateway

  • Wenn in einer VPC ein NAT Gateway verwendet wird, wird auch S3-Verkehr standardmäßig über das NAT Gateway geroutet
    • Selbst bei Anfragen an AWS-Services in derselben Region fallen bei Weiterleitung über NAT Datenverarbeitungsgebühren von 0,045 US-Dollar pro GB an
  • Dadurch wurden NAT-Gateway-Kosten berechnet, obwohl die Übertragung zwischen EC2 und S3 eigentlich kostenlos ist
  • Die Lösung ist die Erstellung eines VPC Gateway Endpoint für S3
    • Dadurch entsteht eine direkte Verbindung von der VPC zu S3, ohne NAT Gateway oder Internet Gateway
    • Das ist vollständig kostenlos, ohne stündliche Gebühren oder Übertragungskosten

Lösungsweg

  • Da die Infrastruktur mit Terraform verwaltet wurde, wurde eine Gateway-Endpoint-Ressource hinzugefügt und mit der Routing-Tabelle verknüpft
    • AWS aktualisierte das Routing automatisch, sodass S3-Verkehr statt über das NAT Gateway über den Endpoint lief
  • Danach endeten die NAT-Gateway-bezogenen Gebühren

Erkenntnisse und Empfehlungen

  • Obwohl AWS schon lange genutzt wurde, entstanden Kosten durch ein fehlendes VPC-Endpoint-Setup für S3
  • AWS-Networking ist komplex, und die Kostenstruktur kann sich je nach Konfiguration stark unterscheiden
  • Empfehlungen zur Vermeidung ähnlicher Probleme
    • AWS Cost Anomaly Detection aktivieren: Ungewöhnliche Kosten lassen sich früh erkennen
    • VPC Endpoints verwenden: In VPCs mit NAT Gateway essenziell für den Zugriff auf S3 und DynamoDB
    • Annahmen überprüfen: Nicht nur der Aussage „EC2–S3-Übertragung ist kostenlos“ vertrauen, sondern zunächst im kleinen Maßstab testen und die Kosten überwachen
    • Cloud ist komplex: Auch langjährige Nutzer müssen dauerhaft aufmerksam bleiben
  • Als ähnlicher Fall wird Recall.ai erwähnt, das jährlich 1 Million US-Dollar für WebSocket-Datenverarbeitung zahlte

Nachfolgende Maßnahmen

  • Geocodio prüfte die S3-Kommunikationspfade aller VPCs und schloss die Gateway-Endpoint-Konfiguration ab
  • AWS-Nutzern wird empfohlen, die VPC-Endpoint-Konfiguration zu prüfen
  • Zusammenfassung: NAT Gateways verursachen auch für Datenverkehr zu AWS-Services Kosten, mit VPC Endpoints lassen sich diese Kosten vermeiden

Zusätzliche Materialien

1 Kommentare

 
GN⁺ 2025-11-21
Hacker-News-Kommentare
  • In den drei großen Cloud-Subreddits sehe ich solche Kostenexplosionen ständig, im Schnitt etwa einmal pro Tag
    Die Cloud-Anbieter liefern immer nur verzögerte Warnungen, und den Nutzern bleibt am Ende nur beten und um Kulanz bitten
    Manche behaupten außerdem, es sei „technisch unmöglich“, Konten mit einem harten Ausgabenlimit anzubieten, aber bei Azure gibt es so etwas bereits

    • Ich halte das weniger für Absicht als für eine Kombination aus Inkompetenz und fehlenden Anreizen
      Ich nutze AWS seit über 10 Jahren, und die Brüche im Design zwischen den Services sowie die Silo-Strukturen innerhalb der Organisation waren massiv
      In großen Organisationen gibt es keinen Manager, der Probleme beheben will, wenn das den KPI schadet; stattdessen konzentriert man sich darauf, mit Trend-Services wie AI oder Blockchain Beförderungspunkte zu sammeln
    • AWS hat gestern Pauschalpreis-Tarife ohne Überziehungsgebühren angekündigt
      Man kann zwischen monatlichen Plänen zu $0, $15 und $200 wählen, um unerwartete Kostenexplosionen durch plötzliche Anfragen oder steigenden Datentransfer zu verhindern
      Link zum offiziellen AWS-Blog
    • Es ist dieselbe Nachricht, diesmal aber als Pauschaltarif für CDN. Es gibt auch eine $0-Stufe mit S3-Storage und Bandbreite
      Zugehöriger HN-Thread
      Ein Kostenlimit zu setzen und zugleich die Stabilität des Dienstes zu erhalten, ist zwar schwierig, aber dieser Fall beweist, dass es technisch möglich ist
    • AWS entscheidet sich offenbar dafür, Kunden im Nachhinein zu erstatten, wenn sie versehentlich belastet wurden
      So vermeidet man Reputationsrisiken durch Dienstunterbrechungen oder Infrastrukturstörungen
    • Das Traurigste an solchen Beiträgen ist, dass sie mit dem Fazit enden: „Wir hätten die Rechnung besser verstehen müssen“
      Vielleicht ist aber die Cloud selbst das Problem. Für kleine Unternehmen, die eine vorhersehbare Kostenstruktur brauchen, ist die Cloud womöglich ungeeignet
  • Das passiert so oft, dass ich finde, S3-VPC-Endpoints sollten beim Erstellen einer VPC standardmäßig gesetzt werden
    Und wenn man statt eines NAT Gateway eine Alternative wie fck-nat verwendet, kann man Traffic-Kosten pro GB sparen

    • Allerdings machen S3-Gateway-Endpoints regionenübergreifende S3-Operationen kaputt, eine Änderung des Defaults könnte Kunden also beschädigen
    • Man kann auch auf IPv6 umstellen und ein Egress Gateway verwenden
    • In der Konsole lässt sich das beim Anlegen einer VPC per Checkbox aktivieren
    • Wenn man nicht über die Konsole, sondern mit IAC (Infrastructure as Code) arbeitet, sollte man ohnehin jede Konfiguration explizit festschreiben
    • Grundsätzlich sollte eine VPC mit Security-First-Architektur entworfen werden
      Internetzugriff sollte standardmäßig verweigert und nur explizit erlaubt werden, sonst können Angreifer Daten exfiltrieren
  • Mir ist ein ähnlicher Fehler auch schon passiert
    Ich hatte Testdaten in einen AWS-Empfehlungsalgorithmus hochgeladen und es dann vergessen; Monate später bekam ich von der Bank eine Warnung wegen unzureichender Deckung
    Der Algorithmus lief weiter und verursachte jeden Monat mehr als 1.000 Dollar an Kosten, sodass am Ende 5.000 Dollar verschwunden waren

    • Ich habe früher in der Abrechnungsabteilung gearbeitet und mir deshalb eine gesunde Paranoia für solche Dinge angewöhnt
      Ich prüfe jeden Tag meinen Kontostand und markiere alle Abrechnungs-E-Mails als wichtig
      Außerdem habe ich mir angewöhnt, für jeden Dienst ein virtuelles Kartenlimit zu setzen
  • Ich habe denselben Fehler gemacht und dabei 60.000 Dollar verloren
    Ich verstehe nicht, warum S3-Endpoints nicht standardmäßig ausgerollt werden

    • Wenn man in einem internen Meeting sagt: „Lasst uns das als Standard aktivieren“, wird das vermutlich mit der Begründung vertagt, dass dadurch Umsatz verloren geht
    • Dann kommt noch der Witz: „Das ist zwar ein Jahresgehalt, aber denk nur an die Komplexität, die Infrastruktur selbst zu hosten“
  • Ich werde oft gefragt: „Warum sind meine AWS-Kosten explodiert?“, und meistens ist es die Kombination aus NAT + S3 + falschen Annahmen
    EC2→S3-Transfer ist kostenlos, aber über NAT wird er kostenpflichtig
    Deshalb gebe ich immer diese Checkliste weiter

    1. Für private Subnetze, die häufig mit S3 oder DynamoDB kommunizieren, Gateway Endpoint in Betracht ziehen
    2. NAT-Kosten in einem separaten Dashboard überwachen
    3. Vor großen Datenbewegungen ein Gebührenflussdiagramm zeichnen
      Gut, dass Cost Anomaly Detection rechtzeitig angesprungen ist. 1.000 Dollar Verlust tun weh, aber es ist besser als 20.000 Dollar
  • Ich war schockiert, als ich gesehen habe, dass man bei AWS für das Herunterladen von Daten $0,09 pro GB zahlen muss
    Hochladen ist kostenlos, aber um die Daten wieder herauszubekommen, muss man zahlen?

    • Das ist Teil einer Lock-in-Strategie. Reinkommen ist leicht, rausgehen ist teuer
      Dieser Fall hier war ein Sonderfall, bei dem interner Transfer wegen einer fehlerhaften NAT-Konfiguration als externer Transfer abgerechnet wurde
    • 9 Cent pro GB wirkt fast wie Abzocke auf Mobilfunktarif-Niveau. Wahrscheinlich wird Cloudflare auch deshalb so beliebt
    • Upload ist billig, Download teuer. Immer wenn Kunden ihre Daten an Nutzer ausliefern, kassiert AWS einen Teil davon mit
    • Bei Consumer-Services steckt das in der Monatspauschale, bei AWS ist die Struktur so angelegt, dass man die direkten Kosten bewusst wahrnimmt
    • Das erinnert mich an den Witz: „Kalifornien produziert es, man kann auschecken, aber nie wirklich gehen“
  • Ich frage mich, ob Amazon solche Fehler erstattet

    • Das hängt vom Betrag und den Umständen ab. Ich habe früher auch einmal eine große Summe erstattet bekommen, musste dafür aber mehrfach Stellung nehmen und einen Plan zur Vermeidung von Wiederholungen einreichen
    • Der Autor sagt, er werde das Ergebnis aktualisieren, falls AWS vielleicht Account-Credits gewährt
    • Tatsächlich erstattet AWS in solchen Fällen oft, weil die Daten vermutlich gar nicht wirklich nach außen übertragen wurden
    • Ich habe auch schon ein paar Mal eine Erstattung bekommen. Allerdings immer unter der Bedingung, dass so etwas nicht noch einmal passiert
    • Am Ende hängt es von Kundengröße und Zahlungsfähigkeit ab. Ein Kunde mit 20 Dollar Monatsumsatz kann 1.000 Dollar nicht zahlen, ein Kunde mit 3.000 Dollar im Monat juckt das dagegen kaum
  • VPC NAT Gateway ist berüchtigt
    Ich hatte früher bei Amazon ein ähnliches Problem, musste aber nichts bezahlen, weil es ein Firmenkonto war
    Die Leute, die das tatsächlich aus eigener Tasche zahlen müssen, tun mir wirklich leid

    • Ich persönlich verstehe nicht, warum NAT Gateways so verbreitet sind. In den meisten Fällen reicht ein Internet Gateway völlig aus
  • Für diesen konkreten Fall hilft es nicht direkt, aber AWS hat gestern Pauschalpreis-Tarife für CDN eingeführt
    Es gibt auch eine $0-Stufe mit S3-Storage und Bandbreite
    Zugehöriger Link
    Hoffentlich wird das künftig auf weitere Services ausgeweitet

  • Als ich 22 war und zum ersten Mal mit Infrastruktur gearbeitet habe, habe ich mir in zwei Tagen 300 Dollar Kosten eingefangen
    AWS ist großartig, aber für Einsteiger ist die Kostenkalkulation viel zu intransparent

    • Ich frage mich, warum sie das nicht verbessern