Quiero aprender a configurar la asignación dinámica de puerto para Amazon ECS mediante un equilibrador de carga de aplicación y grupos de destino con el fin de ejecutar varias copias de tareas en una instancia.
Breve descripción
Si usa el equilibrador de carga clásico, no podrá ejecutar varias copias de una tarea en la misma instancia. En vez de esto, si utiliza el equilibrador de carga clásico, deberá asignar números de puerto en una instancia de contenedor de forma estática. Sin embargo, dado que un equilibrador de carga de aplicación utiliza la asignación dinámica de puerto, puede ejecutar varias tareas desde un solo servicio en la misma instancia de contenedor.
Nota: También puede usar los equilibradores de carga de red para la asignación dinámica de puerto. Para obtener más información, consulte Uso de un equilibrador de carga de red para Amazon ECS.
Solución
Para configurar la asignación dinámica de puerto, siga estos pasos:
-
Cree un equilibrador de carga de aplicación para Amazon Elastic Container Service (Amazon ECS) y un grupo de destino.
Importante: Para enrutar correctamente el tráfico de comprobación de estado al crear un grupo de destino, expanda Configuración avanzada de comprobación de estado. En Puerto, seleccione Puerto de tráfico.
-
Abra la consola de Amazon ECS y, a continuación, configure el puerto host 0 para la definición de la tarea que está creando o actualizando. Configure las asignaciones de puerto del contenedor para su aplicación.
Importante: Los modos de red host y awsvpc no son compatibles con la asignación dinámica de puerto de host.
-
Añada una regla para permitir el tráfico de entrada desde el equilibrador de carga hacia las instancias de contenedor. El grupo de seguridad y la lista de control de acceso de la red (ACL de la red) deben permitir el tráfico desde el equilibrador de carga hacia las instancias a través del intervalo de puertos efímeros.
Nota: Para obtener más información sobre los intervalos de puertos efímeros, consulte PortMapping.
-
Abra la consola de Amazon ECS y, a continuación, configure el servicio de modo que utilice el equilibrador de carga de aplicación que ha creado.
Importante: Puede cambiar esta configuración o agregar un equilibrador de carga dentro de un servicio existente al crear el servicio. Si actualiza la definición de la tarea de servicio, entonces el nombre y el puerto del contenedor especificados al crear el servicio se deberán conservar en la definición de la tarea. Para obtener más información, consulte Service load balancing. Como alternativa, puede utilizar el comando update-service de la Interfaz de la línea de comandos de AWS (AWS CLI) para cambiar la configuración o agregar un equilibrador de carga:
aws ecs update-service --service <service-name> --cluster <cluster-name> --load-balancers targetGroupArn=<target-group-arn>,containerName=<container-name>,containerPort=<container-port>
-
Abra la consola de Amazon Elastic Compute Cloud (Amazon EC2) y, a continuación, siga estos pasos:
En el panel de navegación, elija Grupos de destino.
Seleccione el nombre asociado a un hipervínculo del grupo de destino.
Revise la pestaña Destinos. Aquí puede ver qué puerto se utiliza para la tarea en el servicio que ha creado.
Si la asignación dinámica de puerto se ha configurado correctamente, verá los destinos registrados en el grupo de destino y el puerto asignado para la tarea. También podrá ver la tarea en los destinos registrados de los siguientes intervalos de puertos efímeros: 49153-65535 y 32768-61000.
Información relacionada
What is Elastic Load Balancing?
What is an Application Load Balancer?