Uso de un equilibrador de carga de red para Amazon ECS
Un Network Load Balancer toma las decisiones de enrutamiento en la capa de transporte (TCP/SSL). Puede atender millones de solicitudes por segundo. Una vez que el balanceador de carga ha recibido una conexión, selecciona un destino del grupo de destinos para la regla predeterminada por medio de un algoritmo hash de flujo de direccionamiento. Intenta abrir una conexión TCP con el destino seleccionado en el puerto especificado en la configuración del agente de escucha. Reenvía la solicitud sin modificar los encabezados. Los Network Load Balancers admiten el mapeo de puertos de host dinámico. Por ejemplo, si la definición de contenedor de la tarea especifica el puerto 80 para un puerto de contenedor NGINX y el puerto 0 para el puerto de host, el puerto de host se elige dinámicamente en el rango de puertos efímeros de la instancia de contenedor (como, por ejemplo, del 32768 al 61000 en las AMI optimizadas para Amazon ECS más recientes). Cuando se lanza la tarea, el contenedor NGINX se registra en el Network Load Balancer como una combinación de ID de instancia y puerto, y el tráfico se distribuye al ID de la instancia y al puerto correspondiente a ese contenedor. Este mapeo dinámico le permite tener varias tareas desde un servicio único en la misma instancia de contenedor. Para obtener más información, consulte la Guía del usuario de balanceadores de carga de red.
Para obtener información sobre las prácticas recomendadas para establecer parámetros que aceleren las implementaciones, consulte los siguientes recursos:
Al utilizar los equilibradores de carga de red con Amazon ECS, tenga en cuenta lo siguiente:
-
Amazon ECS requiere el rol de IAM vinculado al servicio, que proporciona los permisos necesarios para registrar y anular el registro de destinos en el balanceador de carga al crear y detener tareas. Para obtener más información, consulte Uso de roles vinculados al servicio para Amazon ECS.
-
No se pueden asociar más de cinco grupos de destino a un servicio.
-
Para los servicios con tareas que utilizan el modo de red
awsvpc
, al crear un grupo de destino para el servicio, debe elegirip
como tipo de destino, noinstance
. Esto se debe a que las tareas que utilizan el modo de redawsvpc
están asociadas a una interfaz de red elástica, no a una instancia de Amazon EC2. -
La configuración de subred del balanceador de carga debe incluir todas las zonas de disponibilidad en las que residen las instancias de contenedor.
-
Después de crear un servicio, la configuración del equilibrador de carga no se puede cambiar desde la AWS Management Console. Puede usar el Copiloto de AWS, AWS CloudFormation, AWS CLI o SDK para modificar la configuración del equilibrador de carga solo del controlador de implementación progresiva
ECS
, no AWS CodeDeploy azul/verde o exterior. Cuando agrega, actualiza o elimina una configuración de equilibrador de carga, Amazon ECS inicia una nueva implementación con la configuración actualizada de Elastic Load Balancing. Esto hace que las tareas se registren y eliminen el registro de los equilibradores de carga. Le recomendamos que lo verifique en un entorno de prueba antes de actualizar la configuración de Elastic Load Balancing. Para obtener más información acerca de cómo modificar la configuración, consulte UpdateService en la Referencia de la API de Amazon Elastic Container Service. -
Si la tarea de un servicio no supera los criterios de comprobación de estado del equilibrador de carga, la tarea se detiene y se reinicia. Este proceso continúa hasta que el servicio alcanza el número de tareas en ejecución deseadas.
-
Cuando se utilizan equilibradores de carga de puerta de enlace configurados con direcciones IP como destinos y la conservación de la IP del cliente está desactivada, las solicitudes se ven como procedentes de la dirección IP privada de los equilibradores de carga de puerta de enlace. Esto significa que los servicios detrás de un equilibrador de carga de puerta de enlace se abren de manera efectiva al mundo en cuanto se permiten solicitudes entrantes y comprobaciones de estado en el grupo de seguridad de destino.
-
Para las tareas de Fargate, debe utilizar la versión de la plataforma
1.4.0
(Linux) o1.0.0
(Windows). -
Si está teniendo problemas con los servicios habilitados para el balanceador de carga, consulte Solución de problemas de los equilibradores de carga de servicio en Amazon ECS.
-
Las tareas y el equilibrador de carga deben encontrarse en la misma VPC.
-
La conservación de la dirección IP del cliente del equilibrador de carga de red también es compatible con los destinos de Fargate.
-
Utilice un grupo de destino único para cada servicio.
El uso del mismo grupo de destino para varios servicios puede provocar problemas durante la implementación del servicio.
Para obtener información sobre cómo crear un equilibrador de carga de red, consulte Create a Network Load Balancer en Equilibrador de carga de red
importante
Si la definición de tareas del servicio utiliza el modo de red awsvpc
(que se requiere para el tipo de lanzamiento de Fargate), se debe elegir ip
como tipo de destino, no instance
. Esto se debe a que las tareas que utilizan el modo de red awsvpc
están asociadas a una interfaz de red elástica, no a una instancia de Amazon EC2.
No puede registrar instancias por ID de instancia si tienen los siguientes tipos de instancia: C1, CC1, CC2, CG1, CG2, CR1, G1, G2, HI1, HS1, M1, M2, M3 y T1. Puede registrar las instancias de estos tipos por dirección IP.