Jak załadować witrynę równoważenia obciążenia między GCP a AWS za pomocą Cloudflare?

Photo of author

By maciekx

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