Quiero transferir al menos 1 TB de datos de un bucket de Amazon Simple Storage Service (Amazon S3) a otro bucket.
Resolución
Para transferir grandes cantidades de datos de un bucket de Amazon S3 a otro, utilice uno de los métodos siguientes:
- Interfaz de la línea de comandos de AWS (AWS CLI)
- Replicación entre regiones (CRR) o replicación en la misma región (SRR)
- Operaciones por lotes de Amazon S3
- S3DistCP con Amazon EMR
- AWS DataSync
Nota: Si se muestran errores al poner en marcha comandos de AWS CLI, consulte Solución de errores de AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.
AWS CLI
Para mejorar el tiempo de transferencia de datos, divida la transferencia en varias operaciones que se excluyan mutuamente. Por ejemplo, utilice la AWS CLI para ejecutar varias operaciones en paralelo, como aws s3 cp, aws s3 mv o aws s3 sync. Puede crear más subprocesos de subida si utiliza los parámetros --exclude e --include para filtrar las operaciones por nombre de archivo.
Nota: Como los parámetros --exclude e --include se procesan en el lado del cliente, los recursos de la máquina local pueden afectar al rendimiento de la operación.
Para copiar una gran cantidad de datos de un bucket a otro, ejecute los siguientes comandos:
Nota: Los nombres de los archivos comienzan por un número.
-
Ejecute el siguiente comando cp para copiar los archivos con nombres que comiencen por números del 0 al 4:
aws s3 cp s3://source-awsexamplebucket/ s3://destination-awsexamplebucket/ --recursive --exclude "*" --include "0*" --include "1*" --include "2*" --include "3*" --include "4*"
-
Ejecute el siguiente comando cp en una segunda operación de la AWS CLI para copiar los archivos con nombres que comiencen por números del 5 al 9:
aws s3 cp s3://source-awsexamplebucket/ s3://destination-awsexamplebucket/ --recursive --exclude "*" --include "5*" --include "6*" --include "7*" --include "8*" --include "9*"
También puede personalizar los siguientes valores de configuración de S3 de la AWS CLI para mejorar el tiempo de transferencia de datos:
- Use el comando multipart_chunksize para establecer el tamaño de cada parte que la AWS CLI carga en una carga multiparte para un archivo individual. Puede dividir un archivo más grande en partes más pequeñas para aumentar la velocidad de carga.
Nota: Para una carga multiparte, puede cargar un único archivo en un máximo de 10 000 partes distintas. Compruebe que el tamaño del fragmento que ha establecido equilibre el tamaño del archivo de la parte y el número de partes.
- Use max_concurrent_requests para establecer el número de solicitudes que puede enviar a Amazon S3 al mismo tiempo. El valor predeterminado es 10, aunque puede aumentarlo a un valor superior. Verifique que su máquina tenga recursos suficientes para admitir la cantidad máxima de solicitudes simultáneas.
CRR o SSR
Configure CRR o SSR en el bucket de origen para permitir que Amazon S3 replique automáticamente los nuevos objetos del bucket de origen al bucket de destino. Para filtrar los objetos que Amazon S3 replica, utilice un prefijo o una etiqueta. Para obtener más información, consulte Elementos del archivo de configuración de replicación.
Después de configurar la replicación, Amazon S3 solo replica los objetos nuevos en el bucket de destino, no los objetos existentes. Para obtener más información, consulte Replicación de objetos existentes con replicación por lotes y ¿Qué no se replica con las configuraciones de replicación?
Operaciones por lotes de Amazon S3
Puede usar Operaciones por lotes de Amazon S3 para copiar varios objetos con una sola solicitud. Al crear un trabajo de operación por lotes, puede usar un informe de inventario de Amazon S3 para especificar los objetos en los que Amazon S3 realiza la operación. O bien, puede usar un manifiesto CSV para especificar un trabajo por lotes. A continuación, Operaciones por lotes de Amazon S3 llama a la API para realizar la operación.
Cuando finalice el trabajo de operación por lotes, recibirá una notificación y un informe de finalización opcional.
S3DistCp con Amazon EMR
La operación S3DistCp en Amazon EMR puede copiar en paralelo una gran cantidad de objetos en los buckets de Amazon S3. S3DistCp primero copia los archivos del bucket de origen a los nodos de trabajo de un clúster de Amazon EMR. A continuación, la operación escribe los archivos de los nodos de trabajo en el bucket de destino. Para obtener más información, consulte Siete consejos para usar S3DistCp en Amazon EMR para mover datos de manera eficiente entre HDFS y Amazon S3.
Importante: Como debe usar Amazon EMR con S3DistCp, asegúrese de revisar los precios de Amazon EMR.
AWS DataSync
Para usar AWS DataSync para mover grandes cantidades de datos de un bucket de Amazon S3 a otro bucket, debe crear una ubicación de transferencia. Para ver un bucket de uso general, consulte Creación de la ubicación de transferencia para un bucket de uso general de Amazon S3. Para un bucket de Outpost, consulte Creación de una ubicación de transferencia para un bucket de S3 en Outposts.
Nota:
Información relacionada
¿Cómo identifico los costes de la transferencia de datos en Amazon S3?