Reglas De Ciclo De Vida en Buckets S3

Introducción
En el artículo anterior de esta serie te presenté las clases de almacenamiento en los buckets S3 y como escoger la clase correcta te puede ayudar en dependencia de tus necesidades. En este arículo estaremos hablando sobre un tema que viene muy relacionado a las clases de almacenamiento, y son las reglas de ciclo de vida de S3, que, entre otras cosas, te permiten mover de forma automática los objetos de una clase a la otra, veamos que podemos hacer con esta característica de S3.
Utilidad de las reglas de ciclo de vida
Las reglas de ciclo de vida nos permiten realizar acciones sobre nuestros objetos almacenados en S3 de forma automática. Se dividen en dos tipos de acciones:
- Acciones de transición:
- Nos permiten mover nuestros objetos de una clase a otra automáticamente, por ejemplo, si queremos mover nuestros objetos de la clase
S3 EstándarhaciaS3 Glacierluego de 6 meses de que el objeto haya sido creado en el bucket, podemos hacerlo con estas acciones
- Nos permiten mover nuestros objetos de una clase a otra automáticamente, por ejemplo, si queremos mover nuestros objetos de la clase
- Acciones de expiración:
- Nos permiten eliminar objetos de nuestro bucket cada cierto tiempo
- Pueden usarse para eliminar versiones de nuestros ovjetos, solo en caso que tengamos habilitado el versionado en nuestro bucket
- Puede usarse para eliminar subidas Multi-Part incompletas
Importante tener en cuenta que las reglas se pueden crear para ciertos prefijos de nuestro bucket, por ejemplo, si queremos que una regla aplique solo a los objetos organizados en el prefijo images/, podemos especificarlo. También podemos aplicar las reglas a objetos con ciertas etiquetas.
Las reglas de ciclo de vida no se ven afectadas por los
bucket policy, o sea, aunque unbucket policydeniegue todas las acciones de todos los usuarios en un bucket, las reglas de ciclo de vida funcionarán normalmente.
Transiciones de ciclo de vida soportadas

En la imagen anterior podemos ver las distintas transiciones entre distintas clases de almacenamiento usando las reglas de ciclo de vida de S3.
Importante tener en cuenta que para los buckets que tengan el versionado habilitado, no se pueden transicionar los objetos cuyo estado de replicación es
Pending
Limitaciones para las acciones de transición
Objetos menores de 128KB no transicionan por defecto hacia ninguna clase
Esto sucede porque cada vez que se aplica transición de una clase hacia la otra se aplica un cargo por solicitud de transición, y en los objetos pequeños el costo de transición es mayor a lo que se ahorra por almacenamiento al mover hacia otra clase.
En caso que desees aplicar las transiciones en objetos menores de 128KB, puedes aplicar un
filtro por tamaño de objetoque especifique un tamaño mínimo personalizado(ObjectSizeGreatherThan)
Los objetos deben estar almacenados por un mínimo de 30 días antes de transicionar hacia ciertas clases
Si deseas transicionar tus objetos hacia S3 Estándar de Acceso Poco Frecuente o S3 Una Zona de Acceso Poco Frecuente estos deben estar almacenados en el bucket por al menos 30 días. AWS no soporta esta transición en los primeros 30 días porque los objetos nuevos son accedidos más frecuentemente de lo que es factible para moverlos hacia una de estas dos clases.
Se aplican cargos por transicionar objetos antes de su duración mínima de almacenamiento
Algunas clases tienen una duración mínima de almacenamiento (revisar aquí), en caso que transiciones un objeto de una clase a la otra y aún no haya cumplido esa duración mínima de almacenamiento, se aplicarán dichos cargos. Por ejemplo, si tu objeto tiene una clase cuya duración mínima de almacenamiento es de 30 días, y luego de 15 días hace una transición hacia otra clase, entonces se aplicarán los cargos correspondientes a los restantes 15 días.
Consideraciones para las acciones de expiración
Cuando un objeto alcanza el fin de su tiempo de vida basado en una acción de expiración, S3 toma una acción de Expiración basado en el estado de Versionado del bucket (tema que trataremos en los próximos artículos):
- Bucket no versionado: Amazon S3 añade el objeto a una cola para removerlo asíncronamente, eliminando el objeto permanentemente.
- Bucket versionado: Si el objeto actual no es un
delete marker, S3 lo marca comodelete markercon un ID de versión único. - Bucket versionado suspendido: S3 crea un
delete markercon null como el ID de la versión. Estedelete markerreemplaza cualquier versión del objeto con un ID de versión null, lo que efectivamente elimina el objeto.
Para buckets con el versionado habilitado o suspendido, hay que tener en cuenta lo siguiente:
- La expiración de objetos solo aplica a la versión actual de un objeto
- S3 no aplica ninguna acción si hay una o más versiones del objeto y el
delete markeres la versión actual
Si no entiendes lo relacionado al versionado de los bucket S3, en el próximo artículo estaremos tratando lo relacionado a este tema
Aplicaciones prácticas
Tu aplicación almacena todos los días en un bucket S3 un fichero para mantener el estado de una entidad en tu aplicación y sepas que luego de tres meses estos ficheros difícilmente serán accedidos nuevamente, pero incluso así tienen que ser accedidos instantáneamente, además, estos ficheros solo deben ser almacenados por un año. En este caso puedes diseñar la solución de la siguiente forma:
- Los objetos se almacenan en
S3 Estándary mediante una regla de transición se mueven hacia la claseS3 Estándar de Acceso Poco Frecuente - Mediante una regla de expiración, los objetos expiran luego de estar almacenados en el bucket por un año
- Los objetos se almacenan en
Tu aplicación genera miniaturas de las imágenes de perfil de cada usuario. Estas imágenes pueden ser fácilmente reproducibles y solo necesitan mantenerse por 60 días. Las imágenes de perfil deben ser obtenidas inmediatamente por 60 días, pero luego de 60 días el usuario puede esperar hasta 6 horas. En este caso puedes diseñar esta solución de la siguiente forma:
- Las miniaturas las almacenas en
S3 Una Zona de Acceso Poco Frecuentecon una regla de expiración para eliminarlas luego de 60 días - Las imágenes las almacenas en
S3 Estándary con una regla de transición las mueves haciaS3 Glacierluego de 60 días
- Las miniaturas las almacenas en
Nos vemos pronto
Esto es todo por ahora relacionado al tercer artículo de esta serie donde estaré brindándote una guía completa sobre los buckets de S3. En el próximo artículo estaremos hablando sobre versionado en los bucket S3. Nos vemos pronto.
Contenido relacionado
- Clases De Almacenamiento S3
- Que Son Los Bucket S3 Y Para Que Sirven?
- Aplicación Práctica De Las Funciones Cloudfront
- Desplegando Nuestro Blog Sin Usar Servidores
- Mi Trayectoria en AWS