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.
/-- HAProxy \ /----- instances hosting app #1
ELB ---| >> ----- instances hosting app #2
\-- HAProxy / \----- instances hosting app #n
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.