Tengo N
webapps Cada aplicación web tiene un nombre de host diferente en mi dominio y se implementa en 2 instancias que se ejecutan en AWS. En otras palabras, tengo 2N
instancias, divididas en pares que ejecutan N
distintas aplicaciones web.
Me gustaría configurar un solo AWS Elastic Load Balancer que enviará una solicitud a una de las dos instancias que la sirven según el Host
encabezado. ¿Es posible usar un solo ELB o tendré que implementar N
ELB, uno para cada par de instancias?
amazon-web-services
amazon-elb
tesoro
fuente
fuente
Respuestas:
Un solo ELB enruta el tráfico exactamente a un conjunto de instancias y distribuye el tráfico entrante a todas las instancias "detrás" de él. No enruta selectivamente el tráfico en función de ningún análisis de capa 7 del tráfico, como el
Host:
encabezado.Necesita un ELB para cada conjunto de instancias. Como lo describe, ese es un ELB para cada aplicación web.
Si su propósito principal para ejecutar ELB es descargar el SSL utilizando un certificado comodín (tengo un sistema diseñado así, con docenas de aplicaciones que viven en muchos-diferentes-dominios.my-wildcard-cert-domain.com), entonces las instancias "detrás" el ELB podría estar ejecutando un proxy inverso como HAProxy (u otras alternativas, como Varnish) que puede tomar decisiones de enrutamiento de capa 7 y luego reenviar el tráfico al subconjunto apropiado de máquinas detrás de ellos, lo que también permite equilibra la carga y tiene la ventaja de proporcionarle estadísticas y contadores de tráfico, agregados y separados.
Las instancias ^^^^ intermedias pueden evaluar los
Host:
encabezados (entre otras cosas) e incluso capturar el valor de la cookie de sesión en sus registros para su análisis.Esta configuración también me permite ejecutar múltiples aplicaciones en subconjuntos de instancias superpuestas, cuando corresponda, y hacer muchas otras cosas que ELB por sí solo no admite directamente. También devuelve una página personalizada "503" en el caso de que una aplicación se sobrecargue o no esté disponible, lo que ELB no hace por sí solo. He representado 2 servidores proxy aquí, sin otra razón en particular que tu mención del número 2 en la pregunta. Mi configuración en realidad tiene 3, uno para cada zona de disponibilidad en la región donde se implementa.
fuente
Host:
encabezado. Esta respuesta fue correcta cuando la escribí en 2014, pero parece que es hora de una actualización. Gracias por llamar mi atención.A partir de agosto de 2016, Amazon ELB ofrece dos tipos diferentes de equilibradores de carga:
Para su caso de uso, Application Load Balancer parece ideal. Sin embargo, está limitado a 10 reglas, por lo que solo funcionará fácilmente si su
N
tamaño no es mayor a 10.fuente
En su lista de instancias ec2, ve dos instancias, ¿verdad? ¿Pero en cada caso tienes muchas aplicaciones web? ¿Utiliza host virtual para implementar cada uno?
Solo necesita un ELB para dividir la carga en sus hosts. Ejemplo:
Creo que es mejor que me des más de tu escenario y tal vez pueda ayudarte.
Saludos.
ACTUALIZAR
Si tiene diferentes aplicaciones web en las instancias de EC2, debe tener dos equilibradores de carga elásticos (ELB). Cada uno para un par de instancias. Totalmente, cuatro instancias
fuente
2N
aplicaciones. Hay N webapps, dos instancias para cada uno. Editaré la pregunta para aclarar esto.