Load balancer

Usługa load balancingu pozwala równomiernie rozłożyć obciążenie całej grupy instancji.

Load balancer

Dzięki usłudze Load balancera, możliwy jest monitoring (healthcheck - sprawdzanie stanu aplikacji uruchomionej na instancji) oraz równomiernie rozdzielenie obciążenia pomiędzy instancjami. W ten sposób możemy zapewnić maksymalnie wydajne funkcjonowanie usług i aplikacji. Aby Load Balancer uruchomić, wybierz kolejno OCI >> Sieci >> Load balancer. Wyświetlą się dodatkowe pola ze szczegółowymi ustawieniami. W pierwszej kolejności dodaj wcześniej stworzoną grupę instancji. Następnie należy określić, jaka usługa ma być objęta Load balancerem (do wyboru min. HTTP, HTTPS, SMTP, Port) oraz zdecydować czy włączyć protokół SSL, jak też możliwą, wspólną persystencję HTTP i HTTPS.

Następnie wybierz jeden z czterech algorytmów pracy:

  • Least connection – kieruje ruch do instancji z najmniejszą liczbą połączeń,

  • Least response time – kieruje ruch do instancji o najkrótszym czasie odpowiedzi,

  • Source IP Hash – kieruje ruch z danego adresu IP stale do tej samej instancji,

  • Round Robin - kieruje ruch do każdej maszyny po kolei, bez względu na obciążenie.

Least response time łączy metodę Least connection (kierowanie ruchu do serwera z najmniejszą liczbą aktywnych połączeń) z czasem średniej odpowiedzi od serwerów. Ilość aktywnych połączeń jest mnożona przez średni czas odpowiedzi od serwera i tak otrzymany wynik porównywany jest z wynikami inny serwerów, ten z najmniejszym wynikiem staje się celem zapytania. Czas odpowiedzi mierzony jest w zależności od wybranej usługi, w przypadku usług http/https to czas między wysłaniem zapytania a pierwszym bajtem odpowiedzi (kodem 200 OK) zwracanym przez serwer. Więcej informacji tutaj: https://www.citrix.com/blogs/2010/09/03/load-balancing-least-response-time/

W przypadku włączonego monitoringu usług http/https, jeżeli serwer www nie odpowie w zdefiniowanym czasie jednym z kodów 200, 30* - zostanie oznaczony jako niedostępny i zapytania nie będą do niego trafiać mimo, że samo OCI może pozostawać uruchomione.

W kolejnym kroku zdefiniuj sposób obsługiwania sesji - persystencja po source IP, bądź jej brak.

Na końcu należy określić wersję protokołu – IPv4 lub IPv6 (bądź oba) i zdecydować, czy ma być przeprowadzane sprawdzenie dostępności usług. Aby Load balancer najpełniej spełniał swoje zadanie, sugerujemy włączenie tej opcji. W przypadku rozkładania ruchu HTTP, co 5 sekund wysyłane jest zapytanie HEAD do instancji umieszczonej w kontenerze. W przypadku braku odpowiedzi od serwera WWW, w ciągu 2 sekund jednym z kodów z zakresu 200, 301-303, 307, serwer taki oznaczany jest jako niedostępny i ruch przestaje być do niego kierowany. W przypadku włączonego monitoringu warto się upewnić, że opisane zapytanie zwróci kod odpowiedzi z podanego zakresu.

Po uruchomieniu, do usługi zostanie przypisany adres IP grupy (kontenera), do którego możesz podpiąć swoją domenę. W widoku wyświetlać się będzie również status usług (jeżeli zostało zaznaczone sprawdzanie dostępności) wraz z ilością żądań, odpowiedzi i połączeń, jak również ogólne informacje na temat danego Load balancera.

Obsługiwane protokoły

  • HTTP(80) - wyłącznie port 80,

  • HTTP(80) + Włącz SSL - porty 80 i 443,

  • HTTPS(443) - wyłącznie port 443,

  • SMTP(25) - wyłącznie port 25,

  • Port - dowolnie wybrany port.

Obsługa sesji

  • Persystencja po source IP - klient jest jest rozpoznawany po adresie IP i wszystkie sesje z tego IP trafiają zawsze do tej samej maszyny końcowej,

  • Persystencja po cookie - klient jest rozpoznawany po head zawartym w pliku cookie i wszystkie sesje o tym samym znaczniku są kierowane do jednej maszyny końcowej niezależnie od IP użytkownika,

  • Brak persystencji - przydzielanie maszyny końcowej do sesji odbywa się na zasadzie czystej losowości.

Sprawdzenie dostępności usług

W przypadku rozkładania ruchu http, stosowane jest zapytanie 'HEAD /' wykonywane co 5 sekund. W przypadku braku odpowiedzi od serwera www w ciągu 2 sekund jednym z kodów z zakresu 200, 301-303, 307, serwer taki oznaczany jest jako niedostępny i ruch przestaje być do niego kierowany. W przypadku włączonego monitoringu musisz się upewnić, że opisane zapytanie zwróci kod odpowiedzi z podanego zakresu.

Przekazywanie IP użytkownika

Informacja o źródłowym IP połączenia (Src IP) przekazywana jest w nagłówku "X-Forwarded-For". Nie będzie działać dla żądań HTTPs bowiem są one szyfrowane - w logach instancji widoczny będzie IP LB.