S3 no solo guarda archivos: también puede conservar el historial de cambios de cada archivo y gestionar automáticamente qué hacer con ellos según pasa el tiempo. Estas dos funciones —versionado y ciclo de vida— te protegen de errores y te ahorran dinero sin esfuerzo. Veámoslas.

Versionado: el «historial de cambios» de tus archivos

El versionado hace que, cada vez que subes un objeto con la misma clave, S3 no sobrescriba el anterior, sino que guarde una nueva versión y conserve las antiguas.

Analogía: Es como el historial de versiones de un documento de Google Docs o Word. Puedes volver a una versión anterior si te equivocas. Nada se pierde para siempre.

Cómo funciona:

Subes "informe.pdf"  → versión 1
Lo editas y subes    → versión 2 (la actual)
Lo vuelves a editar  → versión 3 (la actual)
                       (las versiones 1 y 2 siguen guardadas)

En cualquier momento puedes recuperar una versión antigua o restaurarla como la actual.

Por qué es tan útil:

  • Protege contra borrados accidentales: si alguien borra un objeto, en realidad S3 añade un «marcador de borrado», pero las versiones siguen ahí y puedes recuperarlas.
  • Protege contra sobrescrituras erróneas: ¿subiste el archivo equivocado encima del bueno? Vuelves a la versión anterior.
  • Es una defensa contra ransomware: si un atacante cifra tus archivos, las versiones anteriores (sin cifrar) siguen disponibles.

Ejemplo real: Un empleado sobrescribe por error el archivo de configuración de producción con uno malo y la web deja de funcionar. Gracias al versionado, el equipo restaura la versión anterior en segundos y todo vuelve a la normalidad. Sin versionado, habrían perdido el archivo bueno.

⚠️ Cuidado con el coste: cada versión ocupa espacio y se paga. Si versionas archivos que cambian mucho, puedes acabar guardando muchísimas versiones antiguas. Por eso el versionado se combina con el ciclo de vida para borrar versiones viejas automáticamente.

Detalle importante: una vez activas el versionado en un bucket, puedes suspenderlo pero no desactivarlo del todo. Tenlo en cuenta antes de activarlo.

Ciclo de vida: automatizar el destino de tus objetos

Las reglas de ciclo de vida (lifecycle rules) le dicen a S3 qué hacer con los objetos según su antigüedad, de forma automática. Sirven para dos cosas:

  1. Transición: mover objetos a clases más baratas con el tiempo (recuerda las clases del subcapítulo 5.2).
  2. Expiración: borrar objetos (o versiones antiguas) cuando ya no se necesitan.

Analogía: Es como un asistente que ordena tu trastero automáticamente: «lo que lleva 30 días sin tocarse, al cajón; lo que lleva 90 días, a las cajas del sótano; lo que lleva 7 años, a la basura».

Ejemplo de regla de ciclo de vida

Una política típica para registros (logs) podría ser:

Día 0   → El objeto se crea en S3 Standard
Día 30  → Se mueve a Standard-IA (acceso poco frecuente, más barato)
Día 90  → Se mueve a Glacier (archivo, mucho más barato)
Día 365 → Se mueve a Glacier Deep Archive (lo más barato)
Día 2555 (7 años) → Se elimina automáticamente

Con esta regla, no tienes que mover ni borrar nada a mano. Los objetos «envejecen» y van bajando de coste solos, y se eliminan cuando la ley ya no obliga a conservarlos.

Ciclo de vida para versiones antiguas

El ciclo de vida también gestiona las versiones antiguas que genera el versionado. Por ejemplo:

«Conserva la versión actual siempre, pero borra las versiones que tengan más de 90 días

Así disfrutas de la protección del versionado sin que el coste se dispare por acumular versiones viejas para siempre. Esta combinación —versionado + ciclo de vida para versiones antiguas— es una buena práctica muy habitual.

Versionado + Ciclo de vida: el equipo perfecto

Estas dos funciones se complementan:

Función Te da Riesgo si la usas sola
Versionado Protección contra errores y borrados El coste crece sin control
Ciclo de vida Optimización de coste automática
Las dos juntas Protección y coste controlado Ninguno: la combinación ideal

Buena práctica recomendada: activa el versionado en buckets con datos importantes y añade una regla de ciclo de vida que limpie las versiones antiguas pasado un tiempo razonable. Así estás protegido sin pagar de más.

Lo que debes recordar

  • El versionado conserva el historial de cada objeto: protege contra borrados y sobrescrituras accidentales (y contra ransomware). Cada versión ocupa y cuesta.
  • Una vez activado, el versionado se puede suspender pero no eliminar del todo.
  • El ciclo de vida automatiza el destino de los objetos: transición a clases más baratas y expiración (borrado) según su antigüedad.
  • El ciclo de vida también limpia versiones antiguas, evitando que el versionado dispare el coste.
  • Versionado + ciclo de vida es la combinación ideal: protección con coste controlado.

En el siguiente subcapítulo entramos en un tema crítico: la seguridad de S3 con políticas de bucket y ACLs, para controlar quién puede acceder a tus datos.

Cloud, AWS & Terraform — De cero a experto

Capítulo 1 · Qué es el cloud computing

Capítulo 2 · El mercado cloud y los grandes proveedores

Capítulo 3 · Regiones, zonas de disponibilidad y edge

Capítulo 4 · Cómputo: EC2

Capítulo 5 · Almacenamiento: S3

Capítulo 6 · Redes: VPC

Capítulo 7 · Identidad y acceso: IAM

Capítulo 8 · Bases de datos gestionadas

Capítulo 9 · Por qué Infraestructura como Código

Capítulo 10 · HCL: el lenguaje de Terraform

Capítulo 11 · Providers y estado

Capítulo 12 · Tu primera infraestructura real en Terraform

Capítulo 13 · Balanceo de carga y autoescalado

Capítulo 14 · Serverless con Lambda

Capítulo 15 · Mensajería y eventos

Capítulo 16 · Entrega de contenido y DNS

Capítulo 17 · Contenedores en AWS

Capítulo 18 · Módulos: reutilización y composición

Capítulo 19 · Workspaces y gestión de entornos

Capítulo 20 · Backends remotos y locking

Capítulo 21 · Testing de infraestructura

Capítulo 22 · Terraform en CI/CD

Capítulo 23 · Seguridad en profundidad

Capítulo 24 · Observabilidad: logs, métricas y trazas

Capítulo 25 · Optimización de costes

Capítulo 26 · Alta disponibilidad y disaster recovery

Capítulo 27 · Well-Architected Framework de AWS

Capítulo 28 · Arquitecturas serverless a escala

Capítulo 29 · Plataformas de datos en AWS

Capítulo 30 · Multi-cuenta y landing zones

Capítulo 31 · Platform Engineering e Internal Developer Platform

Capítulo 32 · Certificaciones AWS relevantes

Capítulo 33 · Proyectos para consolidar lo aprendido

Capítulo 34 · Recursos y comunidad

© Copyright 2024. Todos los derechos reservados