Compartir a través de


Perspectiva de marco de trabajo bien diseñado en Azure Load Balancer

El proceso de equilibrio de carga distribuye el tráfico de red a un grupo de dos o más servidores back-end. Azure Load Balancer es un servicio nativo de Azure que realiza el equilibrio de carga de nivel 4 para el Protocolo de datagramas de usuario (UDP) y el Protocolo de control de transmisión (TCP). Load Balancer ayuda a proporcionar baja latencia y alta disponibilidad para implementaciones regionales y globales.

En este artículo se supone que, como arquitecto, ha revisado las opciones de equilibrio de carga en Azure y ha elegido Load Balancer para la carga de trabajo. La guía de este artículo proporciona recomendaciones arquitectónicas que están alineadas con los principios de los pilares del framework Well-Architected.

Importante

Cómo usar esta guía

Cada sección tiene una lista de comprobación de diseño que presenta áreas arquitectónicas de preocupación junto con estrategias de diseño adaptadas al ámbito tecnológico.

También se incluyen recomendaciones sobre las capacidades tecnológicas que pueden ayudar a materializar esas estrategias. Las recomendaciones no representan una lista exhaustiva de todas las configuraciones disponibles para Load Balancer y sus dependencias. En su lugar, se enumeran las recomendaciones clave asignadas a las perspectivas de diseño. Utilice las recomendaciones para construir su prueba de concepto o para optimizar sus entornos existentes.

Arquitectura fundamental que muestra las recomendaciones clave:
Arquitectura de línea de base de Azure Virtual Machines.

Ámbito de tecnología

Esta revisión se centra en las decisiones interrelacionadas para los siguientes recursos de Azure:

  • Load Balancer

Esta guía se centra en el SKU estándar de Load Balancer. Las SKU básicas de Load Balancer y Gateway Load Balancer están fuera del ámbito de este artículo.

Diagrama que muestra un equilibrador de carga que dirige el tráfico.

Nota:

En el caso de las aplicaciones HTTP, considere Azure Application Gateway o Azure Front Door en lugar de Load Balancer. Estas alternativas administran el equilibrio de carga y también proporcionan características como firewall de aplicaciones web (WAF) y terminación de seguridad de la capa de transporte (TLS).

Para más información, vea:

Confiabilidad

El propósito del pilar Fiabilidad es proporcionar una funcionalidad continuada mediante la creación de suficiente resiliencia y la capacidad de recuperarse rápidamente de los fallos.

Los principios de diseño de fiabilidad proporcionan una estrategia de diseño de alto nivel aplicada a los componentes individuales, los flujos del sistema y el sistema en su conjunto.

Diseño de una lista de comprobación

Comience su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para Fiabilidad. Determine su relevancia para los requisitos empresariales, a la vez que tenga en cuenta los niveles y características de las máquinas virtuales (VM). Amplíe la estrategia para incluir más enfoques según sea necesario.

  • Comprenda el impacto de las garantías respaldadas por Microsoft. Además de otros componentes de la arquitectura, tenga en cuenta los acuerdos de nivel de servicio (SLA) en el objetivo de confiabilidad de su carga de trabajo. Tenga en cuenta los siguientes puntos importantes:

    • Si el punto final con equilibrio de carga no puede conectarse a todos los servidores back-end en buen estado durante un minuto entero, ese minuto se considera no disponible. Sin embargo, si al menos una solicitud se realiza correctamente en el mismo minuto, incluso si se produce un error en otros, ese minuto no se considera tiempo de inactividad.

    • El tiempo de inactividad no incluye minutos causados por el agotamiento de puertos de traducción de direcciones de red de origen (SNAT). Asegúrese de configurar la carga de trabajo para controlar el número esperado de conexiones y puertos abiertos en consecuencia.

  • Apoye la redundancia de zonas en su arquitectura de carga de trabajo. Se recomienda la versión estándar del equilibrador de carga. Tiene características de confiabilidad, como la compatibilidad con zonas de disponibilidad, la distribución de tráfico entre varias regiones y la capacidad de controlar más instancias en el grupo de back-end. Estas características ayudan a resistir errores en los niveles de instancia de máquina virtual zonal, regional y individual. Tenga en cuenta las limitaciones, como el tamaño máximo del grupo de servidores back-end.

    Nota:

    En Load Balancer, administra el número de máquinas virtuales con equilibrio de carga, pero no el número de instancias de Load Balancer. Puede configurar una instancia de Load Balancer para que sea redundante de zona o anclarla a una zona si la carga de trabajo necesita colocar máquinas virtuales en una sola zona. La configuración zonal o multizonal de la dirección IP front-end determina la redundancia del balanceo de carga.

  • Admite la redundancia regional en la arquitectura de tu carga de trabajo. Puede configurar Load Balancer para que sea un equilibrador de carga global. En esta configuración, el Load Balancer tiene una dirección IP pública anycast estática que transmite a varias regiones. Cuando los clientes solicitan esta dirección IP, sus solicitudes van a la instancia de servidor más cercana. Load Balancer se conecta a equilibradores de carga regionales para distribuir el tráfico de forma eficaz.

  • Evalúe cambios en su pila de redes para soportar un escalado fiable. Considere la posibilidad de escalar el grupo de back-end utilizando reglas de autoescalado. Tenga en cuenta el posible agotamiento de puertos SNAT para el tráfico saliente. Para solucionar este problema, use Azure NAT Gateway para facilitar la configuración, pero comprenda que carece de redundancia de zona de disponibilidad. Como alternativa, use Load Balancer para agregar redundancia de zona. Para obtener más información, consulte Conexiones salientes.

  • Mitigación de posibles errores. Realice el análisis del modo de error e identifique las mitigaciones. En la tabla siguiente se muestran los tipos de errores y cómo mitigarlos.

    Error Mitigación
    El tráfico se dirige a instancias de aplicación poco saludables. Supervise el estado de las instancias de la carga de trabajo. Implemente sondeos de estado HTTP que incluyan comprobaciones de dependencias de carga de trabajo.
    El tráfico se dirige a una región que tiene una interrupción. Implemente instancias adicionales en otra región. Agregue un equilibrador de carga global para redirigir el tráfico a la nueva región.
    La base de usuarios de la carga de trabajo se expandió para admitir a los usuarios en una nueva región, quienes están experimentando una latencia alta. La aplicación ahora experimenta un gran número de tiempos de espera y errores. Implemente instancias adicionales en una nueva región y agréguelas en la configuración del servicio. Como equilibrador de carga global, Azure Load Balancer enruta el tráfico más cerca de los usuarios.
  • Redirija el tráfico a instancias correctas. Puede usar HTTP o TCP para sondeos de estado. Para proporcionar respuestas de estado más enriquecidas, considere la posibilidad de crear un punto de conexión HTTP para las comprobaciones de estado, incluso para aplicaciones que no son HTTP. Este enfoque es especialmente útil para comprobar las dependencias y las bases de datos. Sin sondeos HTTP, el equilibrador de carga se basa en conexiones TCP, lo que podría no reflejar con precisión el estado de la máquina virtual.

    Puede configurar el sondeo de estado en Load Balancer. Para obtener más información, consulte Guía de diseño sobre sondeos de salud.

Recomendaciones

Recomendación Prestación
Seleccione el SKU de Load Balancer estándar.
Para obtener más información, consulte comparación de SKU .
Esta SKU admite características de confiabilidad, como zonas de disponibilidad y equilibrio de carga multiregión.
Configure reglas para asignar la dirección IP del front-end a las direcciones IP de los servidores back-end para permitir el equilibrio de carga.

El grupo de direcciones de la parte trasera debe tener al menos dos puntos de conexión traseros para equilibrar la carga y garantizar la redundancia.
Las reglas son el núcleo del algoritmo de equilibrio de carga. Sin esta configuración, los modos de distribución están deshabilitados.
Configure sondeos de estado.

: establezca los valores de intervalo de sondeo y umbral. Tenga en cuenta el equilibrio entre la rapidez con la que puede detectar errores y el número de solicitudes al punto de conexión.
- Evalúe si desea enviar tráfico a las instancias cuando todas las instancias tengan un estado no saludable. Puede utilizar esta configuración para implementar una experiencia de degradación correcta. Para obtener más información, vea AllProbedUp .
Solo las instancias sanas del grupo de back-end reciben nuevas conexiones. Esta configuración ayuda a mantener la alta disponibilidad y confiabilidad porque enruta el tráfico fuera de las instancias incorrectas.
Configure las direcciones IP privadas y públicas para que sean redundantes de zona. La dirección IP determina la redundancia de zona de Load Balancer. La redundancia de zona ayuda a la carga de trabajo a soportar errores zonales. Cuando una zona falla, los servicios pueden fallar a una de las zonas restantes.

Seguridad

El propósito del pilar de seguridad es proporcionar garantías de confidencialidad, integridad y disponibilidad a la carga de trabajo.

Los Principios de diseño de seguridad proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos aplicando enfoques al diseño técnico del Load Balancer.

Diseño de una lista de comprobación

Inicie la estrategia de diseño en función de la lista de comprobación de revisión de diseño de seguridad e identifique vulnerabilidades y controles para mejorar la posición de seguridad. Amplíe la estrategia para incluir más enfoques según sea necesario.

  • Revise las líneas base de seguridad. Para mejorar la postura de seguridad de su aplicación equilibrada en carga por Azure Load Balancer, revise la línea base de seguridad para Load Balancer.

  • Proteja los servidores back-end. Implemente recursos en una red virtual que no tenga exposición directa a Internet. Enfrente la red virtual con un Load Balancer. Lo ideal es que el equilibrador de carga tenga funcionalidades de firewall. En el caso de las aplicaciones HTTP, considere Application Gateway o Azure Front Door. En el caso de las aplicaciones que no son HTTP, considere load Balancer con una dirección IP privada (equilibrador de carga interno) y enrute el tráfico a través de Azure Firewall para mayor seguridad. Para obtener más información, consulte el equilibrador de carga interno .

    También puede usar Load Balancer como proxy inverso. En ese caso, el equilibrador de carga tiene una dirección IP pública con SNAT, que expone los recursos al enmascarar sus direcciones IP.

    Nota:

    Para filtrar el tráfico a los servidores de back-end, utilice grupos de seguridad de red (NSG) en las subredes que contienen el front-end y el back-end. No aplique NSGs directamente al servicio del Load Balancer. Cuando los grupos de seguridad de red aplican reglas, tienen en cuenta los puertos de origen, los puertos de destino y los intervalos de direcciones de los equipos de origen y destino, no el equilibrador de carga.

  • Diseño para la conectividad privada. Load Balancer funciona con Azure Private Link. Si distribuye recursos de aplicación entre redes virtuales, puede conectar recursos en diferentes redes virtuales. Use el emparejamiento de red virtual o coloque Private Link delante del equilibrador de carga interno. La opción Private Link proporciona acceso más seguro sin necesidad de una dirección IP pública. También restringe el acceso desde redes nopeeradas.

    Puede autorizar enlaces privados mediante control de acceso basado en roles para restringir el acceso solo a las identidades que lo necesiten.

  • Proteja la aplicación frente a amenazas en el perímetro de red. Para los diseños que utilizan el Load Balancer como punto de entrada, implemente la inspección de tráfico a nivel de punto final. Este diseño no tiene características de seguridad integradas como waf, por lo que debe agregar medidas adicionales para ayudar a proteger las aplicaciones HTTP. Para obtener más información, consulte Equilibrador de carga público. Asegúrese también de proteger los puntos de conexión del equilibrador de carga frente a ataques distribuidos por denegación de servicio (DDoS).

  • Cifrar el tráfico de red. Load Balancer funciona en la capa 4 y es totalmente compatible con el equilibrio de carga tcp y el tráfico UDP. El Load Balancer no admite la terminación SSL (Secure Sockets Layer) ni TLS. Para el equilibrio de carga HTTPS en la capa de aplicación, use Application Gateway.

Recomendaciones

Recomendación Prestación
Configure la dirección IP de front-end en una dirección IP privada de una red virtual. Este enfoque ayuda a garantizar que la dirección IP de front-end y la red virtual permanezcan aisladas de la exposición directa a Internet. El equilibrador de carga interno no puede aceptar el tráfico entrante de Internet, lo que reduce los posibles vectores de ataque.
Proteger el equilibrador de carga público con Azure DDoS Protection. Un plan DDoS Protection proporciona protección avanzada, incluidas las funcionalidades de detección que supervisan el punto de conexión para detectar amenazas y signos de abuso.

Optimización de costos

La optimización de costos se centra en detectar patrones de gasto, priorizar las inversiones en áreas críticas y realizar optimizaciones en otras para satisfacer el presupuesto de la organización a la vez que cumple los requisitos empresariales.

Los principios de diseño de optimización de costos de proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos y hacer compromisos según sea necesario en el diseño técnico relacionado con el equilibrador de carga y su entorno.

Diseño de una lista de comprobación

Comience su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para Optimización de costes para inversiones. Ajuste el diseño para que la carga de trabajo esté alineada con el presupuesto asignado a la carga de trabajo. Su diseño debe utilizar las capacidades de Azure adecuadas, supervisar las inversiones y encontrar oportunidades para optimizar con el tiempo.

  • Factorice los gastos de equilibrio de carga en el modelo de costos. Tenga en cuenta los factores principales, como la cantidad de datos que procesa Load Balancer y el número de reglas de equilibrio de carga entrantes y salientes. Para obtener una estimación precisa de costos, use los registros de tráfico para medir las necesidades de tráfico entrante y saliente.

  • Establecer controles sobre el gasto. Registre y analice los costos de Load Balancer. Para administrar los costes de forma eficaz, utilice Microsoft Cost Management para crear presupuestos y configurar alertas. Los costos se pueden acumular en función de la cantidad de datos registrados y la duración del almacenamiento, lo que afecta a los gastos de ancho de banda y almacenamiento.

  • Quite los recursos no utilizados. Identifique y quite instancias de equilibrador de carga sin usar. Analice los registros para evaluar el uso. Elimine instancias del equilibrador de carga que no están asociadas a máquinas virtuales de back-end. Examine los registros de tráfico para buscar recursos infrautilizados.

  • Optimización de los costos de flujo. Use protocolos eficaces y compresión de datos para reducir la carga en el flujo de tráfico y minimizar los costos.

    Para optimizar los costos, puede reducir el número de reglas. En lugar de tener reglas que usen direcciones IP y puertos individuales para cada punto de conexión, defina una regla para un intervalo de puertos en el front-end que se conecta a un grupo de back-end.

    Implemente la optimización en los flujos de back-end. Por ejemplo, varias consultas de base de datos que intercepta un equilibrador de carga pueden aumentar los costos por consulta. Para evitar este costo adicional, considere la posibilidad de implementar un procedimiento almacenado para consolidar la secuencia de consultas.

  • Evalúe el costo de las operaciones. Considere los gastos de recursos y los costos operativos, como el mantenimiento, el escalado y el cumplimiento. Las reglas del equilibrador de carga pueden afectar significativamente a los costos. Reduzca el número de reglas para optimizar los costos financieros y de administración.

Recomendaciones

Recomendación Prestación
Puede usar la calculadora de precios de Azure para calcular los costos. Puede convertir el uso anticipado del tráfico en estimaciones de costos, lo que facilita el planeamiento y el presupuesto.
Evalúe el número de reglas y reduzcalas, si es posible.

Evalúe si puede usar una regla para resumir un intervalo de puertos en lugar de definir varias reglas para direcciones IP individuales.
Por ejemplo, puede usar reglas NAT de entrada para asignar direcciones IP y puertos a un grupo de servidores de back-end en lugar de a máquinas virtuales individuales.
Las reglas consolidadas optimizan los costos y simplifican las operaciones.

Cuando amplíe o reduzca la escala, puede añadir o eliminar direcciones IP del grupo de back-end sin cambiar ninguna regla.

Excelencia operativa

La excelencia operativa se centra principalmente en procedimientos para prácticas de desarrollo, observabilidad y administración de versiones.

Los principios de diseño de Excelencia Operativa proporcionan una estrategia de diseño de alto nivel para alcanzar los objetivos relacionados con los requisitos operativos del flujo de trabajo.

Diseño de una lista de comprobación

Inicie su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para la Excelencia Operativa para definir los procesos de observabilidad, pruebas y despliegue relacionados con el Load Balancer.

  • Use la infraestructura como código. Implemente y configure el Load Balancer junto con otros componentes de red, como redes virtuales, peerings de red, puntos de conexión privados y NSG. Familiarizarse con el tipo de recurso Microsoft.Network loadBalancers.

  • Utilice la implementación por capas para arquitecturas hub-and-spoke. Implemente primero el concentrador porque cambia con menos frecuencia que la carga de trabajo que se implementa en la red de radios. Implemente el Load Balancer con la carga de trabajo. Si reutiliza un único equilibrador de carga en varias cargas de trabajo, considere la posibilidad de colocarlo en el centro.

  • Implemente un sistema de supervisión de redes completo. Implemente capacidades de diagnóstico, como métricas multidimensionales para obtener información y alertas en tiempo real, registros de recursos basados en el esquema de eventos de salud, y el panel de Azure Monitor Insights para un monitoreo integral del equilibrador de carga.

Recomendaciones

Recomendación Prestación
Utilice métricas multidimensionales.

Para minimizar las alertas excesivas, establezca el tipo de agregación en Averagey use una ventana de datos de cinco minutos que tenga un umbral de 95%. Para obtener más información, consulte Configuración de alertas para métricas multidimensionales. Revise los ejemplos de disponibilidad entrante y saliente.
La información completa en tiempo real y la configuración de alertas proporcionan una detección mejorada de problemas y permiten respuestas rápidas.
Capturar registros de recursos. Las entradas del Load Balancer dependen del esquema de eventos de estado. Los registros proporcionan registros detallados de eventos para que pueda identificar y resolver problemas rápidamente.
Utiliza el panel integrado de Azure Monitor Insights para el Balanceador de Carga. La visualización facilita opciones de diseño bien fundamentadas y le ayuda a identificar, diagnosticar y corregir problemas rápidamente.
Durante las operaciones de mantenimiento, establezca el estado de administración en Down para retirar una instancia de back-end de la rotación sin interrumpir las conexiones existentes. Esta configuración ayuda a garantizar que no se reenvía ninguna nueva conexión a la instancia de back-end, mientras que las conexiones existentes finalizan correctamente. Esta configuración estado de administración ayuda a reducir la sobrecarga y la complejidad cuando se saca una VM de la rotación del Load Balancer para mantenimiento regular o aplicación de parches.

Como opción alternativa para sacar una instancia back-end de la rotación, puede aplicar NSGs para bloquear el tráfico de la sonda de salud del Balanceador de Carga o las direcciones IP y puertos del cliente. Esta opción aumenta la complejidad.

Eficiencia del rendimiento

La eficiencia del rendimiento consiste en mantener la experiencia del usuario incluso cuando se produce un aumento de la carga mediante la administración de la capacidad. La estrategia incluye escalar los recursos, identificar y optimizar los posibles cuellos de botella y optimizar el rendimiento máximo.

Los Principios de diseño de la eficiencia del rendimiento proporcionan una estrategia de diseño de alto nivel para alcanzar esos objetivos de capacidad frente al uso previsto.

Diseño de una lista de comprobación

Inicie su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para la eficiencia en el rendimiento, con el fin de definir una línea de base basada en indicadores clave de rendimiento para el balanceador de carga.

  • Determine los objetivos de rendimiento de red. El equilibrador de carga no tiene ningún límite en el tráfico que puede admitir. Pero al definir objetivos de rendimiento y planear la capacidad, debe probar el rendimiento de la red.

    Use pruebas de esfuerzo para comprender los requisitos de ancho de banda de la carga de trabajo. Incluya el equilibrador de carga en esas pruebas. Si un único conjunto de escalado de máquinas virtuales con varias máquinas virtuales no es suficiente, puede agregar otro conjunto de escalado mediante el mismo equilibrador de carga. Si las máquinas virtuales no reciben solicitudes lo suficientemente rápido, es posible que tenga que ajustar los componentes de red, como agregar más equilibradores de carga. Pero en lugar de cambiar el equilibrador de carga, considere la posibilidad de realizar cambios de diseño y optimizar la carga de trabajo para controlar mejor la carga.

  • Comprenda los límites al diseñar la estrategia de escalado. Para cumplir los requisitos de rendimiento y escalar la carga de trabajo, agregue o quite máquinas virtuales del grupo de back-end. Un único grupo de back-end en Standard Load Balancer puede controlar hasta 5000 máquinas virtuales.

    Load Balancer no aplica límites de rendimiento. Sin embargo, todavía se aplican los límites de rendimiento de las máquinas virtuales y las redes virtuales. Para obtener más información, consulte Ancho de banda de red de MV.

  • Atender solicitudes rápidamente. Standard Load Balancer incluye un nivel que enruta el tráfico hacia los endpoints de back-end en función de su proximidad geográfica al usuario.

    Load Balancer también admite la distribución de carga en función de la persistencia de la sesión. Al habilitar esta característica, las solicitudes del mismo cliente se dirigen de forma coherente al mismo servidor back-end que controló sus sesiones anteriores.

  • Recopilar datos para analizar el rendimiento. Las métricas multidimensionales del Load Balancer pueden analizar el rendimiento del servicio. Configure alertas para detectar cambios de rendimiento. Use herramientas como el panel de Azure Monitor Insights para visualizar el estado del equilibrador de carga. Asegúrese de que la función de salud de recursos monitorea el estado de salud y manténgase informado sobre los problemas de rendimiento y las interrupciones.

  • Optimizar el tráfico de red. No procese los mismos datos varias veces en pasos independientes. En su lugar, realice todos los cálculos necesarios en un lote y, a continuación, conserve los datos. Este enfoque reduce la latencia y minimiza el tráfico de red, lo que mejora el rendimiento general.

Recomendaciones

Recomendación Prestación
Seleccione el nivel global en Standard Load Balancer si tiene usuarios globales. El modo de distribución de proximidad geográfica de este nivel atiende las solicitudes de usuario de los puntos de conexión de la región más cercana, lo que mejora el rendimiento.
Evalúe si debe habilitar persistencia de sesión cuando desee que las solicitudes del mismo usuario se dirijan al mismo servidor back-end.

Desde una perspectiva de confiabilidad, no se recomienda este enfoque. Si usa esta opción, la aplicación debe recuperarse correctamente sin interrumpir las sesiones del usuario.

También hay una contrapartida de equilibrio de carga porque restringe la flexibilidad de distribuir el tráfico a través de múltiples back ends de manera uniforme.
La persistencia de sesión puede optimizar el rendimiento y mantener la continuidad de las sesiones de usuario, especialmente cuando las aplicaciones dependen de mantener la información de estado localmente. Pero hay compensaciones.
Durante el escalado de salida, envíe una señal de sondeo de mantenimiento hasta que la aplicación esté completamente inicializada y lista para administrar peticiones.

Durante el escalado de entrada, envíe una señal de sondeo hacia abajo para nuevas conexiones en el extremo que se está reduciendo. Las solicitudes pendientes en las conexiones existentes se siguen procesando.
Las sondas de salud pueden ayudar a optimizar las operaciones de escalamiento. Ayudan a asegurar que durante el escalado de salida, la aplicación puede manejar la carga entrante. Antes de una operación de reducción de escala, estas prácticas permiten reducir sin problemas las instancias sin interrumpir las operaciones en curso.

Directivas de Azure

Azure proporciona un amplio conjunto de directivas integradas relacionadas con Load Balancer y sus dependencias. Algunas de las recomendaciones anteriores pueden auditarse a través de Azure Policy. Por ejemplo, puede comprobar si:

  • Los Load Balancers, excluidos los Load Balancers SKU básicos, tienen habilitadas funciones de resiliencia para direcciones IP públicas en su extremo frontal.
  • Los registros de recursos están habilitados para realizar un seguimiento de las actividades y eventos que se producen en los recursos y proporcionar visibilidad y información sobre los cambios.

Para una gobernanza completa, revise las definiciones integradas de Política Azure para Load Balancer y otras políticas que puedan afectar a la seguridad de la distribución del tráfico.

Recomendaciones de Azure Advisor

Asistente de Azure es un consultor en la nube personalizado que le ayudará a realizar procedimientos recomendadas para optimizar las implementaciones de Azure. Las recomendaciones de Advisor se alinean con los pilares de Well-Architected Framework.

Para más información, consulte las recomendaciones de Azure Advisor.