Saltar al contenido

¿Cómo puedo optimizar el rendimiento cuando uso la AWS CLI para cargar archivos de gran tamaño en Amazon S3?

5 minutos de lectura
0

Quiero optimizar el rendimiento cuando uso la interfaz de la línea de comandos de AWS (AWS CLI) para cargar archivos de gran tamaño (1 GB o más) en Amazon Simple Storage Service (Amazon S3).

Descripción corta

Si cargas archivos de gran tamaño a Amazon S3, se recomienda usar las cargas multiparte. Además, configura un umbral de tamaño de objeto para las cargas multiparte. Cuando utilizas la AWS CLI para cargar archivos, todos los comandos high-level aws s3 realizan automáticamente una carga multiparte cuando el tamaño del objeto supera el umbral. Estos comandos de alto nivel incluyen aws s3 cp and aws s3 sync.

Para optimizar el rendimiento, elige uno de los métodos siguientes:

Resolución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Opción 1: Uso del cliente basado en CRT con la AWS CLI

Para usar el cliente basado en CRT, sigue estos pasos:

  1. Agrega preferred_transfer_client a tu archivo de configuración de la AWS CLI:

    [default]s3 =
    preferred_transfer_client = crt

    O bien, ejecuta el comando configure:

    aws configure set default.s3.preferred_transfer_client crt
  2. Ejecuta el comando cp para verificar que el cliente CRT esté activo:

    aws s3 cp large-file.zip s3://your-bucket-name/ --debug 2>&1 | grep -i crt

    Ejemplo de salida cuando el cliente CRT está activo:

    aws s3 cp large-file.zip s3://your-bucket-name/ --debug 2>&1 | grep -i crt  
    \[DEBUG\] \[2025-12-01T07:58:46Z\] \[00007fe20f9b9340\] \[tls-handler\] - Set security policy to AWS-CRT-SDK-TLSv1.0-2025-PQ (minimum\_tls\_version: 128; cipher\_pref: 0)  
    2025-12-01 07:58:46,742 - MainThread - s3transfer.crt - DEBUG - Recommended CRT throughput target in gbps: None  
    2025-12-01 07:58:46,742 - MainThread - s3transfer.crt - DEBUG - Using CRT throughput target in gbps: 10.0
  3. (Opcional) Establece target_bandwidth para controlar el rendimiento máximo. Agrega un valor target_bandwidth a tu archivo de configuración de la AWS CLI:

    \[default\]  
    s3 =  
        preferred\_transfer\_client = crt  
        target\_bandwidth = 1Gb/s

    O bien, ejecuta el comando configure:

    aws configure set default.s3.target_bandwidth 1Gb/s

    Nota: Configura esto solo si tienes requisitos de ancho de banda específicos. La AWS CLI optimiza automáticamente el ancho de banda en función de las capacidades del sistema. La configuración incorrecta de este valor puede sobrecargar los recursos de la red o del sistema. Se recomienda dejar esta opción como nula.

Tras activar el cliente basado en CRT, la AWS CLI utiliza automáticamente el cliente para cargar archivos. Esto mejora el rendimiento y la confiabilidad en comparación con la AWS CLI estándar, especialmente para cargas de archivos de gran tamaño.

Personaliza las cargas multiparte con estos parámetros:

ParámetroDescripciónValor predeterminadoRecomendación
max_bandwidthAncho de banda máximo para cargar datos en Amazon S3Ninguno (ilimitado)Configúralo para evitar la saturación de la red.
max_concurrent_requestsCantidad de solicitudes simultáneas a Amazon S310Aumenta a 20-50 para conexiones de gran ancho de banda con recursos de sistema adecuados.
max_queue_sizeNúmero máximo de tareas en la cola de transferencias1000Incremento para operaciones por lotes con muchos archivos.
multipart_chunksizeTamaño de cada parte cargada8 MBAumenta a 16-64 MB para archivos de más de 1 GB, con menos de 10 000 fragmentos.
multipart_thresholdTamaño del archivo que desencadena una carga multiparte8 MBMantén el valor predeterminado para la mayoría de los casos de uso [?].

Nota: Comprueba que tu equipo cuente con los recursos suficientes para admitir la cantidad máxima de solicitudes simultáneas que necesitas.

Opción 2: Activación de la aceleración de transferencias de S3

La aceleración de transferencias de Amazon S3 proporciona transferencias rápidas y seguras a largas distancias entre tu cliente y Amazon S3. La aceleración de transferencias utiliza las ubicaciones periféricas distribuidas a nivel mundial de Amazon CloudFront.

La aceleración de transferencias incurre en cargos adicionales, así que asegúrate de revisar los precios. Para determinar si la aceleración de transferencias mejora las velocidades de transferencia para tu caso práctico, consulta la herramienta de comparación de velocidades de aceleración de transferencias de Amazon S3.

Nota: La aceleración de transferencias no admite copias de CopyObject en las regiones de AWS.

Para activar Amazon S3 Transfer Acceleration, sigue estos pasos:

  1. Activa la aceleración de transferencias de S3 para tu bucket.

  2. Especifica el punto de enlace acelerado para una transferencia de un solo archivo:

    aws s3 cp large-file.zip s3://your-bucket-name/ --endpoint-url https://s3-accelerate.amazonaws.com

    O bien, configura el punto de enlace en tu archivo de configuración de la CLI para que se aplique a todas las transferencias de archivos:

    \[default\]  
    s3 =  
        use\_accelerate\_endpoint = true

Información relacionada

Configuración S3 de la AWS CLI

¿Qué es la interfaz de la línea de comandos de AWS?