Saltar al contenido principal

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:GetObject para el bucket de origen y s3:PutObject para 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:PutObject para el ARN del rol IAM del paso anterior.

3. Crear la tarea (Job) de S3 Batch Operations

Configuración básica del Job

  1. Ingresar a la consola S3 y seleccionar Batch Operations en el menú lateral.
  2. 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

  1. En la consola de S3 Batch Operations, ubica tu Job y revisa el estado.
  2. Según el volumen de objetos, la copia puede demorar desde minutos hasta varias horas/días (para millones de archivos).
  3. Revisa los reportes de progreso y posibles errores (por ejemplo, objetos con acceso denegado).

5. Validar la transferencia

  1. Conteo de objetos: Verifica que el número total de archivos en el bucket de destino coincide con lo esperado.
  2. Logs de errores: Consulta la salida de errores o revisa CloudTrail/S3 Logs para objetos que no se hayan copiado correctamente.
  3. 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 GetObject en origen y PutObject en 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.