Cześć wszystkim! Kurs zaczyna się dzisiaj
- zrozumieć, czym jest równoważenie obciążenia AWS;
- znać rodzaje Elastic Load Balancer i jego komponenty;
- wykorzystaj AWS ELB w swojej praktyce.
Po co w ogóle musisz to wiedzieć?
- przydatne, jeśli planujesz przystąpić do egzaminów certyfikacyjnych AWS;
- jest to prosty sposób na rozłożenie obciążenia pomiędzy serwerami;
- Jest to prosty sposób na dodanie Lambdy do Twojej usługi (ALB).
Przeprowadził lekcję otwartą
Wprowadzenie
Czym jest Elastic Load Balancer można zobaczyć na poniższym schemacie, który pokazuje prosty przykład:
Load Balancer akceptuje żądania i dystrybuuje je między instancjami. Mamy jedną oddzielną instancję, są funkcje Lambda i istnieje grupa AutoScaling (grupa serwerów).
Typy ELB AWS
1. Spójrzmy na główne typy:
Klasyczny moduł równoważenia obciążenia. Pierwszy moduł równoważenia obciążenia firmy AWS działa zarówno na warstwie 4, jak i warstwie 7 OSI, obsługując protokoły HTTP, HTTPS, TCP i SSL. Zapewnia podstawowe równoważenie obciążenia w wielu instancjach Amazon EC2 i działa zarówno na poziomie żądania, jak i połączenia. Otwórzmy to (zaznaczone na szaro):
Ta wyważarka jest uważana za przestarzałą, dlatego zaleca się ją stosować tylko w niektórych przypadkach. Na przykład w przypadku aplikacji zbudowanych w sieci EC2-Classic. W zasadzie nikt nam nie zabrania go tworzyć:
2. Równoważenie obciążenia sieciowego. Nadaje się do dużych obciążeń, działa w warstwie 4 OSI (może być używany w EKS i ECS), obsługiwane są protokoły TCP, UDP i TLS.
Network Load Balancer kieruje ruch do celów w Amazon VPC i jest w stanie przetwarzać miliony żądań na sekundę z bardzo niskimi opóźnieniami. Dodatkowo jest zoptymalizowany do obsługi wzorców ruchu przy nagłych i zmiennych obciążeniach.
3. Moduł równoważenia obciążenia aplikacji. Działa w warstwie 7, obsługuje Lambda, obsługuje reguły na poziomie nagłówka i ścieżki, obsługuje HTTP i HTTPS.
Zapewnia zaawansowane routing żądań skoncentrowany na dostarczaniu aplikacji zbudowanych na nowoczesnych architekturach, w tym mikrousługach i kontenerach. Kieruje ruch do celów w Amazon VPC na podstawie treści żądania.
Dla wielu użytkowników moduł równoważenia obciążenia aplikacji był pierwszym wyborem, który zastąpił klasyczny moduł równoważenia obciążenia, ponieważ protokół TCP nie jest tak powszechny jak protokół HTTP.
Stwórzmy go też, w efekcie czego będziemy już mieli dwa moduły równoważenia obciążenia:
Komponenty równoważenia obciążenia
Wspólne komponenty równoważenia obciążenia (wspólne dla wszystkich balanserów):
- Dostęp do zasad rejestrowania
— Twoje logi dostępu ELB. Aby dokonać ustawień, możesz przejść do opcji Opis i wybrać przycisk „Edytuj atrybuty”:
Następnie określamy S3Bucket - magazyn obiektów Amazon:
- Schemat
— balanser wewnętrzny lub zewnętrzny. Chodzi o to, czy Twój LoadBalancer musi otrzymać adresy zewnętrzne, aby był dostępny z zewnątrz, czy też może to być Twój wewnętrzny moduł równoważenia obciążenia;
- Grupy bezpieczeństwa
— kontrola dostępu do wyważarki. Zasadniczo jest to zapora sieciowa wysokiego poziomu.
- Podsieci
— podsieci wewnątrz Twojej VPC (i odpowiednio strefy dostępności). Podsieci są określane podczas tworzenia. Jeśli VPC są ograniczone regionalnie, podsieci są ograniczone strefami dostępności. Tworząc Load Balancer lepiej jest utworzyć go w co najmniej dwóch podsieciach (pomaga w przypadku problemów z jedną Strefą Dostępności);
- Słuchacze
— protokoły Twojego balansera. Jak wspomniano wcześniej, w przypadku Classic Load Balancer może to być HTTP, HTTPS, TCP i SSL, w przypadku Network Load Balancer - TCP, UDP i TLS, w przypadku Application Load Balancer - HTTP i HTTPS.
Przykład dla klasycznego modułu równoważenia obciążenia:
Ale w Application Load Balancer widzimy nieco inny interfejs i ogólnie inną logikę:
Komponenty Load Balancer v2 (ALB i NLB)
Przyjrzyjmy się teraz bliżej modułom równoważącym w wersji 2: Application Load Balancer i Network Load Balancer. Te wyważarki mają swoje własne cechy składowe. Pojawiło się na przykład takie pojęcie jak Grupy docelowe – instancje (i funkcje). Dzięki temu komponentowi mamy możliwość określenia, do której z Grup Docelowych chcemy kierować ruch.
Mówiąc najprościej, w Grupach docelowych określamy przypadki, w których będzie pochodził ruch. Jeżeli w tym samym Classic Load Balancerze po prostu od razu podłączysz intensywność do balansera, to w Aplikacji Load Balancer najpierw:
- utwórz moduł równoważenia obciążenia;
- utwórz grupę docelową;
- kierować poprzez wymagane porty lub reguły Load Balancera do wymaganych Grup Docelowych;
- w Grupach docelowych przypisujesz instancje.
Ta logika działania może wydawać się bardziej skomplikowana, ale w rzeczywistości jest wygodniejsza.
Kolejnym elementem jest Zasady słuchania (zasady routingu). Dotyczy to tylko modułu równoważenia obciążenia aplikacji. Jeśli w Network Load Balancer po prostu utworzysz Listener, a on wyśle ruch do konkretnej grupy docelowej, to w Application Load Balancer wszystko
A teraz powiedzmy kilka słów o kolejnym elemencie – Elastyczny adres IP (adresy statyczne dla NLB). Jeśli reguły routingu reguł odbiornika wpływają tylko na moduł równoważenia obciążenia aplikacji, wówczas elastyczny adres IP ma wpływ tylko na moduł równoważenia obciążenia sieciowego.
Stwórzmy moduł równoważenia obciążenia sieciowego:
I właśnie podczas procesu tworzenia zobaczymy, że mamy możliwość wyboru Elastic IP:
Elastic IP zapewnia pojedynczy adres IP, który z biegiem czasu może być powiązany z różnymi instancjami EC2. Jeśli instancja EC2 ma elastyczny adres IP i instancja ta zostanie zakończona lub zatrzymana, możesz natychmiast powiązać nową instancję EC2 z elastycznym adresem IP. Jednak Twoja bieżąca aplikacja nie przestanie działać, ponieważ aplikacje nadal widzą ten sam adres IP, nawet jeśli zmienił się prawdziwy EC2.
tutaj jest
Amazon zmienia je z biegiem czasu, może co 60 sekund (ale w praktyce oczywiście rzadziej). Oznacza to, że adresy IP mogą się zmieniać. A w przypadku Network Load Balancer możesz po prostu powiązać adres IP i wskazać go w swoich regułach, politykach itp.
Wyciągnij wnioski
ELB zapewnia automatyczną dystrybucję ruchu przychodzącego do wielu celów (kontenery, instancje Amazon EC2, adresy IP i funkcje Lambda). ELB jest w stanie dystrybuować ruch o zmiennym obciążeniu zarówno w obrębie jednej Strefy Dostępności, jak i pomiędzy wieloma Strefami Dostępności. Użytkownik może wybierać spośród trzech typów balanserów, które zapewniają wysoką dostępność, autoskalowanie i dobrą ochronę. Wszystko to jest ważne, aby zapewnić odporność aplikacji na awarie.
Główne zalety:
- duża dostępność. Umowa serwisowa zakłada dostępność modułu równoważenia obciążenia na poziomie 99,99%. Na przykład wiele stref dostępności zapewnia, że ruch jest przetwarzany tylko przez obiekty w dobrej kondycji. W rzeczywistości możesz zrównoważyć obciążenie w całym regionie, przekierowując ruch do zdrowych celów w różnych strefach dostępności;
- bezpieczeństwo. ELB współpracuje z Amazon VPC, zapewniając różne możliwości bezpieczeństwa - zintegrowane zarządzanie certyfikatami, uwierzytelnianie użytkowników i deszyfrowanie SSL/TLS. Wszystko razem zapewnia scentralizowane i elastyczne zarządzanie ustawieniami TLS;
- elastyczność. ELB radzi sobie z nagłymi zmianami w ruchu sieciowym. Głęboka integracja z funkcją automatycznego skalowania zapewnia aplikacji wystarczające zasoby w przypadku zmiany obciążenia, bez konieczności ręcznej interwencji;
- elastyczność. Adresów IP można używać do kierowania żądań do obiektów docelowych aplikacji. Zapewnia to elastyczność podczas wirtualizacji aplikacji docelowych, dając w ten sposób możliwość hostowania wielu aplikacji w jednej instancji. Ponieważ aplikacje mogą korzystać z jednego portu sieciowego i mieć oddzielne grupy zabezpieczeń, komunikacja między aplikacjami jest uproszczona, gdy mamy, powiedzmy, architekturę opartą na mikrousługach;
- monitorowanie i audyt. Możesz monitorować aplikacje w czasie rzeczywistym, korzystając z funkcji Amazon CloudWatch. Mówimy o metrykach, logach, śledzeniu żądań. Krótko mówiąc, będziesz w stanie dość dokładnie zidentyfikować problemy i wskazać wąskie gardła wydajności;
- hybrydowe równoważenie obciążenia. Możliwość równoważenia obciążenia pomiędzy zasobami lokalnymi i AWS przy użyciu tego samego modułu równoważenia obciążenia ułatwia migrację lub rozszerzanie aplikacji lokalnych do chmury. Dzięki chmurze uproszczona jest także obsługa awarii.
Jeśli interesują Cię szczegóły, oto kilka przydatnych linków z oficjalnej strony Amazon:
Źródło: www.habr.com