Odkryj, w jaki sposób możesz wykorzystać system równoważenia obciążenia Cloudflare (LB), by rozdzielać ruch internetowy pomiędzy platformy AWS (Amazon Web Services) i GCP (Google Cloud Platform).
Większość aplikacji działających w sieci wymaga mechanizmu równoważenia obciążenia, który rozdziela zadania pomiędzy serwerami lub usługami w obrębie tego samego centrum danych.
Jednakże, w przypadku aplikacji o kluczowym znaczeniu, które wymagają nieprzerwanej dostępności na skalę globalną, konieczne staje się zastosowanie systemu równoważenia obciążenia operującego w chmurze.
Konieczność ta wynika nie tylko z wymogu zapewnienia ciągłej dostępności, ale i wielu innych czynników.
Przykładowo:
- Wymóg działania w trybie aktywny-pasywny lub aktywny-aktywny dla centrów danych
- Potrzeba posiadania planu awaryjnego
- Wykorzystanie wielu centrów danych w celu obsługi żądań z najbliższej lokalizacji
- Wymogi zgodności
Cloudflare oferuje rozwiązania do równoważenia obciążenia zarówno w skali lokalnej, jak i globalnej, umożliwiając efektywne kierowanie ruchu do wielu centrów danych.
Do kluczowych cech systemu Cloudflare LB należą:
- Wbudowane mechanizmy kontroli stanu, umożliwiające szybkie wyłączenie serwerów z problemami.
- Możliwość automatycznego przełączania awaryjnego w przypadku wykrycia awarii.
- Redukcja opóźnień poprzez kierowanie ruchu do najbliższego serwera.
- Obsługa protokołów DNS, HTTP(S), TCP i UDP.
- Mechanizm trwałości sesji, zapewniający, że żądania użytkownika trafiają do tego samego serwera.
Konfigurację wszystkich tych aspektów można przeprowadzić za pomocą intuicyjnego panelu Cloudflare lub poprzez interfejs API.
Z punktu widzenia technicznego, opisane tu instrukcje dotyczą równoważenia obciążenia na dowolnej platformie chmurowej, takiej jak Azure, Digital Ocean, czy Alibaba. Jednak w tym przykładzie skupimy się na platformach GCP i AWS.
Szczegóły Konfiguracji AWS i GCP
Na potrzeby demonstracji, przygotowałem po jednym serwerze na platformach GCP i AWS, z następującymi elementami:
- Zainstalowany serwer Nginx.
- Dodany plik index.html zawierający niestandardowy tekst, pozwalający na identyfikację serwera obsługującego żądanie.
- Uruchomiony Nginx, dzięki czemu strona jest dostępna z obu serwerów.
Przejdźmy teraz do Cloudflare, aby skonfigurować równoważenie obciążenia.
Aktywacja systemu równoważenia obciążenia Cloudflare
W ramach tego testu wykorzystam domenę (bloggerflare.com).
Ważna uwaga: System równoważenia obciążenia Cloudflare nie jest darmowy. Ceny zaczynają się od 5 USD miesięcznie.
Zakładam, że posiadasz już konto w Cloudflare. Jeśli tak nie jest, możesz je utworzyć i dodać swoją domenę, zgodnie z instrukcjami z poprzednich publikacji.
- Zaloguj się do Cloudflare i wybierz domenę, dla której chcesz aktywować równoważenie obciążenia.
- Przejdź do zakładki ruchu i włącz opcję równoważenia obciążenia.
- Skonfiguruj opcje zgodnie z potrzebami. Ja w tym przykładzie pozostanę przy minimalnej konfiguracji.
Jeśli chcesz, aby żądania były kierowane do najbliższej lokalizacji, włącz opcję Geo Routing.
- Potwierdź subskrypcję i aktywuj usługę.
Jak widzisz, możesz zacząć od 5 USD miesięcznie, korzystając z dwóch serwerów źródłowych i jednominutowego interwału kontroli stanu.
Obecnie infrastruktura jest niesamowicie przystępna cenowo. Jeszcze 5 lat temu, trudno było sobie wyobrazić system równoważenia obciążenia w chmurze za 5 USD!
Oznacza to, że Cloudflare LB został aktywowany i jest gotowy do konfiguracji.
Tworzenie Cloudflare LB
Po potwierdzeniu subskrypcji i powrocie do strony „Ruch”, zajmie to tylko kilka sekund.
- Kliknij „Utwórz system równoważenia obciążenia”.
- Wprowadź domenę, dla której chcesz skonfigurować równoważenie obciążenia.
- Rozwiń opcję „Powinowactwo sesji” i wybierz „Według Cloudflare Cookie”, aby włączyć lepkość sesji.
- Podaj nazwę puli oraz adres źródła (serwera, na który ma być przekierowywany ruch).
- Następnie skonfiguruj kontrolę stanu.
Kontrola stanu jest kluczowa. Cloudflare przestanie kierować ruch do uszkodzonego źródła, gdy kontrola stanu wykaże błąd.
- Jeśli twoje źródło nasłuchuje na porcie 80, możesz wybrać HTTP lub HTTPS dla portu 443.
Cloudflare umożliwia również konfigurację zaawansowanych ustawień kontroli stanu, takich jak:
- Metoda GET lub HEAD
- Oczekiwany kod statusu HTTP
- Walidacja treści w odpowiedzi
- Liczba prób zanim serwer zostanie uznany za zdrowy lub niezdrowy
- Walidacja nagłówka
Na koniec, zapisz konfigurację i wdróż.
- LB przeprowadzi kontrolę kondycji i w ciągu kilku sekund zobaczysz, że stan jest „zdrowy”.
Doskonale! Oznacza to, że system równoważenia obciążenia Cloudflare jest gotowy do przyjmowania ruchu i przekierowywania go na skonfigurowane serwery.
Testowanie systemu równoważenia obciążenia
Przeprowadźmy teraz podstawowy test, aby zweryfikować poprawność działania.
- Najpierw spróbujmy uzyskać dostęp do domeny.
Wspaniale!
LB przekierował żądanie do maszyny wirtualnej Google Cloud i otrzymał odpowiedź. Widzę zapytanie w logach Nginx.
162.158.167.174 - - [19/Dec/2017:10:25:41 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
- Wyłączmy teraz Nginx na GCP i ponownie spróbujmy uzyskać dostęp do strony.
- I proszę bardzo! Żądana strona jest serwowana z AWS.
Widzę, że LB usunął serwer GCP z puli.
Domyślnie w dziennikach dostępu Nginx widoczny będzie adres IP Cloudflare. Aby przywrócić adres IP klienta, możesz skorzystać z tego przewodnika.
Podsumowanie
Wdrożenie systemu równoważenia obciążenia Cloudflare jest proste i zajmuje mniej niż 15 minut. Jeśli szukasz rozwiązania zapewniającego wysoką dostępność między wieloma centrami danych lub serwerami źródłowymi, wypróbuj to rozwiązanie i sprawdź, jak to działa.
Czy ten artykuł był dla Ciebie przydatny? Zachęcam do podzielenia się nim!
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.