Uso de un equilibrador de carga de puerta de enlace para Amazon ECS
Un equilibrador de carga de puerta de enlace opera en la tercera capa del modelo de interconexión de sistemas abiertos (OSI), es decir, la capa de red. Escucha todos los paquetes IP en todos los puertos y reenvía el tráfico al grupo de destino especificado en la regla de oyentes. Mantiene la persistencia de los flujos en un dispositivo de destino específico mediante 5 tuplas (para flujos TCP/UDP) o 3 tuplas (para flujos que no son TCP/UDP). 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 equilibrador de carga de puerta de enlace como una combinación de ID de instancia y puerto, y el tráfico se distribuye al ID de la instancia y al puerto correspondientes 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 What is a Gateway Load Balancer en Gateway Load Balancers.
Para obtener información sobre las prácticas recomendadas para establecer parámetros que aceleren las implementaciones, consulte los siguientes recursos:
Tenga en cuenta lo siguiente al utilizar los equilibradores de carga de puerta de enlace con Amazon ECS:
-
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.
-
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. -
En el caso de los servicios con tareas que utilizan un modo de red que no sea el de
awsvpc
, no se admiten los equilibradores de carga de puerta de enlace. -
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.
-
Al utilizar el equilibrador de carga de puerta de enlace configurado con direcciones IP como destinos, 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.
-
Cuando use el tipo de destino
instance
, las tareas y el equilibrador de carga deben estar en la misma VPC. Cuando se utiliza el tipo de destinoip
, se admite la conectividad entre VPC. -
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 puerta de enlace, consulte Introducción a los equilibradores de carga de puertas de enlace en los equilibradores de carga de puerta de enlace .
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.