¿Cómo puedo iniciar restauraciones de un gran volumen de objetos de Amazon S3 que están actualmente en la clase de almacenamiento S3 Glacier o S3 Glacier Deep Archive?
Tengo una gran cantidad de objetos en la clase de almacenamiento Amazon Simple Storage Service (Amazon S3) Glacier o Amazon S3 Glacier Deep Archive. Quiero iniciar una restauración de todos estos objetos en una operación a gran escala.
Solución
Para restaurar un gran volumen de objetos de clase de almacenamiento Amazon S3 Glacier, puede utilizar una de las siguientes opciones:
- Operaciones por lotes de Amazon S3
- Un script personalizado que usted creó mediante la Interfaz de línea de comandos de AWS (AWS CLI)
Nota: Si se muestran errores al ejecutar comandos de AWS CLI, asegúrese de que esté usando la versión más reciente de AWS CLI.
Utilizar una operación por lotes de S3
Cree un trabajo de operaciones por lotes de Amazon S3 para iniciar la restauración de todos los objetos. Puede ejecutar un trabajo de inicio de restauración de objeto en S3 en una lista personalizada de objetos o un informe de inventario de Amazon S3.
Nota: Antes de crear un trabajo, asegúrese de revisar los precios de «Operaciones por lotes de Amazon S3».
Antes de empezar a crear un trabajo de o3peraciones por lotes de S3, asegúrese de se cumplan los siguientes requisitos:
- Tiene un rol o usuario de AWS Identity and Access Management (IAM) con permisos para iniciar una restauración. Además, el rol o usuario de IAM tiene que tener una política de confianza con «Operaciones por lotes de Amazon S3».
- Tiene una lista CSV o un informe de inventario de Amazon S3 que sirve como manifiesto de los objetos que desea restaurar. El archivo de manifiesto debe estar almacenado en un bucket de S3. No se admiten manifiestos con cifrado en servidor (claves proporcionadas por el cliente o claves de AWS Key Management Service). Para obtener más información sobre los requisitos de cada formato, consulte Especificar un manifiesto.
Para crear un trabajo de operación por lotes mediante la consola de Amazon S3 con el fin de iniciar una restauración, siga estos pasos:
1. Abra la consola de Amazon S3.
2. En el panel de navegación, seleccione Operaciones por lotes.
3. Seleccione Crear trabajo.
4. En Región, seleccione la región de AWS en la que desee crear el trabajo.
5. En Seleccionar manifiesto, introduzca lo siguiente:
En Formato del manifiesto, seleccione Informe de inventario de S3 o CSV como formato de archivo.
En Ruta al objeto del manifiesto, introduzca la ruta de S3 que conduce al archivo del manifiesto (ejemplo: s3://awsexamplebucket/manifest.csv).
6. Seleccione Siguiente.
7. En Elegir operación, introduzca lo siguiente:
En Operación, seleccione Restaurar.
En Restaurar código fuente, seleccione Glacier o Glacier Deep Archive.
En Número de días que la copia restaurada está disponible, introduzca el número de días de su caso de uso.
En Capa de restauración, seleccione Recuperación en bloque o Recuperación estándar. Para obtener más información sobre cada nivel, consulte Opciones de recuperación de archivos.
Nota: Las operaciones por lotes de S3 no admiten el nivel de recuperación acelerado.
8. Seleccione Siguiente.
9. En Configurar opciones adicionales, introduzca:
En Descripción, puede optar por introducir una descripción del trabajo. También puede dejar este campo en blanco.
En Prioridad, introduzca un número para indicar la prioridad del trabajo.
En Generar el informe de finalización, mantenga seleccionada esta opción.
En Ámbito del informe de finalización, seleccione Solo tareas fallidas o Todas las tareas en función de su caso de uso.
En Ruta al destino de informe de finalización, introduzca la ruta a la cual desea que se envíe el informe.
En Permiso, elija Seleccionar entre los roles de IAM existentes. A continuación, seleccione el rol de IAM que tenga permisos para iniciar una restauración y una política de confianza con operaciones por lotes de S3.
10. Seleccione Siguiente.
11. En la página Revisión, revise los detalles del trabajo. A continuación, seleccione Crear trabajo.
12. Una vez creado el trabajo, su estado cambia de Nuevo a En preparación. Luego, el estado cambia a Esperando confirmación. Para ejecutar el trabajo, tiene que marcarlo y, a continuación, seleccionar Confirmar y ejecutar. El trabajo no se ejecutará hasta que lo confirme.
13. (Opcional) Si ha seleccionado Generar el informe de finalización, revise el informe después que termine el trabajo. Encontrará el informe en la ruta al destino de informe de finalización que había especificado.
Para obtener descripciones de cada estado del trabajo, consulte Estados de los trabajos.
Para obtener más información sobre los trabajos fallidos, consulte Rastrear fallos de trabajo.
Utilizar un script personalizado de AWS CLI
Puede restaurar sus objetos de Amazon S3 Glacier con el comando restore-object de AWS CLI. Sin embargo, el comando solo puede restaurar un objeto de S3 Glacier a la vez y no admite la acción de restauración en masa. Por lo tanto, utilice la siguiente solución personalizada para restaurar datos en masa desde las clases de almacenamiento S3 Glacier con las opciones de recuperación de archivos.
Nota: Debe probar estos scripts personalizados en un entorno de test o de desarrollo antes de utilizarlos en su entorno de producción. Los comandos personalizados restauran todos los objetos de las clases de almacenamiento de S3 Glacier uno a uno. Si tiene muchos objetos, es posible que se agote el tiempo de espera del comando. Puede ejecutar el comando personalizado con el parámetro Prefijo para reducir el alcance del número de objetos.
En los sistemas basados en Linux o Unix, ejecute el siguiente comando para restaurar exclusivamente todos los objetos de S3 Glacier del bucket:
aws s3api list-objects --bucket <bucket-name> --prefix <prefix> --query 'Contents[?StorageClass==`GLACIER`][Key]' --output text | xargs -I {} sh -c "aws s3api restore-object --bucket <bucket-name> --key \"{}\" --restore-request Days=5,GlacierJobParameters={Tier=Standard} || true"
Asegúrese de hacer lo siguiente:
- Sustituya <bucket-name> por el nombre del bucket de S3.
- Sustituya <prefix> por la ruta de la carpeta de S3.
En los sistemas basados en Windows, haga lo siguiente:
1. Ejecute el siguiente comando para obtener una lista de todos los objetos S3 Glacier en el bucket:
aws s3api list-objects --bucket <bucket-name> --prefix <prefix> --query "Contents[?StorageClass==`GLACIER`][Key]" --output text > list.txt
Cuando ejecute este comando, la lista de objetos se guarda en un archivo llamado list.txt.
2. Ejecute el siguiente comando para restaurar los objetos de S3 Glacier:
for /F "tokens=*" %i in (list.txt) do @aws s3api restore-object --bucket <bucket-name> --key "%i" --restore-request Days=5,GlacierJobParameters={Tier=Standard} || true"
Nota: El script personalizado de AWS CLI anterior supone cargos adicionales para las solicitudes de recuperación de datos y LIST. Dado que list-objects-v2 es una operación paginada, podrían emitirse varias llamadas de API para recuperar todo el conjunto de datos de resultados. Para obtener más información, consulte Precios de Amazon S3.
Información relacionada
Creación de trabajos de operaciones por lotes de S3
Realización de operaciones por lotes a gran escala en objetos de Amazon S3
Contenido relevante
- OFICIAL DE AWSActualizada hace un año