Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
¿Cómo puedo mejorar el rendimiento de la transferencia de datos con el comando sync de la AWS CLI para Amazon S3?
Utilizo el comando «sync» de la Interfaz de la línea de comandos de AWS (AWS CLI) para transferir datos en Amazon Simple Storage Service (Amazon S3). Sin embargo, la transferencia tarda mucho tiempo en completarse.
Descripción corta
El número de objetos del bucket de origen y destino puede afectar al tiempo que tarda el comando sync en completar el proceso. El tamaño de la transferencia puede afectar a la duración de la sincronización o al coste incurrido por las solicitudes a Amazon S3.
Los marcadores de eliminación también afectan al rendimiento de la lista, por lo que se recomienda minimizar la cantidad de marcadores de eliminación. Dado que el comando sync ejecuta llamadas a la API list en el backend, los marcadores de eliminación también afectan al rendimiento del comando sync. Puedes usar una regla de configuración del ciclo de vida de S3 para eliminar automáticamente los marcadores de eliminación vencidos en un bucket activado por el control de versiones.
Resolución
Para mejorar el tiempo de transferencia al ejecutar el comando sync, sigue estas prácticas.
Ejecución de varias operaciones de la AWS CLI
Nota: Si se muestran errores al poner en marcha comandos de AWS CLI, consulta Solución de errores de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Para copiar una gran cantidad de datos, ejecuta operaciones de sincronización independientes en paralelo. El siguiente comando de ejemplo ejecuta operaciones de sincronización en paralelo para diferentes prefijos:
aws s3 sync s3://source-AWSDOC-EXAMPLE-BUCKET/folder1 s3://destination-AWSDOC-EXAMPLE-BUCKET/folder1 aws s3 sync s3://source-AWSDOC-EXAMPLE-BUCKET/folder2 s3://destination-AWSDOC-EXAMPLE-BUCKET/folder2
Como alternativa, ejecuta operaciones de sincronización en paralelo para filtros de exclusión e inclusión independientes. Las siguientes operaciones de ejemplo separan los archivos que se van a sincronizar por nombres clave que comienzan por los números del 0 al 4 y del 5 al 9:
aws s3 sync s3://source-AWSDOC-EXAMPLE-BUCKET/ s3://destination-AWSDOC-EXAMPLE-BUCKET/ --exclude "*" --include "0*" --include "1*" --include "2*" --include "3*" --include "4*" aws s3 sync s3://source-AWSDOC-EXAMPLE-BUCKET/ s3://destination-AWSDOC-EXAMPLE-BUCKET/ --exclude "*" --include "5*" --include "6*" --include "7*" --include "8*" --include "9*"
Nota: Aunque utilices filtros de exclusión e ** inclusión**, el comando sync seguirá revisando todos los archivos del bucket de origen. La revisión identifica los archivos de origen que se van a copiar al bucket de destino. Si tienes varias operaciones de sincronización dirigidas a diferentes prefijos de nombres clave, cada operación de sincronización revisará todos los archivos de origen. Sin embargo, gracias a los filtros de exclusión e inclusión, solo se copiarán en el bucket de destino los archivos incluidos en los filtros.
Para obtener más información sobre cómo optimizar el rendimiento de la carga de trabajo, consulta Prácticas recomendadas para patrones de diseño: optimizar el rendimiento de Amazon S3.
Activación de la aceleración de transferencias de Amazon S3
Usa la aceleración de transferencias de Amazon S3 para mejorar las velocidades de transferencia.
La aceleración de transferencias conlleva cargos adicionales. Para revisar los precios, selecciona la pestaña Transferencia de datos en la página de precios de Amazon S3. Para determinar si la aceleración de transferencias mejora tus velocidades de transferencia, utiliza la herramienta de comparación de velocidades de aceleración de transferencias de Amazon S3.
Nota: La aceleración de transferencias no admite la acción CopyObject en todas las regiones de AWS.
Modificación de los valores de configuración de la AWS CLI
max_concurrent_requests
Cuando usas max_concurrent_requests, el número predeterminado de solicitudes que puedes enviar a Amazon S3 al mismo tiempo es de 10. Para mejorar el rendimiento, aumenta el valor.
Importante:
- Cuando ejecutas más subprocesos, utilizas más recursos en la máquina. Asegúrate de que la máquina tenga suficientes recursos para admitir la cantidad máxima de solicitudes simultáneas.
- Demasiadas solicitudes simultáneas pueden provocar tiempos de espera de conexión o ralentizar la capacidad de respuesta del sistema. Para evitar problemas de tiempo de espera debido a AWS CLI, establece el valor --cli-read-timeout o --cli-connect-timeout en 0.
multipart_threshold
Cuando un archivo alcanza el límite de tamaño, Amazon S3 utiliza una carga multiparte en lugar de una sola operación. El valor predeterminado para multipart_threshold es de 8 MB. Para aumentar el valor predeterminado, ejecuta el siguiente comando:
aws configure set default.s3.multipart_threshold 16MB
Nota: Sustituye 16 MB por el valor al que deseas aumentar.
multipart_chunksize
El valor predeterminado para multipart_chunksize es de 8 MB y el valor mínimo es de 5 MB. Para aumentar el umbral de tamaño de los fragmentos, ejecuta el siguiente comando:
aws configure set default.s3.multipart_chunksize 16MB
Nota: Sustituye 16 MB por el valor al que deseas aumentar.
Puedes especificar el número de bytes como un entero o utilizar un sufijo de tamaño. Para objetos de gran tamaño, puedes establecer multipart_threshold en 100 MB para que solo los archivos de gran tamaño utilicen cargas multiparte. Establece multipart_chunksize en 25 MB para equilibrar las cargas eficientes y los tamaños de partes administrables.
(Opcional) Comprobación de la configuración de la instancia de EC2
Si utilizas una instancia de Amazon Elastic Compute Cloud (Amazon EC2) para ejecutar la operación de sincronización, sigue estas prácticas recomendadas:
- Utiliza un tipo de instancia de Amazon EC2 más grande. Los tipos de instancias más grandes tienen un ancho de banda elevado y redes optimizadas para Amazon Elastic Block Store (Amazon EBS).
- Para disminuir la latencia, reduce la distancia geográfica entre la instancia y tu bucket de Amazon S3. Si la instancia se encuentra en una región diferente a la del bucket, utiliza una instancia que esté en la misma región.
- Si la instancia se encuentra en la misma región que el bucket de origen, configura un punto de enlace de Amazon Virtual Private Cloud (Amazon VPC) para S3.
Información relacionada
¿Cómo puedo transferir grandes cantidades de datos de un bucket de Amazon S3 a otro?
Vídeos relacionados


Contenido relevante
- preguntada hace 2 meseslg...
- preguntada hace 3 meseslg...
- preguntada hace 3 meseslg...
- preguntada hace 3 meseslg...