Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
PERF04-BP04 Utilice el equilibrio de carga para distribuir el tráfico entre varios recursos
Distribuya el tráfico entre varios recursos o servicios para que su carga de trabajo aproveche la elasticidad que ofrece la nube. También puede utilizar el equilibrio de carga para descargar la terminación del cifrado con el objetivo de mejorar el rendimiento, la fiabilidad y administrar y dirigir el tráfico de manera eficaz.
Patrones comunes de uso no recomendados:
-
No tiene en cuenta los requisitos de la carga de trabajo al elegir el tipo de equilibrador de carga.
-
No aprovecha las características del equilibrador de carga para optimizar el rendimiento.
-
La carga de trabajo se expone directamente a Internet sin un equilibrador de carga.
-
Enruta todo el tráfico de Internet a través de los equilibradores de carga existentes.
-
Se utiliza un equilibrio de TCP carga genérico y se hace que cada nodo de cómputo gestione el cifrado. SSL
Beneficios de establecer esta práctica recomendada: un equilibrador de carga gestiona la carga variable del tráfico de la aplicación en una única zona de disponibilidad o en varias zonas de disponibilidad y facilita una alta disponibilidad, un escalado automático y un mejor uso de la carga de trabajo.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: alto
Guía para la implementación
Los equilibradores de carga actúan como punto de entrada de la carga de trabajo y, a partir de ahí, distribuyen el tráfico a los destinos de backend, como instancias de computación o contenedores, para mejorar el uso.
La elección del tipo de equilibrador de carga adecuado es el primer paso para optimizar su arquitectura. Comience por enumerar las características de la carga de trabajo, como el protocolo (por ejemplo TCP HTTPTLS, o WebSockets), el tipo de destino (como instancias, contenedores o sin servidor), los requisitos de la aplicación (como las conexiones de larga duración, la autenticación de los usuarios o la rigidez) y la ubicación (como la región, la zona local, el puesto de avanzada o el aislamiento zonal).
AWS proporciona varios modelos para que sus aplicaciones utilicen el equilibrio de carga. Application Load Balancer es el más adecuado para equilibrar la carga y el HTTPS tráfico, HTTP y proporciona un enrutamiento avanzado de solicitudes dirigido a la entrega de arquitecturas de aplicaciones modernas, incluidos microservicios y contenedores.
Network Load Balancer es el más adecuado para equilibrar la carga del TCP tráfico cuando se requiere un rendimiento extremo. Es capaz de gestionar millones de solicitudes por segundo a la vez que mantiene latencias ultrabajas y está optimizado para manejar patrones de tráfico repentinos y volátiles.
Elastic Load Balancing
Una vez elegido el equilibrador de carga adecuado, puede empezar a utilizar sus características para reducir el esfuerzo que debe hacer su backend para atender al tráfico.
Por ejemplo, si utiliza Application Load Balancer (ALB) y Network Load Balancer NLB (), puede SSL realizar una descarga de cifradoTLS/, lo que supone una oportunidad para evitar que sus objetivos completen CPU el TLS intenso apretón de manos y también para mejorar la gestión de los certificados.
Cuando configuras o SSL descargas en tu balanceador TLS de cargas, este pasa a ser responsable del cifrado del tráfico desde y hacia los clientes y, al mismo tiempo, entrega el tráfico sin cifrar a tus backends, lo que libera tus recursos de backend y mejora el tiempo de respuesta de los clientes.
Application Load Balancer también puede gestionar HTTP 1/2 tráfico sin necesidad de admitirlo en sus objetivos. Esta sencilla decisión puede mejorar el tiempo de respuesta de su aplicación, ya que HTTP /2 utiliza TCP las conexiones de forma más eficiente.
Los requisitos de latencia de la carga de trabajo deben tenerse en cuenta a la hora de definir la arquitectura. Por ejemplo, si tiene una aplicación sensible a la latencia, puede decidir utilizar el equilibrador de carga de red, que ofrece latencias extremadamente bajas. Como alternativa, puede decidir acercar su carga de trabajo a sus clientes con el equilibrador de carga de aplicación en las zonas locales de AWS
Otra consideración para las cargas de trabajo sensibles a la latencia es el equilibrio de carga entre zonas. Con el equilibrio de carga entre zonas, cada nodo del equilibrador de carga distribuye el tráfico entre los destinos registrados en todas las zonas de disponibilidad permitidas.
Utilice el escalado automático integrado con su equilibrador de carga. Uno de los aspectos clave de un sistema con un rendimiento eficiente tiene que ver con el redimensionamiento correcto de sus recursos de backend. Para ello, puede utilizar las integraciones del equilibrador de carga para los recursos de destino de backend. Mediante la integración del equilibrador de carga con los grupos de escalado automático, los destinos se agregarán o eliminarán del equilibrador de carga según sea necesario y en respuesta al tráfico entrante. Los balanceadores de carga también se pueden integrar con Amazon ECS y Amazon EKS para cargas de trabajo en contenedores.
Pasos para la implementación
-
Defina sus requisitos de equilibrio de carga, incluidos el volumen de tráfico, la disponibilidad y la escalabilidad de las aplicaciones.
-
Elija el tipo de equilibrador de carga adecuado para su aplicación.
-
Use Application Load Balancer para las cargas de trabajoHTTP/HTTPS.
-
Use Network Load Balancer para HTTP cargas que no sean de trabajo y que se ejecuten en o. TCP UDP
-
Utilice una combinación de ambos (ALBcomo objetivo NLB
) si quiere aprovechar las funciones de ambos productos. Por ejemplo, puede hacerlo si desea utilizar la estática IPs de NLB junto con el enrutamiento basado en HTTP encabezados o si desea exponer su HTTP carga de trabajo a un AWS PrivateLink. ALB -
Para ver una comparación completa de los balanceadores de carga, consulta la comparación de ELB productos
.
-
-
Utilice SSL TLS /offloading si es posible.
-
Configure HTTPS TLS /listeners con Application Load Balancer y Network Load Balancer integrados. AWS Certificate Manager
-
Tenga en cuenta que algunas cargas de trabajo pueden requerir el end-to-end cifrado por motivos de conformidad. En este caso, es un requisito permitir el cifrado en los destinos.
-
Para conocer las prácticas recomendadas de seguridad, consulte el artículo SEC09-BP02 Exigir el cifrado en tránsito.
-
-
Seleccione el algoritmo de enrutamiento correcto (únicamente). ALB
-
El algoritmo de enrutamiento puede marcar la diferencia en el grado de utilización de sus destinos de backend y, por lo tanto, en su repercusión en el rendimiento. Por ejemplo, ALB proporciona dos opciones para los algoritmos de enrutamiento:
-
Solicitudes menos pendientes: utilícelas para lograr una mejor distribución de la carga a sus destinos de backend para los casos en que las solicitudes de la aplicación varíen en complejidad o los destinos varíen en capacidad de procesamiento.
-
Patrón rotativo: utilícelo cuando las solicitudes y los destinos sean similares, o si necesita distribuir las solicitudes equitativamente entre los destinos.
-
-
Considere el aislamiento entre zonas o de zonas.
-
Desactive el aislamiento entre zonas (aislamiento de zonas) para mejorar la latencia y los dominios de error de zona. Está desactivado de forma predeterminada en NLB y ALBsi se puede desactivar por grupo objetivo.
-
Active el aislamiento entre zonas para aumentar la disponibilidad y flexibilidad. De forma predeterminada, las zonas cruzadas están activadas para cada grupo objetivo ALB y en NLB ellas se pueden activar.
-
-
Activa HTTP Keep-Alives para tus cargas de HTTP trabajo (únicamente). ALB Con esta función, el balanceador de cargas puede reutilizar las conexiones de backend hasta que se agote el tiempo de espera de mantenimiento, lo que mejora el tiempo de HTTP solicitud y respuesta y, además, reduce el uso de recursos en tus objetivos de backend. Para obtener más información sobre cómo hacer esto para Apache y Nginx, consulta ¿Cuál es la configuración óptima para usar
Apache o como servidor backend? NGINX ELB -
Active la supervisión de su equilibrador de carga.
-
Active los registros de acceso del equilibrador de carga de aplicación y el equilibrador de carga de red.
-
Los campos principales a tener en cuenta ALB son
request_processing_time
, yrequest_processing_time
.response_processing_time
-
Los principales campos a tener en cuenta NLB son
connection_time
ytls_handshake_time
. -
Esté preparado para consultar los registros cuando los necesite. Puede usar Amazon Athena para consultar tanto los ALBregistros como los NLB registros.
-
Cree alarmas para métricas relacionadas con el rendimiento, por ejemplo,
TargetResponseTime
para ALB.
-
Recursos
Documentos relacionados:
Videos relacionados:
-
AWS re:Invent 2023: ¿Qué pueden hacer las redes por su aplicación?
-
AWS re:Invent 2018: Elastic Load Balancing: análisis profundo y mejores prácticas
-
AWS re:Invent 2021: ¿Cómo elegir el balanceador de cargas adecuado para sus cargas de trabajo AWS
-
AWS re:Invent 2019: Aproveche al máximo Elastic Load Balancing para diferentes cargas de trabajo
Ejemplos relacionados: