Gestione della conservazione dei log in AWS: regole del ciclo di vita S3 e migliori pratiche per Terraform

Uno dei modi più semplici per far crescere i costi cloud inosservati è attraverso la conservazione dei log. Molte organizzazioni comprendono l'importanza di raccogliere log, meno ancora capiscono come ottimizzare e utilizzare i dati ottenuti dai log, e ancora meno capiscono quanto tempo questi log debbano essere conservati. È importante capire con quale frequenza la tua azienda accede a questi log e se la tua attuale strategia di archiviazione è ancora in linea con le esigenze aziendali.

Lavorando con un cliente per rivedere la nostra strategia di loging, abbiamo scoperto un modello comune: i log venivano conservati più a lungo del necessario, i costi di stoccaggio continuavano a crescere e non esisteva una politica standardizzata del ciclo di vita tra gli ambienti.

Per affrontare questo problema, abbiamo sviluppato una politica formale di conservazione dei log supportata dalla gestione del ciclo di vita di Amazon S3 e dall'Infrastructure as Code (IaC). Il risultato è stato un approccio più coerente alla gestione dei log, costi di stoccaggio ridotti e una strategia di conservazione meglio allineata ai requisiti operativi e di conformità.

Inizia con lo scopo, non con le classi di archiviazione

Uno degli errori più grandi che commettono le organizzazioni è partire dalla tecnologia piuttosto che dalle esigenze aziendali.

Molte politiche di retention si basano su scenari "e se":

Sebbene queste domande siano ragionevoli, spesso portano a trattenere tutto indefinitamente.

Inizia invece con alcune domande semplici:

Sebbene questo vari da azienda a azienda, in molti casi i team scoprono che i log più vecchi di qualche mese sono raramente accessibili e forniscono un valore operativo limitato. Sono lì per rassicurarsi, e prima che tu te ne accorga, hai terabyte su terabyte di costi indesiderati che generano spazio e disordine

L'obiettivo finale dovrebbe essere conservare i log abbastanza a lungo da supportare indagini, risoluzione di problemi, conformità e audit, evitando al contempo costi di archiviazione inutili.

Ambienti diversi hanno esigenze diverse

Non tutti gli ambienti richiedono lo stesso periodo di conservazione.

I log di produzione spesso supportano audit, risposta agli incidenti e indagini di sicurezza. I log di sviluppo sono tipicamente utilizzati per il debug a breve termine e possono essere solitamente conservati per periodi molto più brevi.

La nostra strategia di fidelizzazione si basava su requisiti specifici per l'ambiente. Di seguito un esempio di come può apparire questa situazione.

Produzione

Trattenuta: 12 mesi

I log di produzione richiedono la massima conservazione perché supportano:

Strategia del ciclo di vita:

QA

Conservazione: 90 giorni

I log QA supportano principalmente:

Strategia del ciclo di vita:

Sviluppo

Conservazione: 30 giorni

I log di sviluppo sono utilizzati principalmente per:

Strategia del ciclo di vita:

Adattando la fidelizzazione a ciascun ambiente, abbiamo evitato di applicare costosi requisiti di mantenimento a livello di produzione dove non erano necessari.

Scegliere le classi giuste di storage S3

Amazon S3 offre diverse classi di storage, ciascuna progettata per diversi modelli di accesso.

La lezione chiave è che la selezione delle classi di storage dovrebbe essere guidata dall'uso effettivo piuttosto che dalle assunzioni.

Alcune domande da considerare:

Per il nostro caso d'uso:

S3 Standard

Utilizzato per i registri di produzione appena creati dove l'accesso immediato è importante.

S3 Standard-IA

Utilizzato quando i log sono ancora occasionalmente accessibili, ma non richiedono più l'urgenza degli standard.

Recupero flessibile del ghiacciaio S3

Utilizzato per archivi a lungo termine dove l'accesso è raro, ma il recupero rimane possibile se necessario.

AWS fornisce una panoramica completa delle classi di storage S3 disponibili e dei loro compromessi, che si può trovare qui:
https://aws.amazon.com/s3/storage-classes/

Infrastructure as Code rende la governance più semplice

Una politica di mantenimento è preziosa solo se viene applicata in modo coerente.

Invece di configurare manualmente le regole del ciclo di vita tra gli ambienti, abbiamo implementato le nostre politiche utilizzando Terraform.

Questo ha portato diversi benefici:

Infrastructure as Code ha trasformato la gestione della retention da uno sforzo di configurazione una tantum in un processo operativo ripetibile.

Proteggiti dagli errori

Le politiche del ciclo di vita automatizzano la cancellazione e le transizioni di archiviazione. Questo li rende potenti, ma anche potenzialmente pericolosi.

Prima di abilitare scadenza e transizioni automatiche:

Il versioning offre un ulteriore livello di protezione contro cancellazioni accidentali o regole del ciclo di vita mal configurate.

Test prima della produzione

Abbiamo stabilito un semplice processo di validazione prima del lancio:

  1. Crea un bucket dedicato allo sviluppo.
  2. Archive development logs nel bucket.
  3. Applica le politiche proposte per il ciclo di vita.
  4. Valida le transizioni di classe di storage.
  5. Verifica il comportamento di scadenza.
  6. Documenta i risultati.
  7. Ottieni l'approvazione prima di passare ad altri dev bucket,
  8. Promozione verso ambienti superiori

Questo approccio ci ha permesso di individuare precocemente i problemi di configurazione minimizzando i rischi.

La governance conta

La conservazione dei log non dovrebbe essere di proprietà di un singolo ingegnere.

Politiche di retention di successo richiedono la collaborazione tra:

La proprietà chiara aiuta a garantire che i periodi di mantenimento rimangano allineati ai requisiti aziendali e normativi man mano che i sistemi si evolvono.

Considerazioni finali

La politica di conservazione dei log più efficace non è necessariamente quella che conserva i log più a lungo.

È quella che bilancia:

Le organizzazioni spesso conservano i dati a causa di esigenze future ipotetiche piuttosto che di reali esigenze aziendali. Comprendendo come vengono utilizzati i log, allineando i periodi di conservazione alle esigenze specifiche dell'ambiente, sfruttando le classi di storage S3 appropriate e le transizioni di storage, e implementando politiche tramite IaC, i team possono ridurre significativamente i costi di storage mantenendo la visibilità di cui hanno effettivamente bisogno.

Soprattutto, ricorda che ogni organizzazione è diversa. La strategia del ciclo di vita descritta qui ha funzionato bene per il nostro caso, ma i periodi di conservazione, le classi di archiviazione e le tempistiche archivistiche dovrebbero sempre essere guidati dai tuoi requisiti operativi e dagli obblighi di conformità.

Autore

Chase Hollander
Sviluppatore AEM presso Arbory Digital

Agile Certified Professional, sviluppatore e consulente con esperienza in AEM

Contatta Chase su Linkedin

Ti è piaciuto quello che hai sentito? Hai domande su cosa sia giusto per te? Ci piacerebbe parlare! Contattaci

Blog

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