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":
- ¿Y si necesitamos registros de hace dos años?
- ¿Y si una investigación requiere datos históricos de hace 12 meses?
- ¿Y si alguien pide registros que ya no tenemos?
Aunque estas preguntas son razonables, a menudo resultan en retener todo indefinidamente.
En su lugar, empieza con unas pocas preguntas sencillas:
- ¿Cuál es el verdadero propósito de estos troncos?
- ¿Con qué frecuencia se accede a ellos?
- Cuando se accede, ¿qué valor empresarial aportan?
- ¿Existen requisitos de cumplimiento que dicten los periodos de retención?
- ¿Quién es responsable de la decisión sobre la retención de los troncos?
- ¿Cómo podemos reducir los costes de almacenamiento sin sacrificar nada?
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:
- Investigaciones de seguridad
- Respuesta a incidentes
- Requisitos de cumplimiento y auditoría
- Análisis operativo histórico
Estrategia de ciclo de vida:
- Días 0–30: Estándar S3
- Días 31–90: S3 Estándar-IA
- Días 91–365: Recuperación flexible del glaciar S3
- Elimina después de 12 meses
QA
Retención: 90 días
Los registros de control de calidad soportan principalmente:
- Validación de liberación
- Análisis de regresión
- Resolución de problemas históricos
Estrategia de ciclo de vida:
- Días 0–60: S3 Standard-IA
- Borra después de 90 días
Desarrollo
Retención: 30 días
Los registros de desarrollo se utilizan principalmente para:
- Depuración de aplicaciones
- Resolución de problemas
- Apoyo al desarrollo
Estrategia de ciclo de vida:
- Días 0–30: S3 Estándar-IA
- Eliminar después de 30 días
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:
- ¿Con qué frecuencia se accede a los registros?
- ¿Hay ciertos troncos que valoran más que otros?
- ¿Cómo están configurados nuestros buckets actuales de S3?
- ¿Se accede rara vez después del primer mes?
- ¿Qué tan rápido deben ser recuperados?
- ¿Son aceptables los costes de recuperación?
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:
- Configuraciones reutilizables del ciclo de vida
- Cambios con control de versiones
- Revisión por pares mediante pull requests
- Despliegue consistente entre entornos
- Reducción del riesgo de deriva de configuración
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:
- Activar el versionamiento de cubos S3
- Validar reglas del ciclo de vida en un entorno no productivo
- Confirmar cálculos de temporización de transición
- Comportamiento de expiración de objetos de prueba
- Verificar los flujos de trabajo de recuperación
- Asegúrate de que los cubos adecuados estén dirigidos
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:
- Crea un cubo de desarrollo dedicado.
- El archivo de desarrollo registra en el cubo.
- Aplicar las políticas propuestas para el ciclo de vida.
- Valida las transiciones de clase de almacenamiento.
- Verifica el comportamiento de caducidad.
- Documenta los resultados.
- Obtén la aprobación antes de pasar a otros grupos de desarrollo,
- 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:
- Equipos de DevOps
- Equipos de seguridad
- Equipos de cumplimiento
- Liderazgo en infraestructuras
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:
- Coste
- Cumplimiento
- Seguridad
- Visibilidad operativa
- Simplicidad
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
¿Te ha gustado lo que has oído? ¿Tienes preguntas sobre lo que es lo mejor para ti? ¡Nos encantaría hablar! Contáctanos