Gestión de la retención de registros en AWS: reglas del ciclo de vida de S3 y mejores prácticas de Terraform

Una de las formas más sencillas de que los costes de la nube crezcan sin ser detectados es mediante la retención de logs. Muchas organizaciones entienden la importancia de recopilar registros, menos entienden cómo optimizar y utilizar los datos que obtienes de ellos, y aún menos saben cuánto tiempo deben conservarse esos registros. Es importante entender con qué frecuencia tu empresa accede a estos registros y si tu estrategia actual de almacenamiento sigue alineada con las necesidades del negocio.

Al trabajar con un cliente para revisar nuestra estrategia de registros, descubrimos un patrón común: los registros se conservaban más tiempo del necesario, los costes de almacenamiento seguían creciendo y no existía una política estandarizada del ciclo de vida entre los entornos.

Para abordar esto, desarrollamos una política formal de retención de registros respaldada por la gestión del ciclo de vida de Amazon S3 e Infraestructura como Código (IaC). El resultado fue un enfoque más coherente en la gestión de los registros, reducción de costes de almacenamiento y una estrategia de retención mejor alineada con los requisitos operativos y de cumplimiento.

Empieza con Propósito, no Clases de Almacenamiento

Uno de los mayores errores que cometen las organizaciones es empezar por la tecnología en lugar de por los requisitos empresariales.

Muchas políticas de retención se basan en escenarios de "qué pasaría si":

Aunque estas preguntas son razonables, a menudo resultan en retener todo indefinidamente.

En su lugar, empieza con unas pocas preguntas sencillas:

Aunque esto varía según la empresa, en muchos casos los equipos descubren que los registros de más de unos pocos meses rara vez se acceden y aportan un valor operativo limitado. Están ahí para garantizar, y antes de que te des cuenta, tienes terabytes y terabytes de costes no deseados que generan espacio y desorden

El objetivo final debería ser conservar los registros el tiempo suficiente para apoyar investigaciones, resolución de problemas, cumplimiento normativo y auditorías, evitando costes de almacenamiento innecesarios.

Cada entorno tiene necesidades distintas

No todos los entornos requieren el mismo periodo de retención.

Los registros de producción suelen apoyar auditorías, respuesta a incidentes e investigaciones de seguridad. Los registros de desarrollo se utilizan típicamente para depuración a corto plazo y suelen conservarse durante periodos mucho más cortos.

Nuestra estrategia de retención se basó en requisitos específicos del entorno. A continuación, un ejemplo de cómo puede verse esto.

Producción

Retención: 12 meses

Los registros de producción requieren la retención más larga porque soportan:

Estrategia de ciclo de vida:

QA

Retención: 90 días

Los registros de control de calidad soportan principalmente:

Estrategia de ciclo de vida:

Desarrollo

Retención: 30 días

Los registros de desarrollo se utilizan principalmente para:

Estrategia de ciclo de vida:

Al adaptar la retención a cada entorno, evitamos aplicar requisitos de retención costosos a nivel de producción donde no eran necesarios.

Elegir las clases adecuadas de almacenamiento S3

Amazon S3 ofrece varias clases de almacenamiento, cada una diseñada para diferentes patrones de acceso.

La lección clave es que la selección de clases de almacenamiento debería estar guiada por el uso real y no por supuestos.

Algunas preguntas a considerar:

Para nuestro caso de uso:

Estándar S3

Se utiliza para registros de producción recién creados donde el acceso inmediato es importante.

S3 Estándar-IA

Se utiliza cuando los registros aún se acceden ocasionalmente, pero ya no requieren la urgencia de los estándares.

Recuperación flexible del glaciar S3

Se utiliza para archivos a largo plazo donde el acceso es raro, pero la recuperación sigue siendo posible si es necesario.

AWS ofrece un desglose completo de las clases de almacenamiento S3 disponibles y sus compensaciones, que puedes consultar aquí:
https://aws.amazon.com/s3/storage-classes/

La infraestructura como código facilita la gobernanza

Una política de retención solo es valiosa si se aplica de forma constante.

En lugar de configurar manualmente las reglas del ciclo de vida entre entornos, implementamos nuestras políticas de ciclo de vida usando Terraform.

Esto aportó varios beneficios:

Infrastructure as Code transformó la gestión de retención de un esfuerzo de configuración único en un proceso operativo repetible.

Protégete de los errores

Las políticas del ciclo de vida automatizan las transiciones de eliminación y almacenamiento. Eso los hace poderosos, pero también potencialmente peligrosos.

Antes de habilitar caducidad y transiciones automatizadas:

La gestión de versiones proporciona una capa adicional de protección contra eliminaciones accidentales o reglas de ciclo de vida mal configuradas.

Prueba antes de la producción

Establecimos un proceso de validación sencillo antes del despliegue:

  1. Crea un cubo de desarrollo dedicado.
  2. El archivo de desarrollo registra en el cubo.
  3. Aplicar las políticas propuestas para el ciclo de vida.
  4. Valida las transiciones de clase de almacenamiento.
  5. Verifica el comportamiento de caducidad.
  6. Documenta los resultados.
  7. Obtén la aprobación antes de pasar a otros grupos de desarrollo,
  8. Promocionar a entornos superiores

Este enfoque nos permitió identificar los problemas de configuración a tiempo minimizando el riesgo.

Asuntos de Gobernanza

La retención de troncos no debería pertenecer a un solo ingeniero.

Las políticas de retención exitosas requieren colaboración entre:

La propiedad clara ayuda a garantizar que los periodos de retención se mantengan alineados con los requisitos empresariales y regulatorios a medida que evolucionan los sistemas.

Reflexiones finales

La política de retención de registros más eficaz no es necesariamente la que mantiene los registros durante más tiempo.

Es el que equilibra:

Las organizaciones suelen conservar datos por necesidades futuras hipotéticas más que por requisitos empresariales reales. Al entender cómo se utilizan los logs, alinear los periodos de retención con las necesidades específicas del entorno, aprovechar las clases de almacenamiento S3 adecuadas y las transiciones de almacenamiento, e implementar políticas mediante IaC, los equipos pueden reducir significativamente los costes de almacenamiento manteniendo la visibilidad que realmente necesitan.

Lo más importante es recordar que cada organización es diferente. La estrategia de ciclo de vida descrita aquí funcionó bien en nuestro caso, pero los periodos de retención, las clases de almacenamiento y los plazos de archivo siempre deben estar guiados por tus propios requisitos operativos y obligaciones de cumplimiento.

Autor

Chase Hollander
Desarrollador AEM en Arbory Digital

Profesional Ágil Certificado, desarrollador y consultor con experiencia en AEM

Contacta con Chase en LinkedIn

¿Te ha gustado lo que has oído? ¿Tienes preguntas sobre lo que es lo mejor para ti? ¡Nos encantaría hablar! Contáctanos

Blogs

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