„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.


← Zurück zu Lessons Learned

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.