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 en 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 aws s3 de alto nivel realizan automáticamente una carga multiparte cuando el tamaño del objeto supera el umbral. Estos comandos de alto nivel incluyen aws s3 cp y 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 errores para la 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:
-
Añade preferred_transfer_client a tu archivo de configuración de la AWS CLI:
[default]s3 =
preferred_transfer_client = crt
También puedes ejecutar el comando configure:
aws configure set default.s3.preferred_transfer_client crt
-
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
-
(Opcional) Establece target_bandwidth para controlar el rendimiento máximo. Añade un valor de target_bandwidth al archivo de configuración de la AWS CLI:
[default]
s3 =
preferred_transfer_client = crt
target_bandwidth = 1Gb/s
También puedes ejecutar 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 fiabilidad 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ámetro | Descripción | Valor predeterminado | Recomendación |
|---|
| max_bandwidth | Ancho de banda máximo para cargar datos en Amazon S3 | Ninguno (ilimitado) | Configúralo para evitar la saturación de la red. |
| max_concurrent_requests | Cantidad de solicitudes simultáneas a Amazon S3 | 10 | Auméntalo a 20-50 para conexiones de gran ancho de banda con recursos de sistema adecuados. |
| max_queue_size | Número máximo de tareas en la cola de transferencias | 1000 | Auméntalo para operaciones por lotes con muchos archivos. |
| multipart_chunksize | Tamaño de cada parte cargada | 8 MB | Auméntalo a 16-64 MB para archivos de más de 1 GB, con menos de 10 000 fragmentos. |
| multipart_threshold | Tamaño del archivo que desencadena una carga multiparte | 8 MB | Manté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 Aceleración de transferencias de S3
Aceleración de transferencias de Amazon S3 proporciona transferencias rápidas y seguras a largas distancias entre tu cliente y Amazon S3. Aceleración de transferencias utiliza las ubicaciones periféricas distribuidas a nivel mundial de Amazon CloudFront.
Aceleración de transferencias incurre en cargos adicionales, así que asegúrate de revisar los precios. Para determinar si Aceleración de transferencias mejora las velocidades de transferencia para tu caso de uso, consulta la herramienta de comparación de velocidades de Aceleración de transferencias de Amazon S3.
Nota: Aceleración de transferencias no admite copias de CopyObject en las regiones de AWS.
Para activar Aceleración de transferencias de Amazon S3, sigue estos pasos:
-
Activa Aceleración de transferencias de S3 para tu bucket.
-
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
También puedes configurar 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
AWS CLI S3 Configuration (Configuración de S3 de la AWS CLI)
¿Qué es la Interfaz de la línea de comandos de AWS?