Balanceo de carga en una capa - AWS OpsWorks

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.

Balanceo de carga en una capa

importante

El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los existentes. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en AWS Re:post o a través de Premium AWS Support.

AWS OpsWorks Stacks ofrece dos opciones de equilibrio de carga, Elastic Load Balancing y HAProxy, que se utilizan normalmente para equilibrar la carga en las instancias de una capa de servidor de aplicaciones. En este tema se describen las ventajas y las limitaciones de cada opción para ayudarle a decidir cuál elegir cuando se añade el balanceador de carga a una capa. En algunos casos, es mejor utilizar ambas.

Terminación de SSL

La capa HAProxy integrada no se encarga de la terminación SSL. Debe finalizar SSL en los servidores. La ventaja de este sistema es que el tráfico va cifrado hasta que llega a los servidores. Sin embargo, los servidores deben gestionar el descifrado y esto hace que su carga aumente. Además, debe ubicar los certificados SSL en los servidores de aplicaciones, ya que son más accesibles para los usuarios.

Con Elastic Load Balancing, puede finalizar SSL en el equilibrador de carga. Esto reduce la carga en los servidores de aplicaciones, pero el tráfico entre el equilibrador de carga y el servidor no se cifra. Elastic Load Balancing también le permite finalizar SSL en el servidor, pero es algo complicado de configurar.

Escalado

Si el tráfico entrante supera la capacidad de un balanceador de carga HAProxy, debe aumentarla manualmente.

Elastic Load Balancing se escala automáticamente para controlar el tráfico entrante. Para garantizar que un equilibrador de carga Elastic Load Balancing tiene capacidad suficiente para la carga prevista cuando entra online por primera vez, haga los preparativos necesarios.

Error del balanceador de carga

Si la instancia que hospeda el servidor HAProxy da error, puede dejar el sitio web sin conexión hasta que reinicie la instancia.

Elastic Load Balancing es más resistente a los fallos que HAProxy. Por ejemplo, aprovisiona nodos de balanceo de carga en cada zona de disponibilidad con instancias EC2 registradas. Si se interrumpe el servicio en una zona, los demás nodos continúan ocupándose del tráfico entrante. Para obtener más información, consulte Conceptos de Elastic Load Balancing.

Tiempo de inactividad

Ambos balanceadores de carga finalizan la conexión si un servidor permanece inactivo durante más tiempo del que se haya especificado.

  • HAProxy: el valor de tiempo de inactividad no tiene límite superior.

  • Elastic Load Balancing: el valor predeterminado del tiempo de inactividad es 60 segundos, con un máximo de 3600 segundos (60 minutos).

El límite de tiempo de inactividad de Elastic Load Balancing es suficiente en la mayoría de los casos. Recomendamos el uso de HAProxy si necesita prolongar el tiempo de inactividad. Por ejemplo:

  • Una conexión HTTP de ejecución prolongada que se utiliza para notificaciones push.

  • Una interfaz administrativa que se usa para realizar tareas que podrían demorar más de 60 minutos.

Asignación basada en URL

Es posible que le interese que un balanceador de carga reenvíe una solicitud entrante a un servidor concreto en función de la URL de la solicitud. Por ejemplo, suponga que tiene un grupo de diez servidores de aplicaciones que respaldan una aplicación de comercio online. Ocho de los servidores se encargan del catálogo y dos administran los pagos. Desea dirigir todas las solicitudes HTTP relacionadas con pagos a los servidores de pago, en función de la URL de la solicitud. En este caso, dirigiría todas las direcciones URL que incluyen "pago" o "caja" a uno de los servidores de pago.

Con HAProxy, puede utilizar la asignación basada en URL para dirigir las URL que contienen una cadena especificada a servidores concretos. Para usar el mapeo basado en URL con AWS OpsWorks Stacks, debes crear un archivo de configuración HAProxy personalizado sustituyendo la plantilla del haproxy-default.erb libro de cocina integrado. haproxy Para obtener más información, consulte Manual de configuración de HAProxy y Uso de plantillas personalizadas. No puede utilizar la asignación basada en URL con las solicitudes HTTPS. Las solicitudes HTTPS van cifradas, de manera que HAProxy no tiene forma de examinar la URL de la solicitud.

Elastic Load Balancing tiene un soporte limitado para el mapeo de URL. Para obtener más información, consulte Configuraciones de agentes de escucha de Elastic Load Balancing.

Recomendación: recomendamos utilizar Elastic Load Balancing para el equilibrador de carga a menos que tenga requisitos que solo se pueden administrar mediante HAProxy. En ese caso, el mejor método puede ser combinar los dos mediante Elastic Load Balancing como equilibrador de carga frontend que distribuye el tráfico entrante entre un conjunto de servidores HAProxy. Para ello:

  • Configure una instancia de HAProxy en cada una de las zonas de disponibilidad de la pila para distribuir las solicitudes entre los servidores de aplicaciones de la zona.

  • Asigne las instancias de HAProxy a un equilibrador de carga Elastic Load Balancing que, a continuación, distribuye las solicitudes entrantes entre los equilibradores de carga de HAProxy.

Este método permite utilizar la asignación basada en URL de HAProxy para distribuir diferentes tipos de solicitudes entre los servidores de aplicaciones adecuados. No obstante, si uno de los servidores HAProxy pierde la conexión, el sitio seguirá funcionando, ya que el equilibrador de carga Elastic Load Balancing distribuye automáticamente el tráfico entrante entre los servidores de HAProxy en buen estado. Tenga en cuenta que debe utilizar Elastic Load Balancing como el equilibrador de carga frontend; un servidor HAProxy no puede distribuir las solicitudes entre otros servidores HAProxy.