Balanceo de carga en AWS: conozca sus opciones
Introducción
A pesar de la gran variedad de usos, plataformas y tecnologías, la mayoría de las aplicaciones comparten algunas necesidades comunes: deben mantenerse en línea y protegidas frente a fallos de hardware, deben poder escalar para satisfacer la demanda y deben estar protegidas frente a vulneraciones y ataques.
Desde que las aplicaciones comenzaron a migrar de los ordenadores centrales a los sistemas abiertos, las organizaciones han utilizado balanceadores de carga para gestionar la escalabilidad y la disponibilidad de las aplicaciones. Ante problemas complejos y amenazas de seguridad cada vez más sofisticadas, los balanceadores de carga evolucionaron para ofrecer conjuntos de funciones más completos, incorporando capacidades de seguridad y optimización.
Con el tiempo, el sencillo equilibrador de carga ha evolucionado hasta convertirse en el potente controlador de entrega de aplicaciones (ADC). En todo el mundo, miles de organizaciones confían en los ADC para que las aplicaciones que forman parte de nuestra vida sean seguras, rápidas y estén disponibles. Desde los servicios médicos de urgencias y la banca hasta los videojuegos y las citas, los ADC proporcionan la tecnología que ayuda a las aplicaciones a ofrecer el máximo rendimiento.
A medida que las aplicaciones pasan de los modelos tradicionales locales a los servicios en la nube, sus necesidades de escalabilidad, seguridad y disponibilidad no disminuyen. Por tanto, no es de extrañar que todas las plataformas en la nube, tanto públicas como privadas, ofrezcan servicios de equilibrio de carga como parte de sus ofertas principales de infraestructura como servicio (IaaS).
El servicio Elastic Load Balancing (ELB) de Amazon Web Services (AWS) ayuda a las organizaciones a ofrecer cientos de miles de aplicaciones, incluidas algunas de las más grandes de Internet. Y, al igual que los balanceadores de carga locales incorporaron capacidades para satisfacer las necesidades de los clientes, los servicios de balanceo de carga de AWS siguen incorporando nuevas características y funciones.
Aunque ELB puede ser una excelente opción para muchas organizaciones, otras necesitan funcionalidades adicionales para ofrecer el mejor soporte posible a sus aplicaciones críticas. Además, algunas empresas ya han implementado controladores de entrega de aplicaciones (ADC) y balanceadores de carga para escalar y gestionar sus aplicaciones locales. Para estas organizaciones, adoptar en AWS la misma plataforma que utilizan en el centro de datos puede reducir el tiempo, los costes y los riesgos de una migración a la nube. Antes de decidir qué servicio de balanceo de carga es el más adecuado para su organización, veamos las distintas opciones disponibles en AWS.
Equilibrado de carga en AWS
Amazon Web Services ofrece el conjunto de servicios más amplio de todos los proveedores de IaaS convencionales, con una enorme variedad de funcionalidades y usos, desde servicios básicos de computación y almacenamiento en bloques hasta bases de datos avanzadas y entornos de aprendizaje automático. Un componente clave de muchas arquitecturas de clientes de AWS es el balanceador de carga, para el que AWS ofrece dos servicios distintos (ambos bajo el nombre «Elastic Load Balancing») destinados a su uso en entornos de nube privada virtual (VPC).
Balanceador de carga de aplicaciones
Application Load Balancer (ALB) de Amazon proporciona equilibrio de carga, supervisión del estado y enrutamiento de solicitudes basado en URL en la nube de AWS. ALB ofrece equilibrio de carga para los protocolos HTTP y HTTPS mediante certificados SSL del cliente cargados desde uno de los servicios de gestión de certificados de AWS, y también admite el equilibrio de carga del tráfico WebSocket. Además, ALB permite el escalado automático de los recursos de servidores backend de Elastic Compute Cloud (EC2): cuando aumenta la demanda de tráfico, ALB puede activar la implementación de servidores adicionales y eliminarlos cuando la demanda disminuye.
El servicio ALB también se escala para hacer frente a cargas adicionales. A medida que aumenta el tráfico de red de la aplicación, se crean instancias de ALB adicionales y se registran en el DNS; a continuación, el tráfico se distribuye entre las instancias de ALB mediante un sistema de rotación de DNS. Para obtener el mejor rendimiento ante aumentos repentinos de la carga de trabajo, se recomienda precalentar las instancias de ALB, ya que el tiempo de puesta en marcha de nuevas instancias puede oscilar entre uno y siete minutos.
ALB se puede implementar mediante la consola web, la CLI, la API, plantillas de CloudFormation (CFT) y numerosas herramientas de automatización, como Ansible.
Balanceador de carga de red
La incorporación más reciente a la familia de balanceo de carga elástico de AWS es Network Load Balancer (NLB). Al igual que el balanceador de carga «clásico», funciona en la capa 4 y ofrece balanceo de carga basado en conexiones, así como comprobaciones de estado en las capas de red y de aplicación. NLB está diseñado para gestionar eficazmente los picos de tráfico y grandes volúmenes de conexiones. Además, NLB permite utilizar como destinos tanto direcciones IP privadas RFC 1918 como instancias EC2. Las opciones de escalado automático, autoescalado e implementación son similares a las de ALB.
Balanceador de carga clásico
AWS también sigue ofreciendo su Elastic Load Balancer «clásico», que admite el balanceo de carga básico de capa 4 para el tráfico TCP, pero no el balanceo ni el direccionamiento del tráfico de capa 7. Las opciones de escalado automático, autoescalado e implementación son similares a las de ALB.
ADC virtual F5 BIG-IP
La plataforma ADC F5® BIG-IP® se sitúa en el extremo opuesto del espectro del balanceo de carga con respecto al ligero balanceador de carga clásico de AWS. Gracias a un conjunto de funciones que abordan una enorme variedad de retos relacionados con la seguridad, la optimización de aplicaciones y la disponibilidad, BIG-IP puede resolver problemas y gestionar el tráfico de aplicaciones que las soluciones más sencillas simplemente no pueden afrontar.
BIG-IP ofrece una gestión integral del tráfico de aplicaciones, que incluye la inspección, el control y la manipulación completos del tráfico. Esto abarca tanto las solicitudes como las respuestas de la capa de aplicación, lo que permite evitar la pérdida de datos y manipular el contenido de las respuestas del servidor. Esta capacidad ha demostrado ser una herramienta rápida, fiable e inestimable para resolver problemas en miles de organizaciones. Además, la inspección y manipulación programáticas completas del tráfico de aplicaciones ofrecen a los desarrolladores una capa arquitectónica adicional para mejorar el comportamiento de las aplicaciones en un punto de control estratégico crítico.
BIG-IP frente a ELB: diferencias en la gestión
Toda esta capacidad programable para resolver problemas conlleva ciertas contrapartidas que es necesario reconocer. En primer lugar, BIG-IP opera en un nivel de infraestructura diferente al del balanceador de carga clásico de AWS y al de ALB. BIG-IP se implementa como una instancia EC2 dentro de su VPC, lo que presenta tanto ventajas como inconvenientes. Al formar parte de la VPC, el ADC puede gestionar eficazmente el tráfico entre todos los componentes de una zona de disponibilidad y le proporciona un control considerable sobre la comunicación entre los componentes de la VPC.
Al mismo tiempo, esto crea instancias EC2 adicionales que hay que administrar y mantener. La alta disponibilidad de lo que se convertirá en un componente crítico para el negocio, aunque sea fácil de configurar, pasa a ser responsabilidad suya. AWS no se encarga de administrar la plataforma subyacente en lo que respecta a las actualizaciones de software y la gestión general, sino que debe hacerlo el cliente. Además, las nuevas funcionalidades se proporcionan mediante versiones publicadas en AWS Marketplace, en lugar de a través de actualizaciones del servicio prácticamente transparentes.
Por último, BIG-IP puede escalarse bajo demanda y ajustar automáticamente la capacidad de las instancias de los servidores de aplicaciones, pero, casi inevitablemente, el cliente tendrá que asumir más tareas de configuración que si utilizara un servicio principal de AWS.

¿Qué balanceador de carga es el adecuado para mí?
Elegir la solución adecuada para su organización depende fundamentalmente de las necesidades de sus aplicaciones y su plataforma. Algunas aplicaciones y casos de uso se adaptan bien a AWS ELB, mientras que otros requieren las funcionalidades avanzadas de BIG-IP.
Equilibrio de carga elástico de AWS
ALB está diseñado para aplicaciones que requieren un balanceo de carga sencillo con algunas reglas básicas de asignación de URI a destinos. ALB satisface las necesidades básicas de distribución del tráfico y escalado de muchas aplicaciones nativas de AWS. Cuando los desarrolladores o proveedores de aplicaciones están disponibles para solucionar a tiempo los problemas de seguridad o funcionalidad —o cuando el riesgo general de que se produzcan vulneraciones de seguridad es menor—, ALB es una opción evidente.
Para aplicaciones similares que utilicen otros protocolos TCP y necesiten servicios de equilibrio de carga robustos pero sencillos, el balanceador de carga clásico suele ser suficiente.
Equilibrado de carga de BIG-IP
Existen otros casos de uso en los que una organización puede preferir aprovechar la potencia de un ADC completo en AWS. Algunas de las ventajas de utilizar BIG-IP en AWS son las siguientes:
- Seguridad mejorada
- Mayor control del tráfico
- Optimización del tráfico
- Auténtica programabilidad en la capa de aplicación
La arquitectura de la plataforma BIG-IP le proporciona una visibilidad y un control completos del tráfico de las aplicaciones. Gracias a su amplia gama de funciones, una instancia de BIG-IP en su entorno de AWS pone a su disposición un potente conjunto de herramientas para solucionar problemas de rendimiento, seguridad o disponibilidad de las aplicaciones. BIG-IP puede dirigir solicitudes individuales de la capa de aplicación a cualquier recurso enrutable, desde una instancia de EC2 local o una instancia de servidor en otra nube hasta un servicio basado en API o un dispositivo local.
Por ejemplo, ALB puede dirigir el tráfico a los recursos de back-end en función de la URL solicitada, pero si necesita dirigirlo en función de características más complejas, como el tipo de dispositivo, la velocidad de conexión o la ubicación del cliente, BIG-IP está mejor preparado para ello.
Esta capacidad avanzada de resolución de problemas cobra especial relevancia cuando se migran aplicaciones empresariales a la nube o cuando no hay desarrolladores disponibles de inmediato para mitigar vulnerabilidades de las aplicaciones o problemas de comportamiento. Cuando su aplicación necesita protección urgente, presenta un comportamiento anómalo con un nuevo tipo de cliente (o incluso tras un cambio en el sistema operativo del cliente) o falla ante determinadas solicitudes, BIG-IP suele ofrecer una solución rápida, sencilla y fiable.
Otro factor importante es la necesidad de mantener la coherencia entre el centro de datos y la nube. Miles de organizaciones confían en los dispositivos BIG-IP para ofrecer aplicaciones críticas en sus centros de datos. AWS BIG-IP Virtual Edition ofrece en AWS los mismos servicios de capa de aplicación que un dispositivo BIG-IP físico en un centro de datos. Al utilizar BIG-IP VE, las organizaciones pueden migrar aplicaciones de forma más rápida, económica y fiable, mientras el personal puede centrar sus esfuerzos de reciclaje profesional en otras áreas y se preservan los conocimientos y la inversión de la organización en BIG-IP.
Opciones de implementación
Al tratarse de un servicio nativo, implementar AWS ELB es tan sencillo como marcar una casilla. Para poner en marcha una instancia de BIG-IP VE en AWS, es necesario implementarla desde Amazon Marketplace mediante un modelo de facturación por uso o de licencia propia. La implementación de la imagen de BIG-IP puede gestionarse manualmente o mediante opciones de automatización como las plantillas de AWS CloudFormation (CFT), para las que F5 ofrece varias plantillas con soporte completo (además de algunas «experimentales»). Estas se encuentran disponibles en el repositorio de F5 en GitHub, que también contiene un SDK de Python y otras herramientas. En el repositorio de F5 DevCentral se ofrecen otras herramientas de implementación, guías de automatización y documentación con soporte de la comunidad.
Conclusión
Tanto AWS ELB como F5 BIG-IP ofrecen un valor muy atractivo para las organizaciones que implementan aplicaciones en AWS. Saber cuándo y dónde puede necesitar más control, seguridad o capacidad de programación puede ayudarle a elegir la solución adecuada para respaldar sus aplicaciones —y su negocio— en la nube.
PUBLICADO EL 3 DE NOVIEMBRE DE 2017
