Grupos de destino de los Application Load Balancers - 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 de destino de los Application Load Balancers

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 Balanceador de carga de aplicacionesComponentes de .

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 se configura con el protocolo HTTPS o utiliza comprobaciones de estado HTTPS, las conexiones TLS a los destinos utilizan la configuración de seguridad de la ELBSecurityPolicy-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. Dado que el balanceador de carga se encuentra en una nube virtual privada (VPC), el tráfico entre el balanceador de carga y los destinos se autentica en el nivel de paquete, por lo que no corre el riesgo de sufrir ataques man-in-the-middle ni de suplantación, incluso aunque los certificados de los destinos no sean 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:

  • Las subredes de la VPC para el grupo de destino

  • 10.0.0.0/8 (RFC 1918)

  • 100.64.0.0/10 (RFC 6598)

  • 172.16.0.0/12 (RFC 1918)

  • 192.168.0.0/16 (RFC 1918)

Estos bloques de CIDR compatibles le permiten registrar lo siguiente con un grupo de destino: instancias ClassicLink, instancias de una VPC interconectada a la VPC del balanceador de carga (en la misma región o en una región diferente), AWS recursos direccionables por dirección IP y puerto (por ejemplo, bases de datos) y recursos on-premises vinculados a AWS o AWS Direct Connect una Site-to-Site VPN conexión de .

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 Funciones de como destinos.

Protocol version (Versión de protocolo)

De forma predeterminada, Application Load Balancers envíe solicitudes a destinos mediante HTTP/1.1. Puede utilizar la versión de protocolo para enviar solicitudes a destinos mediante HTTP/2 o gRPC.

En la siguiente tabla se resume el resultado de las combinaciones de protocolo de solicitud y versión de protocolo de grupo de destino.

Protocolo de solicitud Protocol version (Versión de protocolo) Resultado
HTTP/1.1 HTTP/1.1 Correcto
HTTP/2: HTTP/1.1 Correcto
gRPC de HTTP/1.1 Error
HTTP/1.1 HTTP/2: Error
HTTP/2: HTTP/2: Correcto
gRPC de HTTP/2: Correcto si los destinos admiten gRPC
HTTP/1.1 gRPC de Error
HTTP/2: gRPC de Correcto si una solicitud POST
gRPC de gRPC de Correcto

Consideraciones para la versión del protocolo gRPC

  • El único protocolo de agente de escucha admitido es HTTPS.

  • El único tipo de acción admitido para las reglas del agente de escucha es forward.

  • Los únicos tipos de destino admitidos son instance y ip.

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

  • El balanceador de carga admite streaming unario del lado del cliente, streaming del lado del servidor y streaming 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 van a utilizar al comprobar si hay una respuesta correcta de un destino.

  • No puede utilizar funciones Lambda como destinos.

Consideraciones para la versión del protocolo HTTP/2

  • El único protocolo de agente de escucha admitido es HTTPS.

  • El único tipo de acción admitido para las reglas del agente de escucha es forward.

  • Los únicos tipos de destino admitidos son instance y ip.

  • El balanceador de carga admite el streaming desde los clientes. El balanceador de carga no admite el streaming 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 está registrando destinos por ID de instancia, puede utilizar el balanceador de carga con un grupo de Auto Scaling. Después de asociar un grupo de destino a un grupo de Auto Scaling, Auto Scaling registra los destinos en el grupo de destino cuando los lanza. Para obtener más información, consulte Asociar un balanceador de carga a su grupo de Auto Scaling en la Guía del usuario de Amazon EC2 Auto Scaling.

Limits

  • No puede registrar las direcciones IP de otro Balanceador de carga de aplicaciones en la misma VPC. Si el otro Balanceador de carga de aplicaciones está en una VPC que está interconectada 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 es de –03600 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.

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 –30900 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: AWSALB AWSALBAPP, o AWSALBTG; están reservados para que el balanceador de carga los utilice.

stickiness.app_cookie.duration_seconds

El periodo de vencimiento 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 vencimiento de las cookies basadas en 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.

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 de varios valores.

Algoritmo 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. Puede comparar el efecto de los turnos rotativos frente a solicitudes menos pendientes utilizando las siguientes métricas de CloudWatch: RequestCount, TargetConnectionErrorCount y TargetResponseTime.

Considerations

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

  • Si habilita sesiones sticky, el algoritmo de direccionamiento del grupo de destino se anula después de la selección de destino inicial.

  • 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 utilizando 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 direccionamiento 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 su página de detalles.

  4. En la pestaña Group details (Detalles del grupo), en la sección Attributes (Atributos), elija Edit (Editar).

  5. En la página Edit attributes (Editar atributos), en Load balancing algorithm (Algoritmo de balanceo de carga), elija Round robin (Recuperar turno) o Least outstanding requests (Solicitudes menos pendientes).

  6. Elija Save changes.

Old console

Para modificar el algoritmo de direccionamiento 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 comando modify-target-group-attributes con el atributo load_balancing.algorithm.type.

Retardo de anulación del registro

Elastic Load Balancing deja de enviar solicitudes a los destinos que están en proceso de anulación del registro. De forma predeterminada, Elastic Load Balancing espera 300 segundos antes de completar el proceso de anulación del registro, para ayudar a que se completen las solicitudes en tránsito hacia el destino. Para cambiar la cantidad de tiempo que Elastic Load Balancing espera, actualice el valor del retardo de anulación de 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 destino forma parte de un grupo de Auto Scaling, pueden terminarse y sustituirse.

Si un destino que anula el registro no tiene ninguna solicitud en tránsito y ninguna conexión activa, Elastic Load Balancing completa inmediatamente el proceso de anulación de registro, sin esperar a que transcurra el retardo de anulación de registro. Sin embargo, aunque se haya completado el proceso de anulación del registro del destino, se mostrará el estado del destino como draining hasta que transcurra el tiempo de anulación de registro.

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 retardo de anulación del registro desde 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 su página de detalles.

  4. En la pestaña Group details (Detalles del grupo), en la sección Attributes (Atributos), elija Edit (Editar).

  5. En la página Edit attributes (Editar atributos), cambie el valor de Deregistration delay (Retraso de anulación del registro) según sea necesario.

  6. Elija Save changes.

Old console

Para actualizar el valor del retardo de anulación del registro desde 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, 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 comando modify-target-group-attributes con el atributo deregistration_delay.timeout_seconds.

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. Una vez que un destino en buen estado sale del modo de inicio lento, el balanceador de carga puede enviarle una cuota completa de solicitudes.

Considerations

  • 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 duración de inicio lento con 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 su página de detalles.

  4. En la pestaña Group details (Detalles del grupo), en la sección Attributes (Atributos), elija Edit (Editar).

  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. Para deshabilitar el modo de inicio lento, establezca la duración en 0.

  6. Elija Save changes.

Old console

Para actualizar el valor de duración de inicio lento con 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 comando modify-target-group-attributes con el atributo slow_start.duration_seconds.