Grupos objetivo para sus balanceadores de carga de aplicaciones - Elastic Load Balancing

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.

Grupos objetivo para sus balanceadores de carga de aplicaciones

Los grupos de destino enruta las solicitudes a uno o varios destinos registrados, como instancias EC2, con el protocolo y el número de puerto que especifique. Puede registrar un destino en varios grupos de destino. Puede configurar las comprobaciones de estado de cada grupo de destino. Las comprobaciones de estado se llevan a cabo en todos los destinos registrados en un grupo de destino especificado en la regla del agente de escucha del balanceador de carga.

Cada grupo de destino se utiliza para direccionar solicitudes a uno o varios destinos registrados. Cuando se crea la regla de cada agente de escucha, se especifican un grupo de destino y las condiciones. Cuando se cumple la condición de una regla, el tráfico se reenvía al grupo de destino correspondiente. Puede crear grupos de destino diferentes para los distintos tipos de solicitudes. Por ejemplo, puede crear un grupo de destino para las solicitudes generales y otros grupos de destino para las solicitudes destinadas a los microservicios de la aplicación. Para obtener más información, consulte Componentes Application Load Balancer.

Puede definir la configuración de comprobación de estado del balanceador de carga para cada grupo de destino. Cada grupo de destino utiliza la configuración de comprobación de estado predeterminada, a menos que la anule al crear el grupo de destino o la modifique posteriormente. Después de especificar un grupo de destino en una regla para un agente de escucha, el balanceador de carga monitoriza constantemente el estado de todos los destinos registrados en el grupo de destino que se encuentran en una zona de disponibilidad habilitada para el balanceador de carga. El balanceador de carga direcciona las solicitudes a los destinos registrados que se encuentran en buen estado.

Configuración de direccionamiento

De forma predeterminada, un balanceador de carga direcciona las solicitudes a sus destinos mediante el protocolo y el número de puerto especificados al crear el grupo de destino. Si lo prefiere, puede anular el puerto utilizado para direccionar el tráfico a un destino al registrarlo en el grupo de destino.

Los grupos de destino admiten los siguientes protocolos y puertos:

  • Protocols: HTTP, HTTPS

  • Puertos: 1-65535

Si un grupo de destino está configurado con el protocolo HTTPS o utiliza comprobaciones de estado de HTTPS, las conexiones TLS a los destinos utilizan la configuración de seguridad de laELBSecurityPolicy-2016-08 política. El balanceador de carga establece conexiones TLS con los destinos mediante certificados que se instalan en los destinos. El balanceador de carga no valida estos certificados. Por lo tanto, puede utilizar certificados autofirmados o certificados que hayan caducado. Como el balanceador de cargas se encuentra en una nube privada virtual (VPC), el tráfico entre el balanceador de cargas y los destinos se autentica a nivel de paquetes, por lo que no corre el riesgo de sufrir man-in-the-middle ataques o suplantación de identidad, incluso si los certificados de los destinos no son válidos.

Target type (Tipo de objetivo)

Al crear un grupo de destino, debe especificar su tipo de destino, que determina el tipo de destino que especifica al registrar los destinos en este grupo de destino. Después de crear un grupo de destino, no puede cambiar su tipo de destino.

Los tipos de destinos posibles son los siguientes:

instance

Los destinos se especifican por ID de instancia.

ip

Los destinos son direcciones IP.

lambda

El destino es una función Lambda.

Cuando el tipo de destino es ip, puede especificar direcciones IP de uno de los siguientes bloques de CIDR:

Estos bloques CIDR compatibles le permiten registrar lo siguiente en un grupo de destino: ClassicLink instancias, instancias de una VPC que están enlazadas a la VPC del balanceador de carga (misma región o región diferente),AWS recursos a los que se puede direccionar por dirección IP y puerto (por ejemplo, bases de datos) y recursos locales vinculados aAWS través de una conexión Site-to-Site VPNAWS Direct Connect o a una conexión VPN de sitio a sitio.

importante

No puede especificar direcciones IP direccionables públicamente.

Si especifica destinos utilizando un ID de instancia, el tráfico se redirige a las instancias utilizando la dirección IP privada principal especificada en la interfaz de red principal de la instancia. Si especifica destinos utilizando direcciones IP, puede dirigir el tráfico a una instancia utilizando cualquier dirección IP privada de una o varias interfaces de red. Esto permite que varias aplicaciones de una instancia utilicen el mismo puerto. Cada interfaz de red puede tener su propio grupo de seguridad.

Si el tipo de destino de su grupo de destino es lambda, puede registrar una única función Lambda. Cuando el balanceador de carga recibe una solicitud para la función Lambda, invoca la función Lambda. Para obtener más información, consulte Lambda funciona como destino.

Tipo de dirección IP

Al crear un nuevo grupo de destino, puede seleccionar el tipo de dirección IP de su grupo objetivo. Esto controla la versión IP utilizada para comunicarse con los objetivos y comprobar su estado de salud.

Los equilibradores de carga de aplicaciones admiten grupos de destino IPv4 e IPv6. La selección predeterminada es IPv4.

Consideraciones
  • Todas las direcciones IP de un grupo de destino deben tener el mismo tipo de dirección IP. Por ejemplo, no puede registrar un destino IPv4 en un grupo de destinos IPv6.

  • Los grupos de destino de IPv6 solo se pueden usar con balanceadores dedualstack carga.

  • Los grupos de destino IPv6 solo admiten destinos de tipo IP.

Versión de protocolo

De forma predeterminada, los balanceadores de carga de aplicaciones envían solicitudes a los destinos mediante HTTP/1.1. Puede utilizar la versión del protocolo para enviar solicitudes a los destinos mediante HTTP/2 o gRPC.

La siguiente tabla resume el resultado de las combinaciones del protocolo de solicitud y la versión del protocolo del grupo objetivo.

Protocolo de solicitud Versión de protocolo Resultado
HTTP/1.1 HTTP/1.1 Correcto
HTTP/2 HTTP/1.1 Correcto
gRPC HTTP/1.1 Error
HTTP/1.1 HTTP/2 Error
HTTP/2 HTTP/2 Correcto
gRPC HTTP/2 Éxito si los objetivos son compatibles con gRPC
HTTP/1.1 gRPC Error
HTTP/2 gRPC Éxito de una solicitud POST
gRPC gRPC Correcto
Consideraciones sobre la versión del protocolo gRPC
  • El único protocolo de escucha admitido es HTTPS.

  • El único tipo de acción admitido para las reglas de escucha esforward.

  • Los únicos tipos de destino admitidos soninstance yip.

  • El balanceador de carga analiza las solicitudes de gRPC y encamina las llamadas de gRPC a los grupos de destino adecuados en función del paquete, el servicio y el método.

  • El balanceador de carga admite la transmisión unaria del lado del cliente, la transmisión del lado del servidor y la transmisión bidireccional.

  • Debe proporcionar un método de comprobación de estado personalizado con el formato/package.service/method.

  • Debe especificar los códigos de estado gRPC que se utilizarán al comprobar si se ha recibido una respuesta correcta de un destino.

  • No puede utilizar las funciones de Lambda como objetivos.

Consideraciones para la versión del protocolo HTTP/2
  • El único protocolo de escucha admitido es HTTPS.

  • El único tipo de acción admitido para las reglas de escucha esforward.

  • Los únicos tipos de destino admitidos soninstance yip.

  • El balanceador de carga admite la transmisión desde los clientes. El balanceador de carga no admite la transmisión a los destinos.

Destinos registrados

El balanceador de carga sirve como un único punto de contacto para los clientes y distribuye el tráfico entrante entre los destinos registrados en buen estado. Puede registrar cada destino en uno o varios grupos de destino.

Si aumenta la demanda en la aplicación, puede registrar más destinos en uno o varios grupos para controlar la demanda. El balanceador de carga comienza a direccionar las solicitudes a un destino recién registrado tan pronto como se completa el proceso de registro y el destino supera las comprobaciones de estado iniciales.

Si la demanda de la aplicación se reduce o cuando es preciso realizar el mantenimiento de los destinos, anular el registro de los destinos en los grupos de destino. Al anular el registro de un destino, este se quita del grupo de destino pero no se ve afectado de ningún otro modo. El balanceador de carga deja de direccionar solicitudes a un destino tan pronto como se anula su registro. El destino adquiere el estado draining hasta que se completan las solicitudes en tránsito. Puede volver a registrar el destino en el grupo de destino cuando esté preparado para reanudar la recepción de solicitudes.

Si registras los destinos por ID de instancia, puedes usar tu balanceador de carga con un grupo de Auto Scaling. Tras vincular un grupo objetivo a un grupo de Auto Scaling, Auto Scaling registra los objetivos en el grupo objetivo cuando los lanza. Para obtener más información, consulte Adjuntar un balanceador de carga a al grupo de Auto Scaling en la Guía del usuario de Amazon EC2 Auto Scaling.

Límites
  • No puede registrar las direcciones IP de otro Application Load Balancer en la misma VPC. Si el otro Application Load Balancer se encuentra en una VPC que está enlazada a la VPC del balanceador de carga, puede registrar sus direcciones IP.

Atributos del grupo de destino

Los siguientes atributos del grupo de destino se admiten si el tipo de grupo de destino es instance o ip:

deregistration_delay.timeout_seconds

Cantidad de tiempo que Elastic Load Balancing espera antes de anular el registro de un destino. El rango va de 0 a 3600 segundos. El valor de predeterminado es de 300 segundos.

load_balancing.algorithm.type

El algoritmo de balanceador de carga determina cómo el balanceador de carga selecciona los destinos al direccionar las solicitudes. El valor es round_robin o least_outstanding_requests. El valor predeterminado es round_robin.

load_balancing.cross_zone.enabled

Indica si el equilibrio de carga entre zonas está habilitado. El valor estrue,false ouse_load_balancer_configuration. El valor predeterminado es use_load_balancer_configuration.

slow_start.duration_seconds

El periodo de tiempo, en segundos, durante el cual el balanceador de carga envía al grupo de destino recién registrado una cuota linealmente mayor del tráfico. El rango va de 30 a 900 segundos (15 minutos). El valor predeterminado es 0 segundos (deshabilitado).

stickiness.enabled

Indica si están habilitadas las sesiones rápidas. El valor es true o false. El valor predeterminado es false.

stickiness.app_cookie.cookie_name

El nombre de la cookie de la aplicación. El nombre de la cookie de la aplicación no puede tener los siguientes prefijos:AWSALBAWSALBAPP,, oAWSALBTG; están reservados para el uso del equilibrador de carga.

stickiness.app_cookie.duration_seconds

El periodo de caducidad de las cookies basadas en la aplicación, en segundos. Una vez transcurrido este periodo, la cookie se considera antigua. El valor mínimo es de 1 segundo y el máximo es de 7 días (604800 segundos). El valor predeterminado es de 1 día (86400 segundos).

stickiness.lb_cookie.duration_seconds

El periodo de caducidad de las cookies basado en la duración, en segundos. Una vez transcurrido este periodo, la cookie se considera antigua. El valor mínimo es de 1 segundo y el máximo es de 7 días (604800 segundos). El valor predeterminado es de 1 día (86400 segundos).

stickiness.type

Tipo de persistencia. Los valores posibles son lb_cookie y app_cookie.

target_group_health.dns_failover.minimum_healthy_targets.count

El número mínimo de objetivos que deben estar en buen estado. Si el número de destinos en buen estado está por debajo de este valor, marque la zona como no saludable en el DNS para que el tráfico se dirija únicamente a las zonas en buen estado. Los valores posibles sonoff o un número entero comprendido entre 1 y el número máximo de objetivos. El valor predeterminado es off.

target_group_health.dns_failover.minimum_healthy_targets.percentage

El porcentaje mínimo de objetivos que deben estar sanos. Si el porcentaje de objetivos en buen estado está por debajo de este valor, marque la zona como no saludable en el DNS para que el tráfico se dirija únicamente a las zonas en buen estado. Los valores posibles sonoff o un número entero comprendido entre 1 y 100. El valor predeterminado es off.

target_group_health.unhealthy_state_routing.minimum_healthy_targets.count

El número mínimo de objetivos que deben estar en buen estado. Si el número de objetivos en buen estado está por debajo de este valor, envíe tráfico a todos los objetivos, incluidos los objetivos no saludables. El rango es de 1 hasta el número máximo de objetivos. El valor predeterminado es 1.

target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage

El porcentaje mínimo de objetivos que deben estar sanos. Si el porcentaje de objetivos en buen estado está por debajo de este valor, envía tráfico a todos los objetivos, incluidos los objetivos no saludables. Los valores posibles sonoff o un número entero comprendido entre 1 y 100. El valor predeterminado es off.

El siguiente atributo del grupo de destino se admite si el tipo de grupo de destino es lambda:

lambda.multi_value_headers.enabled

Indica si los encabezados de solicitud y respuesta intercambiados entre el balanceador de carga y la función Lambda incluyen matrices de valores o cadenas. Los valores posibles son true o false. El valor predeterminado es false. Para obtener más información, consulte Encabezados multivalor.

Alalgoritmo de enrutamiento

De forma predeterminada, el algoritmo de direccionamiento de turnos rotativos se utiliza para direccionar las solicitudes al nivel del grupo de destino. En su lugar, puede especificar el algoritmo de direccionamiento de solicitudes menos pendientes.

Considere la posibilidad de utilizar solicitudes menos pendientes si las solicitudes de su aplicación tienen una complejidad variable o sus destinos tienen una capacidad de procesamiento variable. Los turnos rotativos son una buena opción cuando las solicitudes y los destinos son similares, o si necesita distribuir las solicitudes por igual entre los destinos. Puedes comparar el efecto de las solicitudes por turnos con las menos pendientes mediante las siguientes CloudWatch métricas: RequestCount, TargetConnectionErrorCount, y TargetResponseTime.

Consideraciones
  • No puede habilitar las solicitudes menos pendientes y el modo de inicio lento.

  • Si habilita las sesiones fijas, el algoritmo de enrutamiento del grupo objetivo se anula tras la selección inicial del objetivo.

  • Con HTTP/2, el balanceador de carga convierte la solicitud en varias solicitudes HTTP/1.1, por lo que la solicitud menos pendiente trata cada solicitud HTTP/2 como varias solicitudes.

  • Cuando utiliza las solicitudes menos pendientes con WebSockets, el destino se selecciona con las solicitudes menos pendientes. El balanceador de carga crea una conexión con este destino y envía todos los mensajes a través de esta conexión.

New console
Para modificar el algoritmo de enrutamiento mediante la nueva consola
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, en LOAD BALANCING (BALANCEO DE CARGA), elija Target Groups (Grupos de destino).

  3. Elija el nombre del grupo de destino para abrir la página de detalles.

  4. En la pestaña Detalles del grupo, en la sección Atributos, elija Editar.

  5. En la página Editar atributos, para el algoritmo de equilibrio de carga, seleccione Solicitudes por turnos o Menos pendientes.

  6. Elija Save changes (Guardar cambios).

Old console
Para modificar el algoritmo de enrutamiento mediante la consola antigua
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, en LOAD BALANCING (BALANCEO DE CARGA), elija Target Groups (Grupos de destino).

  3. Seleccione el grupo de destino.

  4. En la pestaña Descriptions, elija Edit attributes.

  5. En la página Edit attributes (Editar atributos), en Load balancing algorithm (Algoritmo de balanceo de carga), elija Round robin (Turnos rotativos) o Least outstanding requests (Solicitudes menos pendientes) y, a continuación, elija Save (Guardar).

Para modificar el algoritmo de direccionamiento usando la AWS CLI

Utilice el modify-target-group-attributescomando con elload_balancing.algorithm.type atributo.

Retardo de anulación del registro

Elastic Load Balancing deja de enviar solicitudes a los destinos que se están cancelando el registro. De forma predeterminada, Elastic Load Balancing espera 300 segundos antes de completar el proceso de anulación del registro, lo que puede ayudar a que se completen las solicitudes en tránsito al destino. Para cambiar el tiempo de espera de Elastic Load Balancing, actualice el valor del retraso de cancelación del registro.

El estado inicial de un destino en proceso de anulación del registro es draining. Una vez transcurrido el retardo de anulación del registro, el proceso de anulación del registro se completa y el estado del destino es unused. Si el objetivo forma parte de un grupo de Auto Scaling, se puede terminar y reemplazar.

Si un destino que anula el registro no tiene solicitudes en vuelo ni conexiones activas, Elastic Load Balancing completa inmediatamente el proceso de cancelación del registro, sin esperar a que transcurra el retraso en la cancelación del registro. Sin embargo, aunque se haya completado la cancelación del registro del objetivo, el estado del objetivo se muestra comodraining hasta que venza el tiempo de espera del retraso de cancelación del registro. Una vez transcurrido el tiempo de espera, el objetivo pasa a ununused estado.

Si un destino en proceso de anulación del registro termina la conexión antes de que haya transcurrido el retardo de anulación del registro, el cliente recibe una respuesta de error de nivel 500.

New console
Para actualizar el valor del retraso de cancelación del registro mediante la nueva consola
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, en LOAD BALANCING (BALANCEO DE CARGA), elija Target Groups (Grupos de destino).

  3. Elija el nombre del grupo de destino para abrir la página de detalles.

  4. En la pestaña Detalles del grupo, en la sección Atributos, elija Editar.

  5. En la página Editar atributos, cambie el valor del retraso de cancelación del registro según sea necesario.

  6. Elija Save changes (Guardar cambios).

Old console
Para actualizar el valor del retraso de cancelación del registro mediante la consola anterior
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, en LOAD BALANCING (BALANCEO DE CARGA), elija Target Groups (Grupos de destino).

  3. Seleccione el grupo de destino.

  4. En la pestaña Descriptions, elija Edit attributes.

  5. En la página Edit attributes, cambie el valor de Deregistration delay según sea necesario y, a continuación, seleccione Save.

Para actualizar el valor del retardo de anulación del registro desde la AWS CLI

Utilice el modify-target-group-attributescomando con elderegistration_delay.timeout_seconds atributo.

Modo de inicio lento

De forma predeterminada, un destino comienza a recibir su cuota completa de solicitudes tan pronto como se registra con un grupo de destino y pasa una comprobación de estado inicial. Usar el modo de inicio lento proporciona a los destinos tiempo para calentarse antes de que el balanceador de carga les envíe una cuota completa de solicitudes.

Después de habilitar el inicio lento para un grupo de destino, sus destinos entran en modo de inicio lento cuando el grupo de destino los considera en buen estado. Un destino en modo de inicio lento sale de este modo cuando transcurre el período de duración de inicio lento configurado o el destino deja de estar en buen estado. El balanceador de carga aumenta linealmente el número de solicitudes que puede enviar a un destino en modo de inicio lento. Cuando un objetivo en buen estado sale del modo de inicio lento, el balanceador de carga puede enviarle una parte completa de las solicitudes.

Consideraciones
  • Al habilitar el inicio lento para un grupo de destino, los destinos en buen estado registrados en 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 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 en buen estado 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 vuelve a registrar el mismo destino, este entra en modo de inicio lento cuando el grupo de destino lo considere en buen estado.

  • Si un destino en modo de inicio lento dejar de estar en buen estado, el destino sale del modo de inicio lento. Cuando el destino está en buen estado, este vuelve a entrar en el modo de inicio lento.

  • No puede habilitar el modo de inicio lento y las solicitudes menos pendientes.

New console
Para actualizar el valor de la duración del inicio lento mediante la nueva consola
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, en LOAD BALANCING (BALANCEO DE CARGA), elija Target Groups (Grupos de destino).

  3. Elija el nombre del grupo de destino para abrir la página de detalles.

  4. En la pestaña Detalles del grupo, en la sección Atributos, elija Editar.

  5. En la página Editar atributos, cambie el valor de Duración de inicio lento según sea necesario. Para deshabilitar el modo de inicio lento, establezca la duración en 0.

  6. Elija Save changes (Guardar cambios).

Old console
Para actualizar el valor de la duración de inicio lento mediante la consola antigua
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, en LOAD BALANCING (BALANCEO DE CARGA), elija Target Groups (Grupos de destino).

  3. Seleccione el grupo de destino.

  4. En la pestaña Descriptions, elija Edit attributes.

  5. En la página Edit attributes (Editar atributos), cambie el valor de Slow start duration (Duración de inicio lento) según sea necesario y, a continuación, seleccione Save (Guardar). Para deshabilitar el modo de inicio lento, establezca la duración en 0.

Para actualizar el valor de duración de inicio lento con AWS CLI

Utilice el modify-target-group-attributescomando con elslow_start.duration_seconds atributo.