Edición de los atributos del Equilibrador de carga de aplicación - 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.

Edición de los atributos del Equilibrador de carga de aplicación

Después de crear un Equilibrador de carga de aplicación, puede editar sus atributos.

Tiempo de inactividad de conexión

El tiempo de espera de la conexión inactiva es el período de tiempo que una conexión de cliente o de destino existente puede permanecer inactiva, sin que se envíen ni reciban datos, antes de que el equilibrador de carga cierre la conexión.

Para asegurarse de que las operaciones de larga duración (como la carga de archivos) dispongan de tiempo suficiente para completarse, envíe al menos un byte de datos antes de que finalice cada tiempo de inactividad y aumente la duración de este tiempo, según sea necesario. También recomendamos que configure el tiempo de inactividad de su aplicación para que sea mayor que el tiempo de inactividad configurado para el equilibrador de carga. De lo contrario, si la aplicación cierra la TCP conexión con el balanceador de cargas de forma irregular, el balanceador de cargas podría enviar una solicitud a la aplicación antes de que reciba el paquete indicando que la conexión está cerrada. Si este es el caso, el balanceador de cargas envía un error HTTP 502 Bad Gateway al cliente.

De forma predeterminada, Elastic Load Balancing establece el valor del tiempo de inactividad del equilibrador de carga en 60 segundos o 1 minuto. Utilice el procedimiento siguiente para cambiar el valor de tiempo de espera de inactividad.

Actualización el valor del tiempo de espera de la conexión inactiva mediante la consola
  1. Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Load Balancers.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Atributos, seleccione Editar.

  5. En Configuración de tráfico, introduzca un valor en Tiempo de espera de la conexión inactiva, en segundos. El intervalo válido es de 1 a 4000 segundos.

  6. Elija Guardar cambios.

Para actualizar el valor del tiempo de espera de inactividad mediante el AWS CLI

Utilice el modify-load-balancer-attributescomando con el idle_timeout.timeout_seconds atributo.

HTTPduración del mantenimiento de la vida del cliente

La duración del mantenimiento del HTTP cliente es el tiempo máximo durante el que un Application Load Balancer mantiene una conexión HTTP persistente con un cliente. Una vez transcurrido el tiempo de keepalive del HTTP cliente configurado, Application Load Balancer acepta una solicitud más y, a continuación, devuelve una respuesta que cierra la conexión sin problemas.

El tipo de respuesta que envía el balanceador de cargas depende de la HTTP versión utilizada por la conexión del cliente.

  • Para los clientes conectados mediante la HTTP versión 1.x, el balanceador de cargas envía un HTTP encabezado que contiene el campo. Connection: close

  • Para los clientes conectados mediante HTTP /2, el balanceador de cargas envía un marco. GOAWAY

De forma predeterminada, Application Load Balancer establece el valor de duración keepalive del HTTP cliente para los balanceadores de carga en 3600 segundos o 1 hora. La duración de KeepAlive del HTTP cliente no se puede desactivar ni establecer por debajo del mínimo de 60 segundos, pero puede HTTP aumentarla hasta un máximo de 604800 segundos o 7 días. Un Application Load Balancer inicia el período de mantenimiento del HTTP cliente cuando se establece inicialmente una HTTP conexión con un cliente. El período de duración continúa cuando no hay tráfico y no se restablece hasta que se confirma una nueva conexión.

Cuando el tráfico del equilibrador de carga se aleja de una zona de disponibilidad dañada mediante un cambio de zona o un cambio automático de zona, los clientes con conexiones abiertas existentes pueden seguir realizando solicitudes a la ubicación afectada hasta que los clientes se vuelvan a conectar. Para conseguir una recuperación más rápida, considere la posibilidad de establecer un valor de duración de keepalive más bajo para limitar el tiempo que los clientes permanecen conectados a un equilibrador de carga. Para obtener más información, consulte Limitar el tiempo que los clientes permanecen conectados a sus puntos de conexión en la Guía para desarrolladores de Amazon Application Recovery Controller (ARC).

nota

Cuando el equilibrador de carga cambia el tipo de dirección IP de su Equilibrador de carga de aplicación a dualstack-without-public-ipv4, espera a que se completen todas las conexiones activas. Para reducir el tiempo que se tarda en cambiar el tipo de dirección IP de su Application Load Balancer, considere reducir HTTP la duración del mantenimiento del cliente.

El Application Load Balancer asigna HTTP al cliente el valor de duración keepalive durante la conexión inicial. Al actualizar la duración de keepalive del HTTP cliente, se pueden producir conexiones simultáneas con diferentes valores de duración de keepalive HTTP del cliente. Las conexiones existentes conservan el valor de duración de keepalive del HTTP cliente aplicado durante su conexión inicial. Las nuevas conexiones reciben el valor de duración KeepAlive del HTTP cliente actualizado.

Actualización del valor de duración keepalive mediante la consola
  1. Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Load Balancers.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Atributos, seleccione Editar.

  5. En Configuración de tráfico, introduce un valor para la duración HTTP del mantenimiento del cliente. El intervalo válido es de 60 a 604 800 segundos.

  6. Elija Guardar cambios.

Para actualizar el valor de duración de keepalive del cliente mediante el AWS CLI

Utilice el modify-load-balancer-attributescomando con el client_keep_alive.seconds atributo.

Protección contra eliminación

Para evitar que el equilibrador de carga se elimine por error, puede habilitar la protección contra eliminación. De forma predeterminada, la protección contra eliminación del equilibrador de carga está deshabilitada.

Si habilita la protección contra eliminación del equilibrador de carga, deberá deshabilitarla para poder eliminarlo.

Para habilitar la protección contra eliminación desde la consola
  1. Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Load Balancers.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Atributos, seleccione Editar.

  5. En Configuración, active Protección contra eliminación.

  6. Elija Guardar cambios.

Para deshabilitar la protección contra eliminación desde la consola
  1. Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Load Balancers.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Atributos, seleccione Editar.

  5. En la página Configuración, desactive la Protección contra eliminación.

  6. Elija Guardar cambios.

Para activar o desactivar la protección contra la eliminación mediante el AWS CLI

Utilice el modify-load-balancer-attributescomando con el deletion_protection.enabled atributo.

Modo de mitigación de desincronización

El modo de mitigación de la desincronización protege la aplicación de los problemas debidos a HTTP la desincronización. El equilibrador de carga clasifica cada solicitud en función de su nivel de amenaza, permite solicitudes seguras y, además, mitiga el riesgo según lo especificado en el modo de mitigación que determine. La mitigación de desincronización incluye modos monitoreados, defensivos y más estrictos. El modo predeterminado es el modo defensivo, que proporciona una mitigación duradera contra la HTTP desincronización y, al mismo tiempo, mantiene la disponibilidad de la aplicación. Puede cambiar al modo más estricto para asegurarse de que su aplicación reciba solo las solicitudes que cumplan con la norma 7230. RFC

La biblioteca http_desync_guardian analiza las solicitudes para evitar ataques de desincronización. HTTP HTTP Para obtener más información, consulte Desync Guardian en. HTTP GitHub

Clasificaciones

Las clasificaciones son las siguientes:

  • Cumple con las normas: la solicitud cumple con la norma RFC 7230 y no presenta ninguna amenaza de seguridad conocida.

  • Aceptable: la solicitud no cumple con la norma RFC 7230, pero no presenta ninguna amenaza de seguridad conocida.

  • Ambigua: la solicitud no cumple con la norma RFC 7230, pero supone un riesgo, ya que varios servidores web y proxies podrían gestionarla de forma diferente.

  • Grave: la solicitud supone un alto riesgo para la seguridad. El equilibrador de carga bloquea la solicitud, proporciona una respuesta 400 al cliente y cierra la conexión del cliente.

Si una solicitud no cumple con la norma RFC 7230, el balanceador de cargas incrementa la métrica. DesyncMitigationMode_NonCompliant_Request_Count Para obtener más información, consulte Métricas del Equilibrador de carga de aplicación.

La clasificación de cada solicitud se incluye en los registros de acceso al equilibrador de carga. Si la solicitud no cumple con los requisitos, los registros de acceso incluyen un código de motivo de clasificación. Para obtener más información, consulte Motivos de la clasificación.

Modos

En la siguiente tabla se describe cómo los Equilibradores de carga de aplicación tratan a las solicitudes según el modo y la clasificación.

Clasificación Modo monitoreado Modo defensivo Modo más estricto
Conforme Permitida Permitida Permitida
Aceptable Permitida Permitida Bloqueada
Ambigua Permitido Permitida¹ Bloqueada
Grave Permitido Bloqueada Bloqueada

¹ Enruta las solicitudes, pero cierra las conexiones del cliente y del destino. Puede incurrir en cargos adicionales si el equilibrador de carga recibe una gran cantidad de solicitudes ambiguas en el modo Defensivo. Esto se debe a que el aumento del número de conexiones nuevas por segundo contribuye a las unidades de capacidad del Load Balancer (LCU) utilizadas por hora. Puede usar la métrica NewConnectionCount para comparar la forma en que el equilibrador de carga establece nuevas conexiones en el modo Monitor y en el modo Defensivo.

Para actualizar el modo de mitigación de desincronización mediante la consola
  1. Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Load Balancers.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Atributos, seleccione Editar.

  5. En Gestión de paquetes, para Modo de mitigación de desincronización, seleccione Defensivo, Más estricto o Monitor.

  6. Elija Guardar cambios.

Para actualizar el modo de mitigación desincronizado mediante el AWS CLI

Utilice el modify-load-balancer-attributescomando con el routing.http.desync_mitigation_mode atributo establecido en monitordefensive, o. strictest

Conservación del encabezado del host

Al habilitar el atributo Preserve host header, Application Load Balancer conserva el Host encabezado de la HTTP solicitud y lo envía a los destinos sin ninguna modificación. Si el Equilibrador de carga de aplicación recibe varios encabezados Host, los conserva todos. Las reglas de oyente se aplican solo al primer encabezado Host recibido.

De forma predeterminada, cuando el atributo Conservar el encabezado del host no está habilitado, el Equilibrador de carga de aplicación modifica el encabezado Host de la siguiente manera:

Cuando la conservación del encabezado del host no está habilitada y el puerto de oyente no es un puerto predeterminado: cuando no se utilizan los puertos predeterminados (puertos 80 o 443), agregamos el número de puerto al encabezado del host si el cliente aún no lo ha hecho. Por ejemplo, el Host encabezado de la HTTP solicitud se Host: www.example.com modificaría porHost: www.example.com:8080, si el puerto de escucha no es un puerto predeterminado, como. 8080

Cuando la conservación del encabezado del host no está habilitada y el puerto de oyente es el puerto predeterminado (puerto 80 o 443): en el caso de los puertos de oyente predeterminados (puerto 80 o 443), no agregamos el número de puerto al encabezado del host saliente. Se elimina cualquier número de puerto que ya estuviera en el encabezado del host entrante.

En la siguiente tabla se muestran más ejemplos de cómo los balanceadores de carga de aplicaciones tratan los encabezados de host de la HTTP solicitud en función del puerto de escucha.

Puerto del oyente Ejemplo de solicitud Encabezado de host en la solicitud La conservación del encabezado del host está deshabilitada (comportamiento predeterminado) La conservación del encabezado del host está habilitada
La solicitud se envía por defecto con el comando /listenerHTTP. HTTPS GET /index.html HTTP/1.1 Host: example.com example.com example.com example.com
La solicitud se envía en el HTTP listener predeterminado y el encabezado del host tiene un puerto (por ejemplo, 80 o 443). GET /index.html HTTP/1.1 Host: example.com:80 example.com:80 example.com example.com:80
La solicitud tiene una ruta absoluta. GET https://dns_name/index.html HTTP/1.1 Host: example.com example.com dns_name example.com
La solicitud se envía a un puerto de oyente no predeterminado (por ejemplo, 8080). GET /index.html HTTP/1.1 Host: example.com example.com example.com:8080 example.com
La solicitud se envía a un puerto de oyente no predeterminado y el encabezado del host tiene un puerto (por ejemplo, 8080). GET /index.html HTTP/1.1 Host: example.com:8080 example.com:8080 example.com:8080 example.com:8080
Habilitación de la conservación del encabezado del host mediante la consola
  1. Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Equilibradores de carga.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Atributos, seleccione Editar.

  5. En Gestión de paquetes, active Conservar el encabezado del host.

  6. Elija Guardar cambios.

Para permitir la conservación del encabezado del host mediante el AWS CLI

Utilice el modify-load-balancer-attributescomando con el routing.http.preserve_host_header.enabled atributo establecido entrue.