Equilibrador de carga de red - Elastic Load Balancing

Equilibrador de carga de red

Un equilibrador de carga de red actúa como único punto de contacto para los clientes. Los clientes envían las solicitudes al equilibrador de carga de red y este se las envía a los destinos, tales como instancias de EC2, de una o varias zonas de disponibilidad.

Para configurar el equilibrador de carga de red, debe crear grupos de destino y, a continuación, registrar los destinos en los grupos de destino. El equilibrador de carga de red es más eficaz si se asegura de que cada zona de disponibilidad habilitada tenga al menos un destino registrado. También puede crear agentes de escucha para comprobar la existencia de solicitudes de conexión de los clientes y direccionar las solicitudes de los clientes a los destinos de sus grupos de destino.

Los equilibradores de carga de red admiten las conexiones de clientes a través de una interconexión con VPC, VPN administradas por AWS, AWS Direct Connect y soluciones de VPN de terceros.

Estado del equilibrador de carga

Un equilibrador de carga de red puede encontrarse en uno de los siguientes estados:

provisioning

El equilibrador de carga de red se está configurando.

active

El equilibrador de carga de red se ha configurado completamente y está listo para enrutar tráfico.

failed

El equilibrador de carga de red no se ha podido configurar.

Tipo de dirección IP

Puede establecer los tipos de direcciones IP que los clientes pueden utilizar con el equilibrador de carga de red.

Los equilibradores de carga de red admiten los siguientes tipos de direcciones IP:

ipv4

Los clientes deben conectarse al equilibrador de carga de red mediante direcciones IPv4 (por ejemplo, 192.0.2.1). Los equilibradores de carga de red compatibles con IPv4 (tanto internos como con acceso a Internet) admiten oyentes TCP, UDP, TCP_UDP y TLS.

dualstack

Los clientes pueden conectarse al equilibrador de carga de red mediante direcciones IPv4 (por ejemplo, 192.0.2.1) y direcciones IPv6 (por ejemplo, 2001:0db8:85a3:0:0:8a2e:0370:7334). Los equilibradores de carga de red de pila doble (tanto internos como con acceso a Internet) admiten oyentes TCP y TLS.

Consideraciones
  • El equilibrador de carga de red se comunica con los destinos en función del tipo de dirección IP del grupo de destino.

  • Cuando se habilita el modo de doble pila para el equilibrador de carga de red, Elastic Load Balancing proporciona un registro de DNS AAAA para el equilibrador de carga de red. Los clientes que se comunican con el equilibrador de carga de red mediante direcciones IPv4 resuelven el registro de DNS A. Los clientes que se comunican con el equilibrador de carga de red mediante direcciones IPv6 resuelven el registro de DNS AAAA.

  • El acceso al equilibrador de carga de red de doble pila interno a través de la puerta de enlace de Internet está bloqueado para evitar el acceso no deseado a Internet. Sin embargo, esto no impide otros accesos a Internet (por ejemplo, mediante interconexión, Transit Gateway, AWS Direct Connect o AWS VPN).

Para obtener más información sobre los tipos de direcciones IP, consulte Actualización de los tipos de direcciones IP para el equilibrador de carga de red.

Tiempo de inactividad de conexión

Para cada solicitud de TCP que un cliente realiza a través de un equilibrador de carga de red, se controla el estado de la conexión. Si transcurre el tiempo de inactividad sin que ni el cliente ni el destino envíen datos a través de la conexión, se deja de realizar un seguimiento de esta. Si un cliente o destino envía datos una vez transcurrido el tiempo de inactividad, el cliente recibe un paquete RST TCP para indicar que la conexión ya no es válida.

El valor de tiempo de inactividad predeterminado para los flujos TCP es de 350 segundos, pero se puede actualizar a cualquier valor comprendido entre 60 y 6000 segundos. Los clientes o destinos pueden utilizar paquetes keepalive TCP para reiniciar el tiempo de inactividad. Los paquetes keepalive que se han enviado para mantener las conexiones de TLS no pueden contener datos ni carga útil.

Cuando un oyente de TLS recibe un paquete keepalive de TCP de un cliente o un destino, el equilibrador de carga genera paquetes keepalive de TCP y los envía a las conexiones de frontend y backend cada 20 segundos. No puede modificar este comportamiento.

Si bien UDP no tiene conexión, el equilibrador de carga mantiene el estado del flujo de UDP en función de los puertos y las direcciones IP de origen y destino. Esto garantiza que los paquetes que pertenecen al mismo flujo se envíen de forma consistente al mismo destino. Una vez transcurrido el tiempo de inactividad, el equilibrador de carga considera el paquete de UDP entrante como un flujo nuevo y lo dirige a un destino nuevo. Elastic Load Balancing establece el valor del tiempo de inactividad para los flujos de UDP en 120 segundos. Esto no se puede cambiar.

Las instancias EC2 deben responder a una nueva solicitud en un plazo de 30 segundos para establecer una ruta de retorno.

Para obtener más información, consulte Actualización del tiempo de inactividad.

Atributos del equilibrador de carga

Puede configurar el equilibrador de carga de red editando sus atributos. Para obtener más información, consulte Edición de atributos del equilibrador de carga.

A continuación se muestran los atributos de equilibrador de carga para equilibradores de carga de red:

access_logs.s3.enabled

Indica si están habilitados los registros de acceso almacenados en Amazon S3. El valor predeterminado es false.

access_logs.s3.bucket

Nombre del bucket de Amazon S3 para los registros de acceso. Este atributo es obligatorio si están habilitados los registros de acceso. Para obtener más información, consulte Requisitos del bucket.

access_logs.s3.prefix

Prefijo de la ubicación en el bucket de Amazon S3.

deletion_protection.enabled

Indica si está habilitada la protección contra eliminación. El valor predeterminado es false.

ipv6.deny_all_igw_traffic

Bloquea el acceso de una puerta de enlace de Internet (IGW) al equilibrador de carga de red, lo que evita accesos no intencionados al equilibrador de carga de red interno a través de una puerta de enlace de Internet. Se configura como false para los equilibradores de carga de red con acceso a Internet y como true para los equilibradores de carga de red internos. Este atributo no impide el acceso a Internet que no sea de IGW (por ejemplo, mediante interconexión, Transit Gateway, AWS Direct Connect o AWS VPN).

load_balancing.cross_zone.enabled

Indica si el balance de carga entre zonas está habilitado. El valor predeterminado es false.

dns_record.client_routing_policy

Indica cómo se distribuye el tráfico entre las zonas de disponibilidad de los equilibradores de carga de red. Los valores posibles son availability_zone_affinity con una afinidad de zona del 100 por ciento, partial_availability_zone_affinity con una afinidad de zona del 85 por ciento y any_availability_zone con una afinidad de zona del 0 por ciento.

zonal_shift.config.enabled

Indica si el cambio de zona está habilitado. El valor predeterminado es false.

Equilibrio de carga entre zonas

De manera predetermina, cada nodo del equilibrador de carga de red distribuye el tráfico entre los destinos registrados en su zona de disponibilidad únicamente. Si activa el equilibrio de carga entre zonas, cada nodo del equilibrador de carga de red distribuye el tráfico entre los destinos registrados en todas las zonas de disponibilidad habilitadas. También puede activar el equilibrio de carga entre zonas a nivel del grupo de destino. Para obtener más información, consulte Equilibrio de carga entre zonas para grupos de destino y Equilibrio de carga entre zonas en la Guía del usuario de Elastic Load Balancing.

Nombre de DNS

Cada equilibrador de carga de red recibe un nombre predeterminado del sistema de nombres de dominio (DNS) con la siguiente sintaxis: name-id.elb.region.amazonaws.com. Por ejemplo, my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com.

Si prefiere utilizar un nombre de DNS que sea más fácil de recordar, puede crear un nombre de dominio personalizado y asociarlo al nombre de DNS del equilibrador de carga de red. Cuando un cliente realiza una solicitud utilizando este nombre de dominio personalizado, el servidor DNS lo convierte en el nombre de DNS del equilibrador de carga de red.

En primer lugar, registre un nombre de dominio con un registrador de nombres de dominio acreditado. A continuación, utilice su servicio de DNS (por ejemplo, su registrador de dominio) para crear un registro de DNS y enrutar las solicitudes al equilibrador de carga de red. Para obtener más información, consulte la documentación de su servicio de DNS. Por ejemplo, si utiliza Amazon Route 53 como servicio de DNS, se crea un registro de alias que apunta al equilibrador de carga de red. Para obtener más información, consulte Enrutamiento del tráfico a un equilibrador de carga de ELB en la Guía para desarrolladores de Amazon Route 53.

El equilibrador de carga de red tiene una dirección IP por cada zona de disponibilidad habilitada. Estas son las direcciones IP de los nodos del equilibrador de carga de red. El nombre de DNS del equilibrador de carga de red se convierte en estas direcciones. Por ejemplo, suponga que el nombre de dominio personalizado del equilibrador de carga de red es example.networkloadbalancer.com. Utilice el siguiente comando dig o nslookup para determinar las direcciones IP de los nodos del equilibrador de carga de red.

Linux o Mac

$ dig +short example.networkloadbalancer.com

Windows

C:\> nslookup example.networkloadbalancer.com

El equilibrador de carga de red tiene registros de DNS para sus nodos. Puede utilizar nombres de DNS con la siguiente sintaxis para determinar las direcciones IP de los nodos del equilibrador de carga de red: az.name-id.elb.region.amazonaws.com.

Linux o Mac

$ dig +short us-east-2b.my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com

Windows

C:\> nslookup us-east-2b.my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com

Estado zonal del equilibrador de carga

Los equilibradores de carga de red tienen registros de DNS y direcciones IP zonales en Route 53 para cada zona de disponibilidad habilitada. Cuando un equilibrador de carga de red no supera una comprobación de estado zonal para una zona de disponibilidad concreta, su registro de DNS se elimina de Route 53. El estado zonal del equilibrador de carga se monitorea mediante la métrica ZonalHealthStatus de Amazon CloudWatch, lo que brinda más información sobre los eventos que provocan una conmutación por error para implementar medidas preventivas y garantizar una disponibilidad óptima de las aplicaciones. Para obtener más información, consulte, Métricas del balanceador de carga de red.

Los equilibradores de carga de red pueden no superar las comprobaciones de estado zonales por múltiples motivos, lo que provoca que pasen a encontrarse en mal estado. Consulte a continuación las causas más comunes que provocan el mal estado de los equilibradores de carga de red debido a la no superación de las comprobaciones de estado zonales.

Compruebe las siguientes causas posibles:
  • No hay destinos en buen estado para el equilibrador de carga

  • El número de destinos en buen estado es inferior al mínimo configurado

  • Existe un cambio de zona o un cambio automático de zona en curso

  • Se está desplazado automáticamente el tráfico a zonas en buen estado debido a problemas detectados