Die $50.000-CloudWatch-Logging-Rechnung
„Lasst uns in Produktion einfach alles loggen, zur Sicherheit.“ Dieser Satz endete in einer CloudWatch-Rechnung von etwas über $50.000 für einen einzigen Monat. Kosten-War-Stories überspringen meist die Arithmetik — genau so verbreiten sich schlechte Ratschläge. Hier ist unsere, vollständig.
Das chronische Problem: eine Log-alles-Kultur
- Jeder HTTP-Request-Body, inklusive großer Payloads
- Jede Datenbankabfrage mit gebundenen Parametern
- Health-Check-Antworten alle 10 Sekunden, pro Pod
- Keine Retention-Policy auf irgendeiner Log Group
Diese Grundlast lag bei rund 500GB pro Tag. Zum CloudWatch-Ingestion-Preis von $0,50/GB sind das etwa $7.500 im Monat — plus rund $5.400 im Monat an Storage nach einem Jahr Ansammlung zu $0,03/GB-Monat, weil nie etwas ablief. Nennen wir die chronischen Kosten $13.000 im Monat: schlecht, stabil und unsichtbar in einer wachsenden AWS-Rechnung. Neunundneunzig Prozent dieser Logs wurden nie gelesen.
Das akute Problem: ein vergessenes Debug-Statement
Ein Entwickler fügte drei Debug-Log-Zeilen hinzu, um ein Problem auf einem internen Fan-out-Pfad nachzuverfolgen, schloss die Untersuchung ab und ließ das Logging drin. Das Code-Review übersah es. Die öffentliche API bediente rund 3.000 Requests pro Sekunde, aber jeder Request löste sechs bis acht interne Aufrufe aus — der instrumentierte Codepfad lief in der Spitze also rund 20.000-mal pro Sekunde.
- 20K Ausführungen/Sek × 3 Zeilen × ~500 Bytes ≈ 30MB/Sek
- ≈ 2,6TB/Tag ≈ $1.300/Tag allein für Ingestion
- Einen vollen Monat laufen gelassen: ≈ $39.000
Addieren Sie die chronische Grundlast von $13.000, und Sie haben den $50K-Monat. Nichts Exotisches ist passiert — es war eine Multiplikation, die vor dem Deployment niemand gemacht hat.
Die Fixes
- Strukturiertes Logging mit durchgesetzten Log-Leveln. INFO ist die Untergrenze in Produktion — eine WARN-only-Policy klingt sparsam, streicht aber genau den Kontext, den Sie mitten im Incident brauchen. DEBUG läuft nur hinter Sampling (etwa 1% der Requests) oder einem Runtime-Toggle.
- 7 Tage Retention in CloudWatch. Alles Ältere wandert nach S3 und wird mit Athena zu einem Bruchteil der Kosten abgefragt.
- Ein CI-Check, der Debug-Level-Logging auf heißen Produktionspfaden markiert.
- Alarme auf die Log-Ingestion-Rate plus Budget-Alerts bei 120% der Grundlast — der akute Vorfall hätte uns am ersten Tag gepagt, statt auf der Rechnung aufzutauchen.
- Ein wöchentlicher Kostenanomalie-Review. Langweilig by Design, und die Gewohnheit, die alles fängt, was die Alarme verpassen. Genau deshalb behandeln wir Ausgaben in unserer Observability- und AIOps-Praxis als Signal erster Klasse.
Ergebnis: von rund $50.000/Monat auf $3.200/Monat, mit besserem Signal als zuvor. Das breitere Playbook steht in unserem Leitfaden zur Cloud-Kostensenkung.
Lektion: Logs werden pro Gigabyte abgerechnet, also machen Sie die Multiplikation, bevor Sie die Log-Zeile ausliefern. Ein vergessenes Debug-Statement kann mehr kosten als das Gehalt eines Engineers.
Incidents wie dieser sind vermeidbar. Unser AWS Managed Services-Team überwacht Kundenumgebungen 24/7 mit KI-gestütztem Monitoring und Senior Engineers am Pager — damit Geschichten wie diese im Archiv bleiben.