S3 Batch
Aprende cómo usar S3 Batch Operations para copiar grandes volúmenes de objetos entre buckets S3, incluyendo configuraciones cross-account. Esta guía te ayudará a migrar datos de manera eficiente y escalable.
1. Habilitar y configurar un inventario o manifest (lista de objetos)
Crear un inventario S3 (opcional, pero recomendado)
- En la consola de Amazon S3, selecciona el bucket de origen.
- En la sección "Management" (o "Administración"), crea un S3 Inventory que genere un reporte periódico (CSV o Parquet) de todos los objetos.
- Verifica que el inventario incluya la información de "Object version" (si corresponde) y "ETag".
O usar un manifest propio (CSV personalizado)
- Alternativamente, puedes crear tu propio archivo CSV con la siguiente estructura en cada línea:
s3://NOMBRE_BUCKET_ORIGEN/objeto1.txt
s3://NOMBRE_BUCKET_ORIGEN/objeto2.txt
...
- Sube este archivo CSV (manifest) a un bucket S3 al que tengas acceso.
Nota
Este inventario o CSV es el "manifest" que utilizará S3 Batch para saber qué objetos copiar.
2. Configurar permisos y roles en la cuenta de origen y destino
Rol de ejecución del S3 Batch
- En la cuenta de origen, crea un IAM Role que permita a S3 Batch Operations (servicio
batchoperations.s3.amazonaws.com) leer el bucket de origen y, a la vez, escribir en el bucket de destino. - Asegúrate de que en la política esté incluida la acción
s3:GetObjectpara el bucket de origen ys3:PutObjectpara el bucket de destino.
Política en el bucket de destino (cross-account)
- Si el bucket de destino está en otra cuenta, agrega una política de bucket que permita la acción
s3:PutObjectpara el ARN del rol IAM del paso anterior.
3. Crear la tarea (Job) de S3 Batch Operations
Configuración básica del Job
- Ingresar a la consola S3 y seleccionar Batch Operations en el menú lateral.
- Crear un nuevo Job con la siguiente configuración básica:
- Manifest: Indica dónde está el inventario o CSV (manifest) que contiene la lista de objetos.
- Operation: Selecciona Copy.
- Destination Bucket: Elige el bucket de destino (en la otra cuenta).
- IAM Role: Selecciona el rol creado para este propósito (paso 2.1).
Opciones adicionales (opcional)
- Storage Class: Selecciona la clase de almacenamiento que desees en el bucket de destino (Standard, IA, etc.).
- Object Tags: Si quieres replicar o modificar etiquetas en el proceso.
- Retention/Legal Hold: Si aplica compliance.
Revisar y crear Job
- Verifica que los ajustes sean correctos y lanza el Job.
4. Monitorear el proceso
- En la consola de S3 Batch Operations, ubica tu Job y revisa el estado.
- Según el volumen de objetos, la copia puede demorar desde minutos hasta varias horas/días (para millones de archivos).
- Revisa los reportes de progreso y posibles errores (por ejemplo, objetos con acceso denegado).
5. Validar la transferencia
- Conteo de objetos: Verifica que el número total de archivos en el bucket de destino coincide con lo esperado.
- Logs de errores: Consulta la salida de errores o revisa CloudTrail/S3 Logs para objetos que no se hayan copiado correctamente.
- Reejecutar para objetos fallidos: Puedes generar un nuevo manifest con solo los objetos fallidos y lanzar otro Job.
Resumen de puntos clave
- Manifest: Preparar correctamente el inventario o lista de objetos.
- Permisos: Asegurarse de tener un rol IAM con políticas que permitan
GetObjecten origen yPutObjecten destino (cross-account). - Batch Job: Configurar la operación de "Copy" con el rol correcto.
- Monitoreo: Revisar logs y reportes de S3 Batch y, si es necesario, reintentar objetos fallidos.