Elastic Load Balancing
Application Load Balancers

Grupos de destino para 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 Componentes de Balanceador de carga de aplicaciones.

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

  • Ports: 1-65535

Si un grupo de destino se configura con el protocolo HTTPS o utiliza comprobaciones de estado HTTPS, las conexiones SSL a los destinos utilizarán la configuración de seguridad de la política ELBSecurityPolicy2016-08.

Tipo de destino

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 de ClassicLink, instancias en una VPC interconectada, recursos de AWS direccionables por dirección IP y puerto (por ejemplo, bases de datos) y recursos on-premise vinculados a AWS a través de AWS Direct Connect o una conexión de VPN.

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 Funciones Lambda como 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. Puede registrar cada instancia EC2 o dirección IP en el mismo grupo de destino varias veces con diferentes puertos, lo que permite que el balanceador de carga direccione las solicitudes a microservicios.

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.

Límites

  • 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 interconectada, 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.

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 sticky.

stickiness.lb_cookie.duration_seconds

Periodo de vencimiento de las cookies, 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. El valor posible es lb_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.

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.

Para actualizar el valor del retardo de anulación del registro desde la 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, elija Target Groups.

  3. Seleccione el grupo de destino. El valor actual se muestra en la pestaña Description (Descripción) como Deregistration delay (Retardo de anulación del registro).

  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 arranque lento para un grupo de destino, los objetivos entran en modo de inicio lento cuando se registran con el grupo de destino y salen del modo de inicio lento cuando pasa el periodo de duración de inicio lento configurado. 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 sale del modo de inicio lento, el balanceador de carga puede enviarle una cuota completa de solicitudes.

Consideraciones

  • 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 y sale del modo de inicio lento cuando se agota el resto del periodo de duración. 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.

Para actualizar el valor de duración de inicio lento con la 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, elija Target Groups.

  3. Seleccione el grupo de destino. El valor actual se muestra en la pestaña Description (Descripción) como Slow start duration (Duración de inicio lento).

  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.

Sesiones sticky

Las sesiones sticky son un mecanismo para direccionar las solicitudes al mismo destino en un grupo de destino. Resulta útil para los servidores que mantienen información de estado, para ofrecer una experiencia de continuidad a los clientes. Para utilizar las sesiones sticky, los clientes deben admitir las cookies.

Cuando un balanceador de carga recibe una solicitud de un cliente por primera vez, la direcciona a un destino y genera una cookie que se incluye en la respuesta al cliente. La próxima solicitud de ese cliente contiene la cookie. Si las sesiones sticky están habilitadas para el grupo de destino y la solicitud se dirige al mismo grupo de destino, el balanceador de carga detecta la cookie y direcciona la solicitud al mismo destino.

Los Application Load Balancers admiten únicamente las cookies generadas por el balanceador de carga. El nombre de la cookie es AWSALB. El contenido de estas cookies se cifra mediante una clave rotativa. Las cookies generadas por el balanceador de carga no se pueden descifrar ni modificar.

Las conexiones de WebSockets son sticky de forma inherente. Si el cliente solicita una actualización de la conexión a WebSockets, el destino que devuelve un código de estado HTTP 101 para aceptar la actualización de la conexión es el destino que se usa en la conexión de WebSockets. Una vez que se ha completado la actualización de WebSockets, la persistencia basada en cookies no se utiliza.

Las sesiones sticky se habilitan para grupos de destino. También puede establecer la duración, en segundos, de la persistencia de la cookie generada por el balanceador de carga. La duración se establece con cada solicitud. Por lo tanto, si el cliente envía una solicitud antes de cada duración caduca, el período de sesión continúa.

Application Load Balancers utiliza el atributo Expires del encabezado de la cookie en lugar del encabezado Max-Age.

Para habilitar las sesiones sticky desde la 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, elija Target Groups.

  3. Seleccione el grupo de destino.

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

  5. En la página Edit attributes, lleve a cabo alguna de las siguientes operaciones:

    1. Seleccione Enable load balancer generated cookie stickines.

    2. Para Stickiness duration, especifique un valor comprendido entre 1 segundo y 7 días.

    3. Seleccione Save.

Para habilitar las sesiones sticky desde la AWS CLI

Utilice el comando modify-target-group-attributes con los atributos stickiness.enabled y stickiness.lb_cookie.duration_seconds.