Tengo un bucket de Amazon Simple Storage Service (Amazon S3) que almacena millones de objetos. Quiero utilizar una regla de configuración del ciclo de vida para vaciar el bucket de forma que no se me cobre más por el almacenamiento.
Solución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Nota: Esta guía de configuración del ciclo de vida se aplica solo a los buckets de Amazon S3 de uso general. Los buckets de directorio tienen diferentes requisitos de administración del ciclo de vida. Los buckets de tabla no admiten las reglas de configuración del ciclo de vida.
Importante: La siguiente solución elimina definitivamente todos los datos de tu bucket de S3. No es posible recuperar los datos, por lo que deberás revisar todos los objetos y datos del bucket antes de eliminarlos.
Para vaciar un bucket con una regla de configuración de ciclo de vida, utiliza la consola o la AWS CLI.
Uso de la consola
Puedes crear una regla de configuración del ciclo de vida en la consola que establezca el vencimiento de las versiones actuales de los objetos y elimine definitivamente las versiones anteriores de los mismos. Para crear la regla, sigue estos pasos:
- Abre la consola de Amazon S3.
- En la lista de buckets de uso general, selecciona el bucket que quieres vaciar.
- Elige la pestaña Administración.
- Elige Crear la regla del ciclo de vida.
- En Nombre de la regla de ciclo de vida, introduce un nombre de regla.
- En Elegir un ámbito de regla, selecciona Aplicar a todos los objetos del bucket.
- Selecciona Acepto que esta regla se aplique a todos los objetos del bucket.
- En Acciones de la regla del ciclo de vida, selecciona las siguientes opciones:
Hacer que venzan las versiones actuales de los objetos
Eliminar permanentemente las versiones de objetos no actuales
Eliminar marcadores de eliminación de objetos vencidos o Eliminar las cargas multiparte incompletas
- En Hacer que venzan las versiones actuales de los objetos, en el campo Días después de la creación del objeto, indica 1.
- En Eliminar permanentemente las versiones de objetos no actuales, en el campo Días tras los que los objetos dejan de ser actuales, indica 1.
- Deje en blanco el campo Número de versiones más recientes que retener (opcional) para eliminar todas las versiones.
- Selecciona Eliminar las cargas multiparte incompletas e indica 1 en el campo Cantidad de días.
- Elige Crear regla.
- Para crear una segunda regla del ciclo de vida, repite los pasos 4 a 7.
- Selecciona Eliminar marcadores de eliminación de objetos vencidos o Eliminar las cargas multiparte incompletas.
- Selecciona Eliminar marcadores de eliminación de objetos vencidos.
- Elige Crear regla.
Amazon S3 ejecuta las reglas de configuración del ciclo de vida una vez al día. Después de que Amazon S3 ejecute las reglas por primera vez, marca para su eliminación todos los objetos que cumplan los requisitos de vencimiento. No se te seguirá cobrando por los objetos que marques para su eliminación.
Amazon S3 establece el vencimiento de las versiones de objetos y elimina los marcadores de eliminación de forma asíncrona. Es posible que las reglas tarden unos días en ejecutarse antes de que el bucket se vacíe. Para obtener más información sobre la eliminación asíncrona de objetos en Amazon S3, consulta Vencimiento de objetos.
Uso de la AWS CLI
Puedes usar la AWS CLI para crear una regla de ciclo de vida para vaciar tu bucket de S3. Sigue estos pasos:
-
Crea un archivo con tu contenido JSON, como lifecycle-rules.json. El siguiente ejemplo de código muestra un conjunto de reglas de ciclo de vida:
{ "Rules": [{
"Expiration": {
"Days": 1
},
"ID": "FullDelete",
"Filter": {
"Prefix": ""
},
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NoncurrentDays": 1
},
"AbortIncompleteMultipartUpload": {
"DaysAfterInitiation": 1
}
},
{
"Expiration": {
"ExpiredObjectDeleteMarker": true
},
"ID": "DeleteMarkers",
"Filter": {
"Prefix": ""
},
"Status": "Enabled"
}
]
}
-
Ejecuta el comando put-bucket-lifecycle-configuration para crear o actualizar la configuración del ciclo de vida. El siguiente comando usa un archivo JSON denominado lifecycle-rules.json:
aws s3api put-bucket-lifecycle-configuration --bucket delete-marker-testing-demo --lifecycle-configuration file://lifecycle-rules.json
Nota: Puedes agregar un filtro de prefijo al contenido JSON para aplicar la regla solo a nivel de prefijo. El siguiente es un ejemplo del comando:
"Filter": { "Prefix": "folder1/"
},
Información relacionada
Eliminación de marcadores de eliminación de objetos vencidos en un bucket con control de versiones habilitado
Administración del ciclo de vida de los objetos
¿Cómo puedo eliminar objetos y buckets de Amazon S3?
Eliminación de un bucket de uso general
Configuración del ciclo de vida de S3 de un bucket