Verwaltung der Logaufbewahrung in AWS: S3 Lebenszyklusregeln und Best Practices für Terraform
Eine der einfachsten Möglichkeiten, wie Cloud-Kosten unbemerkt steigen, ist die Log-Retention. Viele Organisationen verstehen die Bedeutung der Erfassung von Logs, weniger wissen, wie man die daraus gewonnenen Daten optimiert und nutzt, und noch weniger wissen, wie lange diese Logs aufbewahrt werden sollten. Es ist wichtig zu verstehen, wie oft Ihr Unternehmen auf diese Logs zugreift und ob Ihre aktuelle Speicherstrategie noch mit den geschäftlichen Anforderungen übereinstimmt.
Als wir mit einem Kunden unsere Logging-Strategie überprüften, entdeckten wir ein häufiges Muster: Logs wurden länger als nötig aufbewahrt, die Speicherkosten stiegen weiter und es gab keine standardisierte Lebenszyklusrichtlinie in allen Umgebungen.
Um dem entgegenzuwirken, haben wir eine formelle Log-Storage-Richtlinie entwickelt, die durch Amazon S3 Lifecycle Management und Infrastructure as Code (IaC) gestützt wird. Das Ergebnis war ein konsistenterer Ansatz für das Logmanagement, reduzierte Speicherkosten und eine Aufbewahrungsstrategie, die besser mit den operativen und Compliance-Anforderungen übereinstimmte.
Fang mit Purpose-Klassen an, nicht mit Storage-Kursen
Einer der größten Fehler, die Organisationen machen, ist es, mit Technologie und nicht mit geschäftlichen Anforderungen zu beginnen.
Viele Aufbewahrungsrichtlinien basieren auf "Was-wäre-wenn"-Szenarien:
- Was, wenn wir Protokolle von vor zwei Jahren brauchen?
- Was ist, wenn eine Untersuchung historische Daten von vor 12 Monaten benötigt?
- Was, wenn jemand nach Unterlagen fragt, die wir nicht mehr haben?
Obwohl diese Fragen berechtigt sind, führen sie oft dazu, dass alles unbegrenzt behalten wird.
Beginnen Sie stattdessen mit ein paar einfachen Fragen:
- Was ist der eigentliche Zweck dieser Protokolle?
- Wie oft werden sie aufgerufen?
- Welchen geschäftlichen Mehrwert bieten sie, wenn sie zugänglich sind?
- Gibt es Compliance-Anforderungen, die die Aufbewahrungszeiten festlegen?
- Wem gehört die Entscheidung zur Logbuch-Aufbewahrung?
- Wie können wir die Lagerkosten senken, ohne etwas zu opfern?
Obwohl dies je nach Unternehmen variiert, stellen Teams in vielen Fällen fest, dass Logs, die älter als ein paar Monate sind, selten abgerufen werden und einen begrenzten operativen Nutzen bieten. Sie sind zur Sicherheit da, und ehe man sich versieht, hat man Terabyte um Terabyte unerwünschten Kosten, Speicherplatz und Unordnung
Das Endziel sollte sein, Logs lange genug zu speichern, um Untersuchungen, Problembehebung, Compliance und Audits zu unterstützen, während unnötige Speicherkosten vermieden werden.
Verschiedene Umgebungen haben unterschiedliche Bedürfnisse
Nicht jede Umgebung erfordert die gleiche Aufbewahrungsdauer.
Produktionsprotokolle unterstützen häufig Audits, Vorfallreaktion und Sicherheitsuntersuchungen. Entwicklungsprotokolle werden typischerweise für kurzfristiges Debugging verwendet und können meist für deutlich kürzere Zeiträume gespeichert werden.
Unsere Bindungsstrategie basierte auf umfeldspezifischen Anforderungen. Im Folgenden finden Sie ein Beispiel, wie das aussehen könnte.
Produktion
Bindung: 12 Monate
Produktionsprotokolle benötigen die längste Aufbewahrung, da sie Folgendes unterstützen:
- Sicherheitsuntersuchungen
- Einsatzreaktion
- Einhaltung und Prüfungsanforderungen
- Historische Betriebsanalyse
Lebenszyklusstrategie:
- Tage 0–30: S3 Standard
- Tage 31–90: S3 Standard-IA
- Tage 91–365: S3 Gletscher Flexible Rückholung
- Nach 12 Monaten löschen
QA
Bindung: 90 Tage
QA-Logs unterstützen hauptsächlich:
- Freisetzungsvalidierung
- Regressionsanalyse
- Historische Fehlersuche
Lebenszyklusstrategie:
- Tage 0–60: S3 Standard-IA
- Nach 90 Tagen löschen
Entwicklung
Bindung: 30 Tage
Entwicklungsprotokolle werden hauptsächlich für:
- Anwendungsdebugging
- Fehlerbehebung
- Entwicklungsunterstützung
Lebenszyklusstrategie:
- Tage 0–30: S3 Standard-IA
- Nach 30 Tagen löschen
Indem wir die Retention auf jede Umgebung zugeschnitten haben, vermieden wir, teure Produktionsanforderungen anzuwenden, wo sie nicht nötig waren.
Auswahl der richtigen S3-Speicherklassen
Amazon S3 bietet mehrere Speicherklassen an, die jeweils für unterschiedliche Zugriffsmuster konzipiert sind.
Die wichtigste Lehre ist, dass die Auswahl der Speicherklassen von tatsächlicher Nutzung und nicht von Annahmen abhängig sein sollte.
Einige Fragen, die Sie bedenken sollten:
- Wie oft werden Logs häufig abgerufen?
- Gibt es bestimmte Stämme, die höher geschätzt werden als andere?
- Wie sind unsere aktuellen S3-Eimer eingerichtet?
- Werden sie nach dem ersten Monat selten genutzt?
- Wie schnell müssen sie geborgen werden?
- Sind die Kosten für die Bergung akzeptabel?
Für unseren Anwendungsfall:
S3-Standard
Verwendet für neu erstellte Produktionsprotokolle, bei denen sofortiger Zugriff wichtig ist.
S3 Standard-IA
Verwendet, wenn Logs noch gelegentlich abgerufen werden, aber nicht mehr die Dringlichkeit von Standards erfordern.
S3 Gletscher Flexible Rückholung
Wird für Langzeitarchivierung verwendet, wo der Zugang selten ist, aber ein Abruf bei Bedarf weiterhin möglich bleibt.
AWS bietet eine vollständige Aufschlüsselung der verfügbaren S3-Speicherklassen und ihrer Kompromisse, die hier zu finden ist:
https://aws.amazon.com/s3/storage-classes/
Infrastructure as Code erleichtert die Governance
Eine Bindungspolitik ist nur dann wertvoll, wenn sie konsequent durchgesetzt wird.
Anstatt Lebenszyklusregeln manuell in verschiedenen Umgebungen zu konfigurieren, haben wir unsere Lebenszyklusrichtlinien mit Terraform implementiert.
Dies brachte mehrere Vorteile mit sich:
- Wiederverwendbare Lebenszykluskonfigurationen
- Versionskontrollierte Änderungen
- Peer-Review durch Pull Requests
- Konsistente Bereitstellung über verschiedene Umgebungen hinweg
- Reduziertes Risiko von Konfigurationsabweichungen
Infrastructure as Code verwandelte das Retention Management von einer einmaligen Konfigurationsmaßnahme in einen wiederholbaren operativen Prozess.
Schützen Sie sich vor Fehlern
Lebenszyklusrichtlinien automatisieren Lösch- und Speicherübergänge. Das macht sie mächtig, aber auch potenziell gefährlich.
Vor der Aktivierung des automatisierten Ablaufs und der Übergänge:
- Aktivieren Sie die S3-Bucket-Versionierung
- Validieren Sie Lebenszyklusregeln in einer nicht-produktionsbezogenen Umgebung
- Übergangszeitberechnungen bestätigen
- Testobjekt-Ablaufverhalten
- Abfrage-Workflows überprüfen
- Stellen Sie sicher, dass die richtigen Buckets gezielt ausgewählt werden
Versionsmanagement bietet eine zusätzliche Schutzschicht gegen versehentliche Löschungen oder falsch konfigurierte Lebenszyklusregeln.
Test vor der Produktion
Wir haben vor der Einführung einen einfachen Validierungsprozess eingerichtet:
- Erstellen Sie einen eigenen Entwicklungsbucket.
- Archiventwicklungsprotokolle werden in den Eimer eingeloggt.
- Wenden Sie vorgeschlagene Lebenszyklusrichtlinien an.
- Validiere Speicherklassenübergänge.
- Überprüfen Sie das Ablaufverhalten.
- Dokumentiere die Ergebnisse.
- Holen Sie sich die Genehmigung ein, bevor Sie zu anderen Entwicklungsbereichen übergehen,
- Beförderung in höhere Umgebungen
Dieser Ansatz ermöglichte es uns, Konfigurationsprobleme frühzeitig zu erkennen und gleichzeitig das Risiko zu minimieren.
Governance-Aspekte
Log-Retention sollte nicht einem einzelnen Ingenieur gehören.
Erfolgreiche Bindungsrichtlinien erfordern Zusammenarbeit zwischen:
- DevOps-Teams
- Sicherheitsteams
- Compliance-Teams
- Infrastrukturleitung
Klares Eigentum hilft sicherzustellen, dass die Aufbewahrungszeiten mit den geschäftlichen und regulatorischen Anforderungen im Einklang bleiben, während sich die Systeme weiterentwickeln.
Abschließende Gedanken
Die effektivste Protokollaufbewahrungsrichtlinie ist nicht unbedingt die, die die Protokolle am längsten aufbewahrt.
Es ist derjenige, der ausbalanciert:
- Kosten
- Einhaltung
- Sicherheit
- Einsatzsichtbarkeit
- Einfachheit
Organisationen speichern Daten oft aufgrund hypothetischer zukünftiger Bedürfnisse und nicht wegen tatsächlicher geschäftlicher Anforderungen. Indem Teams verstehen, wie Logs verwendet werden, Speicherzeiten an umfeldspezifische Anforderungen angepasst werden, geeignete S3-Speicherklassen und Speicherübergänge nutzen und Richtlinien über IaC implementieren, können Teams die Speicherkosten erheblich senken und gleichzeitig die tatsächlich benötigte Sichtbarkeit erhalten.
Am wichtigsten ist, dass jede Organisation anders ist. Die hier beschriebene Lebenszyklusstrategie funktionierte in unserem Fall gut, aber Aufbewahrungsfristen, Speicherklassen und Archivierungszeitpläne sollten immer von Ihren eigenen operativen Anforderungen und Compliance-Verpflichtungen bestimmt werden.
Autor
Gefällt dir, was du gehört hast? Haben Sie Fragen dazu, was für Sie am besten ist? Wir würden uns sehr freuen, zu reden! Kontaktieren Sie uns