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:

Obwohl diese Fragen berechtigt sind, führen sie oft dazu, dass alles unbegrenzt behalten wird.

Beginnen Sie stattdessen mit ein paar einfachen Fragen:

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:

Lebenszyklusstrategie:

QA

Bindung: 90 Tage

QA-Logs unterstützen hauptsächlich:

Lebenszyklusstrategie:

Entwicklung

Bindung: 30 Tage

Entwicklungsprotokolle werden hauptsächlich für:

Lebenszyklusstrategie:

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:

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:

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:

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:

  1. Erstellen Sie einen eigenen Entwicklungsbucket.
  2. Archiventwicklungsprotokolle werden in den Eimer eingeloggt.
  3. Wenden Sie vorgeschlagene Lebenszyklusrichtlinien an.
  4. Validiere Speicherklassenübergänge.
  5. Überprüfen Sie das Ablaufverhalten.
  6. Dokumentiere die Ergebnisse.
  7. Holen Sie sich die Genehmigung ein, bevor Sie zu anderen Entwicklungsbereichen übergehen,
  8. 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:

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:

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

Chase Hollander
AEM-Entwickler bei Arbory Digital

Agile Certified Professional, Entwickler und Berater mit Erfahrung im AEM

Kontaktieren Sie Chase auf Linkedin

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

Blogs

category
Blog
tags
observability,logs,savings,compliance,productivity,devops,terraform,policy
number of rows
1