Skalowanie aplikacji w chmurze — dlaczego jest ważne?

Mariola
Mariola
Content Writer
Rafał
Rafał
DevOps Engineer

Aplikacje internetowe,  często narażone są na spore wahania ruchu. W okresie przedświątecznym, w czasie promocji lub w trakcie prowadzenia intensywniejszych działań reklamowych można spodziewać się większej liczby klientów odwiedzających witryny e-commerce. Zjawisko to jednak jest też widoczne w aplikacjach z innych branż, takich jak edu-tech, czy fintech.

W takiej sytuacji ważne jest elastyczne skalowanie zasobów w chmurze. Spodziewając się większej ilości odwiedzin, możemy zwiększyć liczbę przydzielonych procesorów i ilość pamięci, a w okresach przestojów je zmniejszyć, by ograniczyć koszty. Równoważenie obciążenia to świetna funkcja, która zapewnia możliwość monitorowania aplikacji i automatycznego dostosowywania wydajności w celu utrzymania stałej, przewidywalnej wydajności przy możliwie najniższych kosztach. Dzięki temu możesz automatycznie skalować zasoby (serwery, bazę danych, pamięć masową itp.) w górę lub w dół na podstawie wstępnie zdefiniowanego progu dla metryk, takich jak użycie pamięci, sieci, czy wykorzystanie procesora.

W tym artykule skupimy się na rodzajach elastycznego skalowania aplikacji oraz głównych zaletach takich rozwiązań. Zacznijmy jednak od definicji, czym jest elastyczne równoważenie obciążenia AWS.

Czym jest elastyczne równoważenie obciążenia AWS?

W Amazon Web Services (AWS) Elastic Load Balancing działa jako usługa równoważenia obciążenia, skalując wydajność systemu w odpowiedzi na zmiany w ruchu przychodzącym.  Jest to ważne, ponieważ nowoczesne aplikacje muszą przetwarzać miliony użytkowników jednocześnie i wysłać każdemu użytkownikowi poprawny tekst, filmy, obrazy i inne dane w szybki i niezawodny sposób. Aby obsłużyć tak duże natężenie ruchu, większość aplikacji ma wiele  zasobów serwerów ze zduplikowanymi danymi między nimi. Przeciążony serwer może prowadzić do spowolnień, przekroczeń limitu czasu oraz niewłaściwie obsłużonych lub utraconych żądań, co negatywnie wpływa na wrażenia klientów.

System równoważenia obciążenia działa jako niewidzialny pośrednik, zapewniając równe wykorzystanie wszystkich zasobów serwerów. Automatycznie rozdziela ruch przychodzący na wiele celów, takich jak instancje EC2, kontenery i adresy IP, w jednej lub kilku strefach dostępności. Monitoruje kondycję swoich zarejestrowanych celów i kieruje ruch tylko do zdrowych celów. ELB pomaga zespołowi IT dostosować wydajność na podstawie aplikacji i skali ruchu sieciowego.

Jak działa system elastycznego równoważenia obciążenia?

Elastic Load Balancer (ELB) automatycznie skaluje systemy równoważenia obciążenia i aplikacje na podstawie ruchu w czasie rzeczywistym. Automatycznie kieruje przychodzący ruch aplikacji do instancji i działa jako punkt kontaktowy dla ruchu przychodzącego. Wykorzystuje też kontrole kondycji systemu do znajdowania serwerów aplikacji, prawidłowego kierowania ruchu do dostępnych serwerów, zarządzania przełączaniem awaryjnym dla celów o wysokiej dostępności lub zwiększania pojemności.

ELB może wykryć serwery w złej kondycji, zatrzymać wysyłanie do nich ruchu, a następnie rozłożyć obciążenie na pozostałe cele w dobrej kondycji. Zapewnia zintegrowane zarządzanie certyfikatami i deszyfrowanie SSL (Secure Sockets Layer), umożliwiając elastyczne centralne zarządzanie ustawieniami SSL i odciążenie aplikacji obciążającej procesor.

Który system ELB wybrać?

Elastic Load Balancing oferuje cztery typy systemów równoważenia obciążenia.

Wybór odpowiedniej opcji umożliwia użytkownikom rozłożenie różnych zadań na zasoby, co skutkuje optymalizacją procesu, zwiększając szybkość reakcji aplikacji, skalowalność i dostępność, jednocześnie zmniejszając ryzyko przeciążenia ruchu (tj. Zwiększoną tolerancję na awarie). 

Systemy równoważenia obciążenia działają według wstępnie ustawionego algorytmu o różnej złożoności, określając rozkład żądań między serwerami.

ALB (Application Load Balancer)  – Moduł równoważenia obciążenia

Warstwa 7 (ruch HTTP/HTTPS) – elastyczny.

ALB działa w warstwie aplikacji lub w siódmej warstwie modelu OSI (Open Systems Interconnections). Steruje ona komunikacją między wieloma systemami, identyfikuje ruch według kolejności priorytetów, kierując go do zarejestrowanych celów w dobrej kondycji. Na przykład adresy URL oznaczone rozszerzeniem /API mogą być kierowane do odpowiednich zasobów aplikacji, podczas gdy ruch związany z /MOBILE może być kierowany do zasobów zarządzających dostępem mobilnym.

Ten typ równoważenia obciążenia to nowa generacja równoważenia obciążenia od AWS, która zapewnia natywną obsługę protokołów HTTP/2 i WebSocket. Dzięki obsłudze wielu żądań w jednym połączeniu protokół HTTP/2 zmniejsza ruch sieciowy.

Użytkownicy AWS mogą zastosować ALB poprzez wewnętrzne równoważenie obciążenia przed instancjami AWS EC2, aplikacjami (poprzez Rest API) lub kontenerami. Można też łączyć ALB z różnymi innymi usługami AWS, aby zoptymalizować dostępność i skalowalność aplikacji. Usługi te mogą obejmować Menedżera certyfikatów AWS, Amazon EC2, Amazon Route 53, AWS WAF, czy  Amazon CloudWatch.

NLB (Net Load Balancer) – System równoważenia obciążenia sieciowego

Warstwa 4 (ruch TLS/TCP/UDP) – statyczne adresy IP.

NLB w AWS rozdziela ruch użytkowników końcowych na wiele zasobów chmury, aby zapewnić niskie opóźnienia i wysoką przepustowość dla aplikacji. Jego celem jest wyrównywanie obciążenia ruchem obsługa elastycznego lub dynamicznego adresu IP. Może obsługiwać miliony żądań użytkowników końcowych na sekundę i nieprzewidywalne skoki ruchu użytkowników końcowych

System NLB przeprowadza kontrole stanu tak zwanych „celów” — którymi może być m.in. instancja EC2, adres IP, lub kontener — aby upewnić się, że kieruje ruch do zasobów o wysokiej wydajności. Jeśli tak nie jest, a cel staje się niedostępny, moduł równoważenia obciążenia sieciowego kieruje ruch do innego celu.

GLB (Gateway Load Balancer) – System równoważenia obciążenia bramy

Warstwa 3 (ruch TCP/UDP) 

System GLB ułatwia instalowanie, administrację i monitoring urządzeń wirtualnych takich jak zapory ogniowe, systemy wykrywania włamań i zapobiegania im oraz systemy głębokiej inspekcji pakietów. Łączy bramę sieciową (tj. pojedynczy punkt wejścia i wyjścia dla całego ruchu) i rozdziela ruch. Korzystając z jednej bramy do dystrybucji ruchu na wiele celów, można skalować swoje urządzenia wirtualne w górę lub w dół zgodnie z określonymi wymaganiami. Dzięki mniejszej liczbie potencjalnych awarii wzrośnie niezawodność Twojej sieci. 

CLB(Classic Load Balancer ) – Klasyczny moduł równoważenia obciążenia

Warstwa 4/7 (ruch HTTP/TCP/SSL)

AWS CLB, czyli klasyczny Load Balancer to oparty na połączeniu system równoważenia, w którym żądania są przekazywane przez system równoważenia obciążenia bez ich wcześniejszego „analizowania”. Są po prostu przekazywane do sekcji zaplecza. CLB  jest  zalecany  tylko dla  instancji EC2. Jego główne funkcje to równoważenie obciążenia warstwy 4 lub warstwy 7 OSI, odciążanie SSL i obsługa IPv6. Nie obsługuje  routingu  opartego na  hoście i  ścieżce. Po skonfigurowaniu moduł równoważenia obciążenia rozdziela obciążenie między serwery niezależnie od tego, co znajduje się na serwerze, co w pewnych sytuacjach może obniżyć wydajność.

Korzyści automatycznego skalowania w chmurze dzięki ELB

ELB równoważy obciążenia, kierując i kontrolując ruch internetowy między serwerami aplikacji a ich gośćmi lub klientami. Rozdziela również obciążenia między wiele zasobów obliczeniowych, takich jak serwery wirtualne. Sprawdza ich stan i wysyła ruch do tych jednostek, które na tyle mogą obsłużyć żądania, aby zapewnić  skalowalność i dostępność usług. Korzystanie z modułu automatycznego skalowania  w chmurze ELB zwiększa dostępność i odporność aplikacji na awarie.

Poniżej analizujemy cztery  główne korzyści tej funkcji

1. Maksymalna skalowalność

ELB jest w stanie obsłużyć ogromne skoki ruchu i tysiące żądań jednocześnie, umożliwiając obsługę dużej przepustowości. Umożliwia zarządzanie ruchem przychodzącym w jednej lub wielu strefach dostępności bez zakłócania jego przepływu. Można też używać systemy ELB, aby inteligentnie kierować ruchem sieciowym między wieloma serwerami. Polega to na przewidywaniu ruchu aplikacji, aby w razie potrzeby można było dodawać lub usuwać różne serwery. Równoważenie obciążenia zapobiega również „wąskim gardłom ruchu” na dowolnym serwerze i ułatwia skalowanie.

2. Całkowita zdolność adaptacji

Modułu równoważenia obciążenia chroni aplikację internetową przed przerwami w świadczeniu usług, zwiększa odporność systemów na awarie, automatycznie wykrywając problemy z serwerem i przekierowując ruch klientów na dostępne zasoby. Dzięki funkcji konfigurowania kontroli kondycji w celu monitorowania stanu zasobów moduł równoważenia obciążenia wie, która ścieżka jest w dobrej kondycji, a która nie. 

3. Bezpieczeństwo i monitoring

ELB zapewnia dostęp do monitorowania, analiz i śledzenia żądań AWS CloudWatch, umożliwiając ocenę wydajności aplikacji w czasie rzeczywistym. Zwiększa to możliwość zobaczenia, jak zachowują się aplikacje, ujawniając problemy z wydajnością i problemy ze stosem aplikacji na specjalne żądanie. Przede wszystkim pozwala zwiększyć ochronę danych i zapobiec ich utracie. Jest to ważne zwłaszcza wtedy, gdy przepływ zawiera dane poufne. 

Moduły równoważenia obciążenia mają wbudowane funkcje bezpieczeństwa, które dodają kolejne warstwy zabezpieczeń do aplikacji internetowych, zapewniając dostęp do monitorowania, analiz i śledzenia żądań. Np. AWS CloudWatch zwiększa możliwość sprawdzenia, jak zachowują się aplikacje, ujawniając problemy z wydajnością czy problemy ze stosem aplikacji. . Przede wszystkim pozwala zwiększyć ochronę danych i zapobiec ich utracie. Jest to ważne zwłaszcza wtedy, gdy przepływ zawiera dane poufne. 

Systemy równoważenia obciążenia mogą również wykonywać następujące czynności:

  • Monitoring ruchu i blokowanie złośliwych treści
  • Automatyczne przekierowanie ruchu związany z atakami do wielu serwerów zaplecza
  • Kierowanie ruchu przez grupę zapór sieciowych 
  • Analiza wydajności fizycznych i wirtualnych zasobów obliczeniowych

4. Wydajność

Moduły równoważenia obciążenia poprawiają wydajność aplikacji, wydłużając czas odpowiedzi i zmniejszając opóźnienia w sieci. Wykonują kilka krytycznych zadań, takich jak:

  • Równomierne rozłożenie obciążenia między serwerami
  • Przekierowanie żądań klientów do serwera znajdującego się bliżej geograficznie, aby zmniejszyć opóźnienia
  • Zapewnienie niezawodności działań

Jak Studio Software może pomóc w monitorowaniu i zarządzaniu elastycznymi modułami równoważenia obciążenia AWS?

W tym artykule poznałeś podstawowe informacje o load balancerach używanych w AWS. Który z nich użyjesz w swojej aplikacji — dotyczący na przykład kompleksowego szyfrowania SSL/TLS, routingu opartego na ścieżce, czy na hoście — określą typ systemu równoważenia obciążenia, który jest dla Ciebie najlepszy.

Równoważenie obciążenia ma kluczowe znaczenie w skalowaniu, zapewnieniu bezpieczeństwa i przeprowadzania kontroli stanu serwerów, co sprawia, że ​​jest to idealny wybór dla przedsiębiorstw.

Jeśli chcesz dowiedzieć się więcej o tym, jak zacząć korzystać z rozwiązania do równoważenia obciążenia aplikacji, które przyniesie korzyści Twojej firmie, skontaktuj się z naszym zespołem specjalistów.