Equilibrio de carga con AWS ELB

¡Hola a todos! El curso empieza hoy "AWS para desarrolladores", en relación con el cual celebramos el correspondiente seminario web temático dedicado a la revisión del ELB. Analizamos los tipos de balanceadores y creamos varias instancias EC2 con un balanceador. También estudiamos otros ejemplos de uso.

Equilibrio de carga con AWS ELB

Después de escuchar el seminario web, Vas a:

  • comprender qué es el equilibrio de carga de AWS;
  • conocer los tipos de Elastic Load Balancer y sus componentes;
  • Utilice AWS ELB en su práctica.

¿Por qué necesitas saber esto?

  • útil si planea realizar exámenes de certificación de AWS;
  • esta es una forma sencilla de distribuir la carga entre servidores;
  • Esta es una forma sencilla de agregar Lambda a su servicio (ALB).

Realizó una lección abierta. Rishat Teregulov, ingeniero de sistemas en una empresa de marketing para desarrollo y soporte de sitios web.

introducción

Qué es un Elastic Load Balancer se puede ver en el siguiente diagrama, que muestra un ejemplo sencillo:

Equilibrio de carga con AWS ELB

Load Balancer acepta solicitudes y las distribuye entre instancias. Tenemos una instancia separada, hay funciones Lambda y hay un grupo de AutoScaling (un grupo de servidores).

Tipos de ELB de AWS

1. Veamos los tipos principales.:

Equilibrador de carga clásico. El primer equilibrador de carga de AWS funciona tanto en OSI Layer 4 como en Layer 7, y admite HTTP, HTTPS, TCP y SSL. Proporciona equilibrio de carga básico entre múltiples instancias de Amazon EC2 y funciona tanto a nivel de solicitud como de conexión. Abrámoslo (resaltado en gris):

Equilibrio de carga con AWS ELB

Este equilibrador se considera obsoleto, por lo que se recomienda su uso sólo en determinados casos. Por ejemplo, para aplicaciones creadas en la red EC2‑Classic. En principio, nadie nos impide crearlo:

Equilibrio de carga con AWS ELB

2. Equilibrador de carga de red. Adecuado para cargas de trabajo pesadas, opera en OSI Layer 4 (se puede usar en EKS y ECS), se admiten TCP, UDP y TLS.

Network Load Balancer enruta el tráfico a objetivos en una VPC de Amazon y es capaz de procesar millones de solicitudes por segundo con una latencia ultrabaja. Además, está optimizado para manejar patrones de tráfico con cargas repentinas y cambiantes.

3. Equilibrador de carga de aplicaciones. Funciona en la capa 7, tiene soporte Lambda, admite reglas a nivel de encabezado y ruta, admite HTTP y HTTPS.
Proporciona enrutamiento de solicitudes avanzado centrado en la entrega de aplicaciones creadas en arquitecturas modernas, incluidos microservicios y contenedores. Dirige el tráfico a destinos en Amazon VPC según el contenido de la solicitud.

Para muchos usuarios, Application Load Balancer fue la primera opción para reemplazar Classic Load Balancer, porque TCP no es tan común como HTTP.

Creémoslo también, como resultado de lo cual ya tendremos dos balanceadores de carga:

Equilibrio de carga con AWS ELB

Componentes de equilibrio de carga

Componentes comunes de equilibrio de carga (común a todos los equilibradores):

  • Política de registro de acceso

— sus registros de acceso a ELB. Para realizar configuraciones, puede ir a Descripción y seleccionar el botón "Editar atributos":

Equilibrio de carga con AWS ELB

Luego especificamos S3Bucket - Almacenamiento de objetos de Amazon:

Equilibrio de carga con AWS ELB

  • Esquema

— equilibrador interno o externo. La cuestión es si su LoadBalancer debe recibir direcciones externas para que sea accesible desde el exterior, o puede ser su balanceador de carga interno;

  • Grupos de seguridad

— control de acceso al equilibrador. Básicamente, se trata de un firewall de alto nivel.

Equilibrio de carga con AWS ELB

Equilibrio de carga con AWS ELB

  • Subredes

— subredes dentro de su VPC (y, en consecuencia, zona de disponibilidad). Las subredes se especifican durante la creación. Si las VPC están limitadas por región, las subredes están limitadas por zonas de disponibilidad. Al crear un Load Balancer, es mejor crearlo en al menos dos subredes (ayuda si surgen problemas con una zona de disponibilidad);

  • Oyentes

- sus protocolos de equilibrio. Como se mencionó anteriormente, para Classic Load Balancer puede ser HTTP, HTTPS, TCP y SSL, para Network Load Balancer: TCP, UDP y TLS, para Application Load Balancer: HTTP y HTTPS.

Ejemplo de balanceador de carga clásico:

Equilibrio de carga con AWS ELB

Pero en Application Load Balancer vemos una interfaz ligeramente diferente y una lógica generalmente diferente:

Equilibrio de carga con AWS ELB

Componentes de Load Balancer v2 (ALB y NLB)

Ahora echemos un vistazo más de cerca a los balanceadores de la versión 2, Application Load Balancer y Network Load Balancer. Estos equilibradores tienen sus propias características de componentes. Por ejemplo, apareció un concepto como grupos objetivo: instancias (y funciones). Gracias a este componente, tenemos la oportunidad de especificar a cuál de los Grupos Objetivo queremos dirigir el tráfico.

Equilibrio de carga con AWS ELB

Equilibrio de carga con AWS ELB

En términos simples, en Grupos objetivo especificamos las instancias a las que llegará el tráfico. Si en el mismo Classic Load Balancer simplemente conecta inmediatamente la intensidad al balanceador, entonces en el Application Load Balancer primero:

  • crear un equilibrador de carga;
  • crear un grupo objetivo;
  • dirigir a través de los puertos requeridos o las reglas del balanceador de carga a los grupos objetivo requeridos;
  • En Grupos objetivo se asignan instancias.

Esta lógica operativa puede parecer más complicada, pero en realidad es más conveniente.

El siguiente componente es reglas del oyente (reglas de enrutamiento). Esto solo se aplica al balanceador de carga de aplicaciones. Si en Network Load Balancer simplemente crea un oyente y este envía tráfico a un grupo objetivo específico, entonces en Application Load Balancer todo más divertido y conveniente.

Equilibrio de carga con AWS ELB

Ahora digamos algunas palabras sobre el siguiente componente: IP elástica (direcciones estáticas para NLB). Si las reglas de enrutamiento de las reglas de escucha afectaron solo al balanceador de carga de aplicaciones, entonces Elastic IP solo afectó al balanceador de carga de red.

Creemos un balanceador de carga de red:

Equilibrio de carga con AWS ELB

Equilibrio de carga con AWS ELB

Y justo durante el proceso de creación veremos que se nos da la oportunidad de seleccionar Elastic IP:

Equilibrio de carga con AWS ELB

Elastic IP proporciona una única dirección IP que se puede asociar con diferentes instancias EC2 a lo largo del tiempo. Si una instancia EC2 tiene una dirección IP elástica y esa instancia finaliza o se detiene, puede asociar inmediatamente una nueva instancia EC2 con una dirección IP elástica. Sin embargo, su aplicación actual no dejará de funcionar, ya que las aplicaciones seguirán viendo la misma dirección IP, incluso si el EC2 real ha cambiado.

aquí está otro caso de uso sobre el tema de por qué se necesita Elastic IP. Mira, vemos 3 direcciones IP, pero no permanecerán aquí para siempre:

Equilibrio de carga con AWS ELB

Amazon los cambia con el tiempo, tal vez cada 60 segundos (pero en la práctica, por supuesto, con menos frecuencia). Esto significa que las direcciones IP pueden cambiar. Y en el caso de Network Load Balancer, puede simplemente vincular una dirección IP e indicarla en sus reglas, políticas, etc.

Equilibrio de carga con AWS ELB

Sacar conclusiones

ELB proporciona distribución automática del tráfico entrante entre múltiples objetivos (contenedores, instancias de Amazon EC2, direcciones IP y funciones Lambda). ELB es capaz de distribuir tráfico con cargas variables tanto dentro de una única zona de disponibilidad como entre múltiples zonas de disponibilidad. El usuario puede elegir entre tres tipos de balanceadores que brindan alta disponibilidad, escalado automático y buena protección. Todo esto es importante para garantizar la tolerancia a fallos de sus aplicaciones.

Las principales ventajas:

  • alta disponibilidad. El acuerdo de servicio supone una disponibilidad del 99,99 % para el equilibrador de carga. Por ejemplo, varias zonas de disponibilidad garantizan que el tráfico sea procesado únicamente por objetos en buen estado. De hecho, puede equilibrar la carga en toda la región, redirigiendo el tráfico a objetivos saludables en diferentes zonas de disponibilidad;
  • seguridad. ELB trabaja con Amazon VPC y proporciona varias capacidades de seguridad: administración integrada de certificados, autenticación de usuarios y descifrado SSL/TLS. En conjunto, proporciona una gestión centralizada y flexible de la configuración de TLS;
  • elasticidad. El ELB puede manejar cambios repentinos en el tráfico de la red. Y la integración profunda con Auto Scaling le brinda a la aplicación suficientes recursos si la carga cambia, sin requerir intervención manual;
  • flexibilidad. Puede utilizar direcciones IP para enrutar solicitudes a los destinos de sus aplicaciones. Esto proporciona flexibilidad al virtualizar aplicaciones de destino, brindando así la capacidad de alojar múltiples aplicaciones en una sola instancia. Dado que las aplicaciones pueden usar un único puerto de red y tener grupos de seguridad separados, la comunicación entre aplicaciones se simplifica cuando tenemos, digamos, una arquitectura basada en microservicios;
  • seguimiento y auditoría. Puede monitorear aplicaciones en tiempo real utilizando las funciones de Amazon CloudWatch. Estamos hablando de métricas, registros, seguimiento de solicitudes. En términos simples, podrá identificar problemas y señalar cuellos de botella en el rendimiento con bastante precisión;
  • equilibrio de carga híbrido. La capacidad de equilibrar la carga entre los recursos locales y AWS utilizando el mismo equilibrador de carga facilita la migración o expansión de aplicaciones locales a la nube. El manejo de fallas también se simplifica usando la nube.

Si está interesado en los detalles, aquí hay un par de enlaces más útiles del sitio web oficial de Amazon:

  1. Equilibrio de carga elástica.
  2. Capacidades de equilibrio de carga elástico.

Fuente: habr.com

Añadir un comentario