Quiero mejorar la velocidad al transferir datos de mi instancia de Amazon Elastic Compute Cloud (Amazon EC2) a mi bucket de Amazon Simple Storage Service (Amazon S3).
Solució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.
Uso de redes mejoradas en la instancia de Amazon EC2
Requisito previo: Si usas un adaptador de red mejorado (ENA), completa los requisitos previos de la instancia para las redes mejoradas. Si usas la interfaz Intel 82599 VF, prepara la instancia para una red mejorada.
Revisa las métricas de tu instancia con Amazon CloudWatch. Si el valor de NetworkPacketsOut de tu instancia es mayor que el valor esperado, activa las redes mejoradas.
Uso de cargas de trabajo paralelas para la transferencia de datos
Para mejorar el tiempo que se tarda en completar la transferencia de datos, divide la transferencia en varias operaciones que se excluyan mutuamente. Por ejemplo, si usas la AWS CLI, ejecuta varios comandos cp, mv o sync de la AWS CLI al mismo tiempo.
Si distribuyes los datos entre varios prefijos, ejecuta varias operaciones de la AWS CLI que realicen sincronizaciones independientes al mismo tiempo. Para obtener instrucciones, consulta la sección Ejecución de varias operaciones de la AWS CLI de ¿Cómo puedo mejorar el rendimiento de la transferencia de datos con el comando sync de la AWS CLI para Amazon S3?
Personalización de las configuraciones de carga en la AWS CLI
Para acelerar la transferencia de datos, personaliza los siguientes valores de configuración de la AWS CLI para Amazon S3:
- El valor de multipart_chunksize establece el tamaño de cada parte que la AWS CLI carga en una carga multiparte para un archivo individual. Optimiza este valor para separar los archivos más grandes en partes más pequeñas para velocidades de carga más rápidas.
Nota: Una carga multiparte requiere que cargues un solo archivo en no más de 10 000 partes distintas. Asegúrate de que el tamaño del fragmento que has establecido equilibre el tamaño del archivo de la parte y el número de partes.
- Cambia el valor de max_concurrent_requests para aumentar la cantidad de solicitudes que puedes enviar a Amazon S3 a la vez. El valor predeterminado es 10. Después de aumentar este valor, es posible que obtengas una respuesta estancada. Combina un valor de max_concurrent_requests más alto con cargas de trabajo paralelas para obtener mejores velocidades de transferencia en general. De forma predeterminada, la AWS CLI admite subprocesos múltiples.
Nota: Asegúrate de que la máquina tenga suficientes recursos para admitir la cantidad máxima de solicitudes simultáneas.
Uso de un punto de enlace de VPC para Amazon S3
Si tu instancia se encuentra en la misma región de AWS que tu bucket de Amazon S3, utiliza un punto de enlace de puerta de enlace de Amazon Virtual Private Cloud (Amazon VPC).
También puedes conectarte de forma privada a una VPC sin una puerta de enlace de Internet, un dispositivo NAT o una conexión VPN. Las instancias de una VPC no requieren direcciones IP públicas para comunicarse con el bucket de Amazon S3. Cuando utilizas un punto de enlace de Amazon VPC, el tráfico de datos entre tu VPC y Amazon S3 se dirige a la red de AWS.
Nota: Los puntos de enlace de Amazon VPC para Amazon S3 no admiten solicitudes en diferentes regiones de AWS.
Uso de la aceleración de transferencias de Amazon S3 entre regiones geográficamente distantes
Las velocidades de transferencia de datos pueden aumentar cuando la instancia y el bucket de Amazon S3 se encuentran en regiones geográficamente cercanas. Si la instancia y el bucket se encuentran en regiones geográficamente distantes, activa la aceleración de transferencias de Amazon S3. Antes de activar la aceleración de transferencias de Amazon S3, consulta los precios de Amazon S3.
Para determinar si la aceleración de transferencias mejora las velocidades de transferencia de datos para tu instancia, consulta la herramienta de comparación de velocidades de aceleración de transferencias de Amazon S3.
**Nota:**Cuando usas la aceleración de transferencias de S3, no puedes usar la llamada a la API CopyObject en todas las regiones.
Actualización del tipo de instancia de Amazon EC2
El uso elevado de la CPU de las instancias de Amazon EC2 puede afectar a las velocidades de transferencia de datos. Puedes cambiar la instancia por un tipo de instancia que proporcione un mayor rendimiento de red y memoria.
Nota: Para garantizar una conexión de red fiable entre la instancia de Amazon EC2 y Amazon S3, elige un tipo de instancia con al menos 10 GiBps de conectividad.
Uso de transferencias fragmentadas
Si vas a transferir archivos de gran tamaño, utiliza las cargas multiparte y las solicitudes HTTP multiparte por intervalos.
Información relacionada
Prácticas recomendadas para patrones de diseño: optimizar el rendimiento de Amazon S3