Balanceo de carga de servicios - Amazon Elastic Container Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Balanceo de carga de servicios

El servicio de Amazon ECS se puede configurar opcionalmente para utilizar Elastic Load Balancing a fin de distribuir el tráfico de manera uniforme entre las tareas del servicio.

Amazon ECS Los servicios de admiten los tipos de balanceadores Balanceador de carga de aplicacionesde Balanceador de carga de red carga Classic Load Balancer, Balanceador de carga de aplicacionesy . Los se utilizan para dirigir el tráfico HTTP/HTTPS (o de capa 7). Balanceador de carga de redLos se utilizan para dirigir el tráfico TCP o UDP (o Classic Load Balancerde capa 4). Los se utilizan para dirigir el tráfico TCP. Para obtener más información, consulte Tipos de balanceadores de carga.

Los Balanceador de carga de aplicaciones ofrecen varias características nuevas que los hacen interesantes para utilizar con los servicios de Amazon ECS

  • Cada servicio puede servir el tráfico desde varios balanceadores de carga y exponer varios puertos con balance de carga especificando varios grupos de destino.

  • Solo se admiten en tareas que usan los tipos de lanzamiento Fargate y EC2

  • Balanceador de carga de aplicacionesLos permiten a los contenedores utilizar el mapeo de puerto de host dinámico (de modo que se permitan varias tareas desde el mismo servicio por instancia de contenedor).

  • Balanceador de carga de aplicacionesLos admiten el direccionamiento basado en rutas y las reglas de prioridad (de modo que varios servicios puedan utilizar el mismo puerto de escucha en un único Balanceador de carga de aplicaciones).

Le recomendamos que utilice los Balanceador de carga de aplicaciones para los servicios de Amazon ECS de manera que pueda aprovechar estas características más recientes, a menos que su servicio requiera una característica que solo esté disponible con los Balanceador de carga de red o los Classic Load Balancer Para obtener más información sobre Elastic Load Balancing y las diferencias existentes entre los balanceadores de carga, consulte la Guía del usuario de Elastic Load Balancing.

Consideraciones sobre el balanceo de carga de servicios

Tenga en cuenta lo siguiente cuando utilice el balanceo de carga de servicios.

Balanceador de carga de aplicaciones Balanceador de carga de red Consideraciones de y

Las siguientes consideraciones son específicas de los servicios de Amazon ECS que utilizan Application Load Balancers o Balanceador de carga de reds:

  • Amazon ECS requiere el IAM rol vinculado al servicio , que proporciona los permisos necesarios para registrar y anular el registro de instancias de contenedor en el balanceador de carga cuando se crean y detienen tareas. Para obtener más información, consulte Rol vinculado a servicio para Amazon ECS.

  • En el caso de los servicios que utilizan un Balanceador de carga de aplicaciones o Balanceador de carga de red, no puede asociar más de cinco grupos de destino a un servicio.

  • Para los servicios con tareas que utilizan el modo de awsvpc red , al crear un grupo de destino para el servicio, debe elegir ip como tipo de destino, no instance. Esto se debe a que las tareas que utilizan el modo de awsvpc red están asociadas a una interfaz de red elástica, no a una Amazon EC2 instancia .

  • Si su servicio utiliza un Balanceador de carga de aplicaciones y requiere acceso a varios puertos con balanceo de carga, como el puerto 80 y el puerto 443 para un servicio HTTP/HTTPS, puede configurar dos agentes de escucha. 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 Crear un agente de escucha de Balanceador de carga de aplicaciones 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, el ARN del grupo de destino o el nombre del balanceador de carga, el nombre del contenedor y el puerto del contenedor especificados en la definición del servicio no se pueden modificar. No puede agregar, eliminar ni cambiar la configuración del balanceador de carga de un servicio existente. Si actualiza la definición de la tarea para el servicio, el nombre del contenedor y el puerto del contenedor que se especificaron cuando se creó el servicio deben permanecer en la definición de la tarea.

  • Si la tarea de un servicio no supera los criterios de comprobación de estado del balanceador 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.

  • Se admite el modo de inicio lento de Balanceador de carga de aplicaciones Para obtener más información, consulte Balanceador de carga de aplicaciones Consideraciones sobre el modo de inicio lento de.

  • Cuando se utilizan Balanceador de carga de red configurados con direcciones IP como destinos, las solicitudes se ven como procedentes de la dirección IP privada Balanceador de carga de red Esto significa que los servicios detrás de un Balanceador de carga de red están efectivamente abiertos al mundo en cuanto se permiten las solicitudes entrantes y las comprobaciones de estado en el grupo de seguridad del destino.

  • El uso de un Balanceador de carga de red para dirigir el tráfico UDP a sus Amazon ECS tareas en Fargate requiere que la tarea utilice la versión de la plataforma 1.4.0.

  • Si está teniendo problemas con los servicios habilitados para el balanceador de carga, consulte Solución de problemas con los balanceadores de carga de servicio.

Balanceador de carga de aplicaciones Consideraciones sobre el modo de inicio lento de

Los Balanceador de carga de aplicaciones habilitados para el modo de inicio lento son compatibles con los servicios de Amazon ECS Para obtener más información acerca del modo de inicio lento, consulte Grupos de destino para sus balanceadores de carga de aplicaciones.

Para asegurarse de que el programador del servicio no tenga en cuenta las comprobaciones de estado de los contenedores en mal estado hasta que se hayan preparado las tareas y estén listas para recibir tráfico, se requieren las siguientes configuraciones:

  • Debe configurar la comprobación de estado del contenedor para que devuelva un estado UNHEALTHY hasta que finalice el periodo de inicio lento.

  • Debe configurar el valor del periodo de gracia de la comprobación de estado para el servicio de Amazon ECS de forma que tenga la misma duración que el modo de inicio lento.

Tenga en cuenta lo siguiente cuando utilice diferentes modos de red de tareas con el modo de inicio lento de Balanceador de carga de aplicaciones

  • Cuando se utiliza el modo de red awsvpc, a cada tarea se le asigna su propia interfaz de red elástica (ENI) y dirección IP, lo que permite a Balanceador de carga de aplicaciones registrar cada tarea como un destino en el grupo de destino. Esto permite que cada destino recién registrado tenga habilitado el modo de inicio lento.

  • Cuando se utiliza el modo de red host, la tarea omite las construcciones de red de Docker y asigna los puertos de contenedor directamente a la interfaz o interfaces de red de la instancia Amazon EC2 Puede registrar la instancia de contenedor como el destino de Balanceador de carga de aplicaciones en lugar de como la dirección IP de la tarea. Esto significa que solo puede ejecutar una tarea por instancia si desea que el modo de inicio lento funcione de forma eficaz. Si actualizara una tarea o servicio existente o reiniciara la instancia de contenedor, no se volvería a registrar la instancia de contenedor como destino de Balanceador de carga de aplicaciones y, por tanto, no comenzaría el periodo de inicio lento.

  • Cuando se utiliza el modo de red bridge, como ocurre con el modo de red host, se registra la instancia de contenedor como el destino de Balanceador de carga de aplicaciones en lugar de la tarea de Amazon ECS, por lo que se aplican las mismas consideraciones descritas anteriormente.

Además, las siguientes consideraciones solo se aplican cuando se utiliza el modo de inicio lento de Balanceador de carga de aplicaciones y se añaden tareas de Amazon ECS como destinos:

  • Al habilitar el inicio lento para un grupo de destino, los destinos ya registrados con el grupo de destino no entran en el modo de inicio lento.

  • Al habilitar el inicio lento para un grupo de destino vacío y, a continuación, registrar uno o varios destinos mediante una operación de registro único, estos destinos no entran en el modo de inicio lento. Los destinos recién registrados entran en el modo de inicio lento solo cuando hay al menos un destino registrado que no está en modo de inicio lento.

  • Si anula el registro de un destino en modo de inicio lento, el destino sale del modo de inicio lento. Si registra de nuevo el mismo destino, entra en modo de inicio lento de nuevo.

  • Si un destino en modo de inicio lento tiene un estado incorrecto y, a continuación, vuelve a encontrarse en buen estado antes de que pase el periodo de duración, el destino permanece en modo de inicio lento hasta que termina el periodo de duración, momento en el cual sale del modo de inicio lento. Si un destino que no se encuentra en modo de inicio lento cambia de incorrecto a correcto, no entra en el modo de inicio lento.

Classic Load BalancerConsideraciones sobre

Las siguientes consideraciones son específicas de los servicios de Amazon ECS que utilizan Classic Load Balancers:

  • Los servicios con tareas que utilizan el modo de red awsvpc, como las que tienen el tipo de lanzamiento Fargate, no admiten Classic Load Balancers.

  • Todos los contenedores que se lanzan en una definición de tarea única se colocan siempre en la misma instancia de contenedor. Para los Classic Load Balancer puede elegir colocar varios contenedores (en la misma definición de tarea) detrás del mismo balanceador de carga definiendo varios puertos de host en la definición de servicio y añadiendo dichos puertos de escucha al balanceador de carga. Por ejemplo, si una definición de tarea consta de Elasticsearch utilizando el puerto 3030 en la instancia de contenedor, con Logstash y Kibana utilizando el puerto 4040 en la instancia de contenedor, el mismo balanceador de carga puede enrutar el tráfico a Elasticsearch y Kibana a través de dos escuchas. Para obtener más información, consulte Agentes de escucha para Classic Load Balancer en la Guía del usuario de Classic Load Balancers .

    importante

    No se recomienda conectar varios servicios al mismo Classic Load Balancer. Como el registro y la cancelación del registro de las instancias de contenedor se realizan con Classic Load Balancers y no con combinaciones de host y puerto, esta configuración puede provocar problemas si se detiene una tarea de un servicio. En este escenario, podría ocurrir que una tarea de un servicio que se está deteniendo cancele el registro de toda la instancia de contenedor del Classic Load Balancer, mientras otra tarea de un servicio diferente en la misma instancia de contenedor sigue utilizándolo. Si desea conectar varios servicios a un único balanceador de carga, le recomendamos que utilice un Balanceador de carga de aplicaciones.