Ich habe N
Webapps. Jede Webanwendung wird unter einem anderen Hostnamen in meiner Domain bereitgestellt und auf zwei Instanzen in AWS ausgeführt. Mit anderen Worten, ich habe 2N
Instanzen, die in Paare unterteilt sind und N
unterschiedliche Webanwendungen ausführen.
Ich möchte einen einzelnen AWS Elastic Load Balancer einrichten, der eine Anfrage basierend auf dem Host
Header an eine der beiden Instanzen weiterleitet, die sie bedienen . Ist dies mit einer einzelnen ELB möglich oder muss eine ELB N
für jedes Instanzenpaar bereitgestellt werden?
amazon-web-services
amazon-elb
thesamet
quelle
quelle
Antworten:
Eine einzelne ELB leitet den Datenverkehr an genau einen Satz von Instanzen weiter und verteilt den eingehenden Datenverkehr auf alle Instanzen "dahinter". Es wird kein selektiver Datenverkehr auf der Grundlage einer Layer 7-Analyse des Datenverkehrs wie z. B. des
Host:
Headers weitergeleitet.Sie benötigen eine ELB für jede Menge von Instanzen. Wie Sie es beschreiben, ist das eine ELB für jede Webanwendung.
Wenn Ihr primärer Zweck für die Ausführung von ELB darin besteht, SSL mit einem Platzhalterzertifikat zu entladen (ich habe ein System wie dieses entwickelt, mit Dutzenden von Apps, die unter many-different-domains.my-wildcard-cert-domain.com installiert sind), dann die Instanzen „hinter“ die ELB könnte einen Reverse - Proxy wie HAProxy (oder mehr anderen Alternativen, wie Varnish) ausgeführt werden , die können Layer-7 - Routing - Entscheidungen treffen und dann nach vorne um den Verkehr auf die entsprechende Teilmenge von Maschinen hinter ihnen, die auch anspruchsvollere erlaubt Lastenausgleich und bietet den Vorteil, dass Sie Statistiken und Verkehrszähler erhalten, aggregiert und getrennt.
Die Zwischeninstanzen von ^^^^ können
Host:
(unter anderem) die Header auswerten und sogar den Wert des Sitzungscookies in ihren Protokollen zur Analyse erfassen.Mit diesem Setup kann ich auch mehrere Apps in überlappenden Teilmengen von Instanzen ausführen und viele andere Dinge tun, die von ELB selbst nicht direkt unterstützt werden. Es wird auch eine benutzerdefinierte "503" -Seite zurückgegeben, wenn eine Anwendung überlastet oder auf andere Weise nicht mehr verfügbar ist, was ELB nicht alleine tut. Ich habe hier 2 Proxy-Server dargestellt, und zwar aus keinem anderen Grund als der Erwähnung der Nummer 2 in der Frage. Mein Setup enthält 3, eine für jede Verfügbarkeitszone in der Region, in der diese bereitgestellt wird.
quelle
Host:
Header zu erstellen. Diese Antwort war richtig, als ich sie 2014 schrieb, aber es sieht so aus, als ob es Zeit für ein Update ist. Vielen Dank, dass Sie mich darauf aufmerksam gemacht haben.Ab August 2016 bietet Amazon ELB zwei verschiedene Typen von Load Balancern an:
Für Ihren Anwendungsfall scheint Application Load Balancer ideal zu sein. Es ist jedoch auf 10 Regeln beschränkt, sodass es nur dann problemlos funktioniert, wenn Sie
N
nicht größer als 10 sind.quelle
Auf Ihrer Liste der ec2-Instanzen sehen Sie zwei Instanzen, richtig? Aber hast du auf jeder Instanz viele Webapps? Sie verwenden einen virtuellen Host, um jeden einzelnen bereitzustellen?
Sie benötigen nur eine ELB, um die Ladung auf Ihre Hosts aufzuteilen. Beispiel:
Ich denke das ist besser du gibst mir mehr von deinem Szenario und vielleicht kann ich dir helfen.
Grüße.
AKTUALISIEREN
Wenn Sie auf den EC2-Instanzen unterschiedliche Webanwendungen haben, benötigen Sie zwei Elastic Load Balancers (ELB). Jeder für ein Paar von Instanzen. Insgesamt vier Instanzen
quelle
2N
Apps angezeigt. Es gibt N Webapps mit jeweils zwei Instanzen. Ich werde die Frage bearbeiten, um dies zu klären.