Mam N
aplikacje internetowe. Każda aplikacja jest obsługiwana przez inną nazwę hosta w mojej domenie i wdrażana w 2 instancjach działających w AWS. Innymi słowy, mam 2N
instancje podzielone na pary, które działają w N
różnych aplikacjach internetowych.
Chciałbym skonfigurować pojedynczy moduł równoważenia obciążenia AWS, który będzie proxy żądania do jednego z dwóch wystąpień, które obsługują go na podstawie Host
nagłówka. Czy jest to możliwe przy użyciu jednego ELB, czy będę musiał wdrożyć N
ELB, po jednym dla każdej pary instancji?
amazon-web-services
amazon-elb
thesamet
źródło
źródło
Odpowiedzi:
Pojedynczy ELB kieruje ruch do dokładnie jednego zestawu instancji i dystrybuuje ruch przychodzący do wszystkich instancji „za nim”. Nie kieruje selektywnie ruchu na podstawie analizy ruchu w warstwie 7, takiej jak
Host:
nagłówek.Potrzebujesz jednego ELB dla każdego zestawu instancji. Jak to opisujesz, jest to jeden ELB dla każdej aplikacji internetowej.
Jeśli Twoim głównym celem uruchamiania ELB jest odciążanie SSL przy użyciu certyfikatu wieloznacznego (mam jeden system zaprojektowany w ten sposób, z dziesiątkami aplikacji żyjących na wielu-domen-domen.my-wildcard-cert-domain.com), to instancje „za” ELB może uruchamiać zwrotny serwer proxy, taki jak HAProxy (lub kilka innych alternatyw, takich jak Varnish), który może podejmować decyzje dotyczące routingu w warstwie 7, a następnie przekazywać ruch do odpowiedniego podzbioru maszyn za nimi, co pozwala również na bardziej wyrafinowane równoważenie obciążenia i ma tę zaletę, że zapewnia statystyki i liczniki ruchu, agreguje i rozdziela.
Pośrednie instancje ^^^^ mogą oceniać
Host:
nagłówki (między innymi), a nawet przechwytywać wartość pliku cookie sesji w swoich dziennikach do analizy.Ta konfiguracja pozwala mi również uruchamiać wiele aplikacji na nakładających się podzbiorach instancji, tam gdzie jest to właściwe, i wykonywać wiele innych rzeczy, których ELB nie obsługuje bezpośrednio. Zwraca również niestandardową stronę „503” w przypadku, gdy aplikacja zostanie przeciążona lub w inny sposób stanie się niedostępna, czego ELB nie robi samodzielnie. Zilustrowałem tutaj 2 serwery proxy, bez konkretnego powodu oprócz Twojej wzmianki o numerze 2 w pytaniu. Moja konfiguracja ma 3, po jednej dla każdej strefy dostępności w regionie, w którym jest wdrożona.
źródło
Host:
nagłówka. Ta odpowiedź była poprawna, kiedy napisałem ją w 2014 roku, ale wygląda na to, że nadszedł czas na aktualizację. Dziękuję za zwrócenie mojej uwagi.Od sierpnia 2016 r. Amazon ELB oferuje dwa typy równoważenia obciążenia:
W twoim przypadku zastosowanie Application Load Balancer wydaje się idealne. Jest jednak ograniczony do 10 zasad, więc będzie działał łatwo tylko, jeśli Twój
N
nie jest większy niż 10.źródło
Na twojej liście instancji ec2 widzisz dwie instancje, prawda? Ale w każdym przypadku masz wiele aplikacji internetowych? Używasz wirtualnego hosta do wdrożenia każdego z nich?
Potrzebujesz tylko jednego ELB, aby podzielić opłatę na swoich hostach. Przykład:
Myślę, że to lepiej, daj mi więcej swojego scenariusza i może mogę ci pomóc.
Pozdrowienia.
AKTUALIZACJA
Jeśli masz różne aplikacje internetowe w instancjach EC2, musisz mieć dwa moduły równoważenia obciążenia elastycznego (ELB). Każdy dla pary instancji. Całkowicie cztery przypadki
źródło
2N
aplikacje. Istnieje N aplikacji internetowych, po dwa wystąpienia dla każdego. Przeredaguję pytanie, aby to wyjaśnić.