¿Qué es el equilibrio de carga?
El equilibrio de carga es el método de distribuir el tráfico de red de manera equitativa en un conjunto de recursos que admiten una aplicación. Las aplicaciones modernas tienen que procesar millones de usuarios simultáneamente y devolver el texto, los videos, las imágenes y otros datos correctos a cada usuario de manera rápida y fiable. Para gestionar volúmenes de tráfico tan altos, la mayoría de las aplicaciones tienen muchos servidores de recursos con datos duplicados entre ellos. Un equilibrador de carga es un dispositivo que se encuentra entre el usuario y el grupo de servidores y actúa como un facilitador invisible, lo que garantiza que todos los servidores de recursos se usen por igual.
¿Cuáles son los beneficios del equilibrio de carga?
El equilibrio de carga dirige y controla el tráfico de Internet entre los servidores de aplicaciones y sus visitantes o clientes. Como resultado, mejora la disponibilidad, la escalabilidad, la seguridad y el rendimiento de una aplicación.
Disponibilidad de la aplicación
La falla o el mantenimiento del servidor pueden aumentar el tiempo de inactividad de la aplicación, lo que hace que su aplicación no esté disponible para los visitantes. Los equilibradores de carga aumentan la tolerancia a fallos de sus sistemas al detectar automáticamente los problemas del servidor y redirigir el tráfico de los clientes a los servidores disponibles. Puede usar el equilibrio de carga para facilitar estas tareas:
- Ejecución del mantenimiento o las actualizaciones del servidor de aplicaciones sin tiempo de inactividad de la aplicación
- Proporciona recuperación de desastres automática a los sitios de copia de seguridad
- Realización de comprobaciones de estado y prevención de problemas que puedan causar tiempo de inactividad
Escalabilidad de aplicaciones
Puede usar equilibradores de carga para dirigir el tráfico de red de forma inteligente entre varios servidores. Sus aplicaciones pueden gestionar miles de solicitudes de clientes porque el equilibrio de carga hace lo siguiente:
- Evitar los cuellos de botella de tráfico en cualquier servidor.
- Predecir el tráfico de aplicaciones para que pueda agregar o eliminar diferentes servidores, si es necesario.
- Agregar redundancia a su sistema para que pueda escalar con confianza.
Seguridad de las aplicaciones
Los equilibradores de carga vienen con funciones de seguridad integradas para agregar otra capa de seguridad a sus aplicaciones de Internet. Son una herramienta útil para hacer frente a los ataques de denegación de servicio distribuidos, en los que los atacantes inundan un servidor de aplicaciones con millones de solicitudes simultáneas que provocan fallas en el servidor. Los equilibradores de carga también pueden hacer lo siguiente:
- Monitoreo del tráfico y bloqueo de contenido malicioso.
- Redirección automática del tráfico de ataque a varios servidores backend para minimizar el impacto.
- Enrutamiento del tráfico a través de un grupo de firewalls de red para mayor seguridad.
Rendimiento de las aplicaciones
Los equilibradores de carga mejoran el rendimiento de las aplicaciones al aumentar el tiempo de respuesta y reducir la latencia de red. Realizan varias tareas críticas, como las siguientes:
- Distribución de la carga uniformemente entre los servidores para mejorar el rendimiento de las aplicaciones.
- Redirección de las solicitudes de los clientes a un servidor geográficamente más cercano para reducir la latencia.
- Garantizar la fiabilidad y el rendimiento de los recursos de computación físicos y virtuales.
¿Cómo funciona el equilibrio de carga?
Las empresas suelen tener sus aplicaciones ejecutándose en varios servidores. Esta disposición de servidores se denomina “granja de servidores”. Las solicitudes de los usuarios a la aplicación van primero al equilibrador de carga. A continuación, el equilibrador de carga enruta cada solicitud a un único servidor de la granja de servidores más adecuada para gestionar la solicitud.
El equilibrio de carga es como el trabajo realizado por un gerente en un restaurante. Imagine un restaurante con cinco camareros. Si se le permitiera a los clientes elegir a sus camareros, uno o dos camareros podrían verse con una sobrecarga de trabajo mientras los demás están inactivos. Para evitar este escenario, el gerente del restaurante asigna los clientes a los camareros específicos que mejor servicio pueden ofrecerles
¿Qué son los algoritmos de equilibrio de carga?
Un algoritmo de equilibrio de carga es el conjunto de reglas que sigue un equilibrador de carga para determinar el mejor servidor para cada una de las diferentes solicitudes de los clientes. Los algoritmos de equilibrio de carga se dividen en dos categorías principales.
Equilibrio de carga estática
Los algoritmos de equilibrio de carga estática siguen reglas fijas y son independientes del estado actual del servidor. Los siguientes son ejemplos de equilibrio de carga estática.
Método de turnorotativo
Los servidores tienen direcciones IP que indican al cliente dónde enviar las solicitudes. La dirección IP es un número largo y difícil de recordar. Para hacerlo más fácil, un sistema de nombres de dominio asigna los nombres de los sitios web a los servidores. Cuando escribe aws.amazon.com en su navegador, la solicitud va primero a nuestro servidor de nombres, que devuelve nuestra dirección IP a su navegador.
En el método de operación por turnos, un servidor de nombres autoritativo hace el equilibrio de carga en lugar de hardware o software especializado. El servidor de nombres devuelve las direcciones IP de los diferentes servidores de la granja de servidores por turnos o por turnos.
Método de turno rotativo ponderado
En el equilibrio de carga por turnos ponderados, puede asignar diferentes pesos a cada servidor en función de su prioridad o capacidad. Los servidores con ponderaciones más altas recibirán más tráfico de aplicaciones entrante del servidor de nombres.
Método hash de IP
En el método hash de IP, el equilibrador de cargas lleva a cabo un cálculo matemático, denominado “hash”, en la dirección IP del cliente. Convierte la dirección IP del cliente en un número, que luego se asigna a servidores individuales.
Equilibrio de carga dinámico
Los algoritmos de equilibrio de carga dinámico examinan el estado actual de los servidores antes de distribuir el tráfico. Los siguientes son algunos ejemplos de algoritmos de equilibrio de carga dinámico.
Método de conexión mínima
Una conexión es un canal de comunicación abierto entre un cliente y un servidor. Cuando el cliente envía la primera solicitud al servidor, se autentica y establece una conexión activa entre sí. En el método de conexión mínima, el equilibrador de carga comprueba qué servidores tienen la menor cantidad de conexiones activas y envía tráfico a esos servidores. Este método supone que todas las conexiones requieren la misma potencia de procesamiento para todos los servidores.
Método de conexión mínima ponderada
Los algoritmos de conexión mínima ponderada suponen que algunos servidores pueden gestionar más conexiones activas que otros. Por lo tanto, puede asignar diferentes pesos o capacidades a cada servidor y el equilibrador de carga envía las nuevas solicitudes de clientes al servidor con la menor cantidad de conexiones por capacidad.
Método de tiempo de respuesta mínimo
El tiempo de respuesta es el tiempo total que tarda el servidor en procesar las solicitudes entrantes y enviar una respuesta. El método de menor tiempo de respuesta combina el tiempo de respuesta del servidor y las conexiones activas para determinar el mejor servidor. Los equilibradores de carga utilizan este algoritmo para garantizar un servicio más rápido para todos los usuarios.
Método basado en recursos
En el método basado en recursos, los equilibradores de carga distribuyen el tráfico analizando la carga actual del servidor. Un software especializado llamado “agente” se ejecuta en cada servidor y calcula el uso de los recursos del servidor, como su capacidad de computación y memoria. A continuación, el equilibrador de carga comprueba si hay suficientes recursos libres en el agente antes de distribuir el tráfico a ese servidor.
¿Cuáles son los tipos de equilibrio de carga?
Podemos clasificar el equilibrador de carga en tres categorías principales según lo que verifique el equilibrio de carga en la solicitud del cliente para redirigir el tráfico.
Equilibrio de carga de aplicación
Las aplicaciones modernas y complejas tienen varias granjas de servidores con varios servidores dedicados a una sola función de aplicación. Los equilibradores de cargas de aplicaciones analizan el contenido de la solicitud, como los encabezados HTTP o los ID de sesión SSL, para redirigir el tráfico.
Por ejemplo, una aplicación de comercio electrónico tiene un directorio de productos, un carro de compras y funciones de pago. El equilibrador de carga de aplicación envía solicitudes para explorar productos a servidores que contienen imágenes y videos, pero que no necesitan mantener conexiones abiertas. En comparación, envía solicitudes de carro de compras a servidores que pueden mantener muchas conexiones de clientes y guardar los datos del carro durante mucho tiempo.
Equilibrador de carga de red
Los equilibradores de carga de red examinan las direcciones IP y otra información de red para redirigir el tráfico de manera óptima. Realizan un seguimiento del origen del tráfico de la aplicación y pueden asignar una dirección IP estática a varios servidores. Los equilibradores de carga de red usan los algoritmos de equilibrio de carga estáticos y dinámicos descritos anteriormente para equilibrar la carga del servidor.
Equilibrio de carga del servidor global
El equilibrio de carga del servidor global se produce en varios servidores distribuidos geográficamente. Por ejemplo, las empresas pueden tener servidores en varios centros de datos, en diferentes países y en proveedores de nube de terceros en todo el mundo. En este caso, los equilibradores de carga local administran la carga de la aplicación dentro de una región o zona. Intentan redirigir el tráfico a un destino de servidor que esté geográficamente más cerca del cliente. Es posible que redirijan el tráfico a servidores fuera de la zona geográfica del cliente solo en caso de fallo del servidor.
Equilibrio de carga de DNS
En el equilibrio de carga de DNS, configura el dominio para enrutar las solicitudes de red a través de un grupo de recursos de su dominio. Un dominio puede corresponder a un sitio web, un sistema de correo, un servidor de impresión u otro servicio al que se pueda acceder a través de Internet. El equilibrio de carga de DNS es útil para mantener la disponibilidad de la aplicación y equilibrar el tráfico de red en un conjunto de recursos distribuidos globalmente.
¿Cuáles son los tipos de tecnología de equilibrio de carga?
Los equilibradores de carga son de dos tipos: equilibradores de carga de hardware y equilibradores de carga de software.
Equilibradores de carga de hardware
Un equilibrador de carga basado en hardware es un dispositivo de hardware que puede procesar y redirigir de forma segura gigabytes de tráfico a cientos de servidores diferentes. Puede almacenarlo en sus centros de datos y usar la virtualización para crear varios equilibradores de carga digitales o virtuales que puede administrar de forma centralizada.
Equilibradores de carga de software
Los equilibradores de carga basados en software son aplicaciones que realizan todas las funciones de equilibrio de carga. Puede instalarlos en cualquier servidor o acceder a ellos como un servicio de terceros totalmente gestionado.
Comparación de equilibradores de hardware con equilibradores de carga de software
Los equilibradores de carga de hardware requieren una inversión inicial, una configuración y un mantenimiento continuo. Es posible que no use toda su capacidad, especialmente si compra uno solo para manejar los picos de tráfico en horas pico. Si el volumen de tráfico aumenta repentinamente por encima de su capacidad actual, esto afectará a los usuarios hasta que pueda comprar y configurar otro equilibrador de carga.
Por el contrario, los equilibradores de carga basados en software son mucho más flexibles. Pueden escalarse o desescalarse verticalmente de forma fácil y son más compatibles con los entornos modernos de computación en la nube. Con el tiempo, también cuestan menos configurarlos, gestionarlos y usarlos.
¿Cómo puede ayudar AWS con el equilibrio de carga?
Elastic Load Balancing (ELB) es un servicio de equilibrio de carga totalmente administrado que distribuye automáticamente el tráfico de aplicaciones entrante a varios destinos y dispositivos virtuales en los recursos locales y de AWS. Escale las aplicaciones modernas para satisfacer la demanda sin configuraciones complejas ni puertas de enlace de API. Puedes usar ELB para configurar cuatro tipos diferentes de equilibradores de carga de software.
-
Un equilibrador de carga de aplicación enruta el tráfico de las solicitudes basadas en HTTP.
-
Un equilibrador de carga de red enruta el tráfico en función de las direcciones IP. Es ideal para equilibrar solicitudes basadas en TCP y en el protocolo de datagramas de usuario (UDP).
-
Un equilibrador de carga de puerta de enlace dirige el tráfico a dispositivos virtuales de terceros. Es ideal para incorporar un dispositivo de terceros, como un cortafuegos de red, en el tráfico de la red de una manera escalable y fácil de administrar.
-
Un equilibrador de carga clásico dirige el tráfico a las aplicaciones de la red clásica de Amazon EC2, una red única y plana que se comparte con otros clientes.
Puede seleccionar el equilibrador de carga en función de sus requisitos. Por ejemplo, Terminix, una marca mundial de control de plagas, utiliza un equilibrador de carga de puerta de enlace para gestionar un 300 % más de rendimiento. Second Spectrum, una empresa que proporciona tecnología de seguimiento basada en inteligencia artificial para transmisiones deportivas, utiliza un controlador de equilibrador de carga de AWS para reducir los costos de alojamiento en un 90 %. Code.org, una organización sin fines de lucro dedicada a ampliar el acceso a la computación en las escuelas, utiliza un equilibrador de carga de aplicación para gestionar un aumento del tráfico del 400 % de manera eficiente durante los eventos de codificación en línea.
Para comenzar a utilizar el equilibrio de carga, cree una cuenta de AWS hoy mismo.
Siguientes pasos del equilibrio de carga en AWS
Obtenga acceso inmediato al nivel Gratuito de AWS.
Comience a crear con AWS en la consola de administración de AWS.