Configurar el ciclo de vida de un bucket
En esta sección, se explica cómo puede establecer una configuración de S3 Lifecycle en un bucket mediante los SDK de AWS, la AWS CLI o la consola de Amazon S3. Para obtener información acerca de la configuración de S3 Lifecycle, consulte Administración del ciclo de vida del almacenamiento.
Puede usar las reglas de ciclo de vida para definir acciones que quiera que realice Amazon S3 durante el periodo de vida de un objeto (por ejemplo: la transición de objetos a otra clase de almacenamiento, su archivado o su eliminación tras transcurrir un periodo de tiempo especificado).
Antes de establecer una configuración del ciclo de vida, tenga en cuenta lo siguiente:
Retraso de la propagación
Cuando añade una configuración de S3 Lifecycle a un bucket, por lo general se produce un cierto desfase antes de que una configuración de ciclo de vida nueva o actualizada se propague totalmente a todos los sistemas de Amazon S3. Habrá un retraso de algunos minutos antes de que la configuración entre en vigor completamente. Este retraso también se puede producir cuando elimina una configuración de S3 Lifecycle.
Deshabilitación o eliminación de las reglas de Lifecycle
Cuando se deshabilitan o eliminan reglas de Lifecycle, después de cierto retraso Amazon S3 deja de programar la eliminación o transición de nuevos objetos. Cualquier objeto que ya haya sido programado se desprograma y no se elimina ni se traslada.
nota
Antes de actualizar, deshabilitar o eliminar las reglas del ciclo de vida, utilice las operaciones de la API LIST
(como ListObjectsV2, ListObjectVersions, and ListMultipartUploads) o Inventario de Amazon S3 para comprobar que Amazon S3 ha realizado la transición y ha caducado los objetos aptos en función de sus casos de uso. Si tiene problemas para actualizar, deshabilitar o eliminar las reglas del ciclo de vida, consulte Solucionar problemas de Amazon S3 Lifecycle.
Objetos existentes y nuevos
Cuando añade una configuración de ciclo de vida a un bucket, las reglas de configuración se aplican a los objetos existentes y a los objetos que añade posteriormente. Por ejemplo, si hoy añade una regla de configuración de Lifecycle con una acción de vencimiento que causa que objetos con un prefijo específico expiren 30 días después de la creación, Amazon S3 pondrá en cola de eliminación cualquier objeto existente con más de 30 días de antigüedad.
Cambios en la facturación
Es posible que haya un desfase entre la fecha en que se cumplen las reglas de configuración de ciclo de vida y la fecha en que se realiza la acción para cumplir la regla. Sin embargo, los cambios en la facturación se producen ni bien se cumple la regla de configuración de ciclo de vida, incluso aunque la acción todavía no se haya realizado.
Un ejemplo es cuando no se le cobra por el almacenamiento después del tiempo de vencimiento del objeto, incluso aunque el objeto no se elimine inmediatamente. Otro ejemplo es cuando se le cobran las tarifas de almacenamiento de S3 Glacier Flexible Retrieval en cuanto transcurre el tiempo de transición del objeto, incluso aunque el objeto no se traslade de inmediato a la clase de almacenamiento S3 Glacier Flexible Retrieval. Las transiciones del ciclo de vida a la clase de almacenamiento de S3 Intelligent-Tiering son la excepción. Los cambios en la facturación no se producen hasta que el objeto haya pasado a la clase de almacenamiento de S3 Intelligent-Tiering.
Puede definir una regla de ciclo de vida para todos los objetos o para un subconjunto de objetos del bucket mediante un prefijo compartido (nombres de objetos que comienzan por una cadena común) o una etiqueta. Mediante una regla de ciclo de vida puede definir acciones específicas a las versiones de objetos actualizadas y no actualizadas. Para obtener más información, consulte los siguientes temas:
Para crear una regla de ciclo de vida
-
Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. -
En la lista Buckets, seleccione el nombre del bucket para el que desea crear una regla de ciclo de vida.
-
Seleccione la pestaña Management (Administración) y seleccione Create lifecycle rule (Crear regla de ciclo de vida).
-
En Lifecycle rule name (Nombre de regla de ciclo de vida), escriba un nombre para la regla.
El nombre debe ser único dentro del bucket.
-
Elija el ámbito de la regla de ciclo de vida:
-
Para aplicar esta regla de ciclo de vida a todos los objetos con un prefijo o etiqueta específicos, elija Limit the scope to specific prefixes or tags (Limitar el ámbito a prefijos o etiquetas específicos).
-
Para limitar el ámbito por prefijo, en Prefix (Prefijo), escriba el prefijo.
-
Para limitar el ámbito por etiqueta, seleccione Add tag (Agregar etiqueta) e introduzca la clave y el valor de la etiqueta.
Para obtener más información acerca de los prefijos de nombre de objeto, consulte Creación de nombres de clave de objeto. Para obtener más información acerca de las etiquetas de objeto, consulte Categorización del almacenamiento mediante etiquetas.
-
-
Para aplicar esta regla de ciclo de vida a todos los objetos del bucket, seleccione This rule applies to all objects in the bucket (Esta regla se aplica a todos los objetos del bucket) y seleccione I acknowledge that this rule applies to all objects in the bucket (Reconozco que esta regla se aplica a todos los objetos del bucket).
-
-
Para filtrar una regla por tamaño de objeto, puede verificar Specify minimum object size (Especificar el tamaño mínimo de objeto), Specify maximum object size (Especificar tamaño máximo de objeto) o ambas opciones.
-
Cuando especifica un tamaño mínimo de objeto o un tamaño máximo de objeto, el valor debe ser superior a 0 bytes y hasta 5 TB. Puede indicar este valor en bytes, KB, MB o GB.
-
Cuando especifica ambos, el tamaño máximo de objeto debe ser superior al tamaño mínimo de objeto.
-
-
En Lifecycle rule actions (Acciones de regla de ciclo de vida), elija las acciones que desea que realice la regla de ciclo de vida:
-
Realizar la transición de versiones de objetos actuales entre clases de almacenamiento
-
Realizar la transición de versiones de objetos anteriores entre clases de almacenamiento
-
Caducar las versiones de objetos actuales
-
Eliminar permanentemente versiones de objetos anteriores
-
Eliminar marcadores de eliminación caducados o cargas multiparte incompletas
Dependiendo de las acciones que elija, aparecerán diferentes opciones.
-
-
Para realizar la transición de versiones de objetos actuales entre clases de almacenamiento, en Transition current versions of objects between storage classes (Realizar la transición de versiones de objetos actuales entre clases de almacenamiento):
-
En Storage class transitions (Transiciones de clase de almacenamiento), seleccione la clase de almacenamiento a la que quiera realizar la transición:
-
Standard-IA
-
Intelligent-Tiering (Capas avanzadas)
-
One Zone-IA
-
S3 Glacier Flexible Retrieval
-
Glacier Deep Archive
-
-
En Days after object creation (Días después de la creación del objeto), introduzca el número de días posteriores a la creación del objeto en los que quiera realizar la transición.
Para obtener más información acerca de las clases de almacenamiento, consulte Uso de las clases de almacenamiento de Amazon S3. Puede definir transiciones para versiones de objetos actuales o anteriores, o tanto para las actuales como para las anteriores. El control de versiones le permite mantener varias versiones de un objeto en un bucket. Para obtener más información sobre el control de versiones, consulte Uso de la consola de S3.
importante
Si elige la clase de almacenamiento S3 Glacier Flexible Retrieval o Glacier Deep Archive, los objetos permanecen en Amazon S3. No puede acceder a ellos directamente a través del servicio independiente de Amazon S3 Glacier. Para obtener más información, consulte Transición de objetos con Amazon S3 Lifecycle.
-
-
Para realizar la transición de versiones de objetos no actuales entre clases de almacenamiento, en Transition non-current versions of objects between storage classes (Realizar la transición de versiones de objetos no actuales entre clases de almacenamiento):
-
En Storage class transitions (Transiciones de clase de almacenamiento), seleccione la clase de almacenamiento a la que quiera realizar la transición:
-
Standard-IA
-
Intelligent-Tiering (Capas avanzadas)
-
One Zone-IA
-
S3 Glacier Flexible Retrieval
-
Glacier Deep Archive
-
-
En Days after object becomes non-current (Días después de que el objeto se vuelve no actual), introduzca el número de días posteriores a la creación del objeto en los que quiera realizar la transición.
-
-
Para hacer caducar versiones de objetos actuales, en Expire current versions of objects (Hacer caducar versiones de objetos actuales), en Number of days after object creation (Número de días después de la creación del objeto), ingrese el número de días.
importante
En un bucket sin control de versiones, la acción de vencimiento da como resultado que Amazon S3 elimine de forma permanente el objeto. Para obtener más información sobre las acciones del ciclo de vida, consulte Elementos para describir las acciones del ciclo de vida.
-
Para eliminar de manera permanente versiones anteriores de objetos, en Permanently delete noncurrent versions of objects (Eliminar de manera permanente versiones no actuales de objetos), en Days after objects become noncurrent (Días después de que los objetos se vuelven no actuales), escriba el número de días. Puede especificar opcionalmente el número de versiones más recientes que desea retener introduciendo un valor en Number of newer versions to retain (Número de versiones más recientes que se deben retener).
-
Bajo Delete expired markers or incomplete multipart uploads (Eliminar marcadores caducados o cargas multiparte incompletas), seleccione Delete expired object delete markers (Eliminar marcadores de eliminación de objetos caducados) y Delete incomplete multipart uploads (Eliminar cargas multiparte incompletas). A continuación, escriba el número de días que han de transcurrir entre el inicio de la carga multiparte y el momento en que quiera finalizarla y limpiar las cargas incompletas.
Para obtener más información acerca de las cargas multipartes, consulte Carga y copia de objetos con la carga multiparte.
-
Elija Create rule (Crear regla).
Si la regla no contiene ningún error, Amazon S3 la habilita y se puede ver en la ficha Management (Administración) en Lifecycle rules (Reglas del ciclo de vida).
Para obtener información sobre las plantillas y los ejemplos de CloudFormation, consulte Uso de plantillas de AWS CloudFormation y AWS::S3::Bucket en la Guía del usuario de AWS CloudFormation.
Puede utilizar los siguientes comandos de la AWS CLI para administrar configuraciones de ciclo de vida de S3:
-
put-bucket-lifecycle-configuration
-
get-bucket-lifecycle-configuration
-
delete-bucket-lifecycle
Para obtener instrucciones acerca de cómo configurar la AWS CLI, consulte Desarrollo con Amazon S3 mediante la AWS CLI.
La configuración de Amazon S3 Lifecycle es un archivo XML. Pero cuando se usa la AWS CLI no se puede especificar el XML. Debe especificar el JSON en su lugar. A continuación se describen configuraciones de ciclo de vida de ejemplo de JSON equivalentes que puede especificar en el comando de la AWS CLI.
Considere la siguiente configuración de S3 Lifecycle de ejemplo:
ejemplo Ejemplo 1
ejemplo Ejemplo 2
Puede probar la put-bucket-lifecycle-configuration
de la siguiente manera.
Para probar la configuración
-
Guarde la configuración del ciclo de vida de JSON en un archivo (
lifecycle.json
). -
Ejecute el siguiente comando de la AWS CLI para establecer la configuración del ciclo de vida en su bucket.
$
aws s3api put-bucket-lifecycle-configuration \ --bucketbucketname
\ --lifecycle-configuration file://lifecycle.json -
Para verificar, recupere la configuración del ciclo de vida de S3 con el comando
get-bucket-lifecycle-configuration
de la AWS CLI de la siguiente manera.$
aws s3api get-bucket-lifecycle-configuration \ --bucketbucketname
-
Para eliminar la configuración del ciclo de vida de S3, utilice el comando
delete-bucket-lifecycle
de la AWS CLI de la siguiente manera.aws s3api delete-bucket-lifecycle \ --bucket
bucketname
En las secciones siguientes de la referencia de la API de Amazon Simple Storage Service se describe la API de REST relacionada con la configuración de S3 Lifecycle.