Uso de un equilibrador de carga de aplicaciones para Amazon ECS
Un Application Load Balancer toma decisiones de enrutamiento en la capa de aplicación (HTTP/HTTPS), admite el enrutamiento basado en rutas y puede dirigir las solicitudes a uno o varios puertos de cada instancia de contenedor del clúster. Los Application 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 equilibrador de carga de aplicación 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 dicho 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 Application Load Balancers.
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 aplicación 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.
-
El grupo de destino debe tener el tipo de dirección IP establecido en IPv4.
-
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. -
Si el servicio requiere acceso a varios puertos con equilibrador de carga, como el puerto 80 y el puerto 443 para un servicio HTTP o HTTPS, puede configurar dos oyentes. Un agente de escucha es responsable de las solicitudes HTTPS que reenvían la solicitud al servicio y otro agente de escucha es responsable de redirigir las solicitudes HTTP al puerto HTTPS adecuado. Para obtener más información, consulte Creación de un agente de escucha para el Application Load Balancer en la Guía del usuario de Application Load Balancers.
-
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.
-
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.
-
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 aplicaciones, consulte Create an Application Load Balancer en Application Load Balancers