Jak načíst balanční web mezi GCP a AWS pomocí Cloudflare?

Prozkoumejte, jak efektivně rozdělit provoz mezi servery AWS (Amazon Web Services) a GCP (Google Cloud Platform) s využitím Cloudflare load balancer (LB).

Většina webových aplikací vyžaduje vyvažování zátěže mezi servery či službami v rámci jednoho datového centra.

Nicméně, pro kritické aplikace, které vyžadují neustálou dostupnost po celém světě, je nezbytné využít nástroje pro cloudové vyvažování zátěže.

Kromě samotné doby provozuschopnosti může hrát roli celá řada dalších faktorů.

Například:

  • Potřeba aktivně-pasivního nebo aktivně-aktivního nastavení datových center
  • Plán pro obnovu po havárii
  • Využití více datových center pro obsluhu požadavků z geograficky nejbližšího bodu
  • Dodržování specifických regulací

Cloudflare nabízí jak lokální, tak globální možnosti vyvažování zátěže, které usnadňují směrování provozu mezi různými datovými centry.

Mezi klíčové funkce Cloudflare LB patří:

  • Integrované kontroly stavu, umožňující rychlé vyřazení nefunkčních serverů
  • Automatické přepnutí na záložní server v případě selhání kontrol stavu
  • Snížení latence směrováním provozu na nejbližší server
  • Podpora DNS vrstvy a protokolů HTTP(S), TCP a UDP
  • Lepicí relace, zajišťující, že požadavky jsou směrovány na stejný server

Celé nastavení můžete provést buď prostřednictvím webového rozhraní Cloudflare nebo pomocí API.

Technicky lze následující postup aplikovat na vyvažování zátěže na jakékoli cloudové platformě, například Azure, DigitalOcean, Alibaba a další. Pro účely této demonstrace jsem vybral GCP a AWS.

Podrobnosti o nastavení AWS a GCP

Pro tento účel jsem zřídil jeden server jak v GCP, tak v AWS, a to následovně:

  • Nainstaloval Nginx
  • Vytvořil index.html s personalizovaným textem, který identifikuje server, ze kterého je stránka obsluhována
  • Spustil Nginx a ověřil, že stránka je dostupná z obou serverů

Nyní přejdeme do Cloudflare, kde implementujeme LB.

Aktivace Cloudflare Load Balancer

Použiji svou stávající doménu (bloggerflare.com) pro tento test.

Upozornění: Služba Load Balancer od Cloudflare není ZDARMA a ceny začínají na 5 dolarech měsíčně.

Předpokládám, že již máte účet u Cloudflare. Pokud ne, můžete si ho založit a přidat svou doménu, jak jsem popsal v dřívějším článku.

  • Přihlaste se do svého účtu Cloudflare a vyberte doménu, pro kterou chcete zapnout vyvažování zátěže.
  • Přejděte do sekce „Traffic“ a aktivujte vyvažování zátěže.

  • Nastavte parametry podle vašich potřeb. Pro tuto demonstraci použiji minimální konfiguraci.

Chcete-li, aby požadavky byly směrovány na nejbližší server, aktivujte Geo Routing.

  • Potvrďte předplatné a aktivujte službu.

Jak je vidět, můžete začít s cenou od 5 dolarů měsíčně, se dvěma serverovými zdroji a intervalem kontrol stavu 1 minuta.

Dostupnost infrastruktury je dnes na jiné úrovni. Před 5 lety by byl cloudový load balancer za 5 dolarů nepředstavitelný.

Tímto je Cloudflare LB aktivován a připraven k nastavení.

Vytvoření Cloudflare LB

Potvrzení předplatného a návrat do sekce „Traffic“ může trvat několik sekund.

  • Klikněte na tlačítko „Create Load Balancer“ (Vytvořit Load Balancer).

  • Zadejte doménu, pro kterou chcete nastavit vyvažování.
  • Rozbalte sekci „Session Affinity“ (Afinita relací) a vyberte „By Cloudflare Cookie“, pokud potřebujete zapnout lepicí relace.

  • Zadejte název poolu (skupiny serverů) a označte jej jako původ (server, kam má být provoz směřován).

  • Dále můžete nakonfigurovat kontrolu stavu.

Kontrola stavu je zásadní. Cloudflare přestane směřovat provoz na nefunkční serverový zdroj, pokud selže kontrola stavu.

  • Pokud váš server naslouchá na portu 80, můžete pro port 443 vybrat HTTP nebo HTTPS.

Cloudflare rovněž umožňuje nastavit pokročilé možnosti kontroly stavu, jako například:

  • Metoda GET nebo HEAD
  • Očekávaný stavový kód HTTP
  • Verifikace obsahu v těle odpovědi
  • Počet pokusů, než se server považuje za zdravý nebo nefunkční
  • Verifikace hlaviček odpovědí

Nakonec uložte a aplikujte konfiguraci.

  • LB vykoná kontrolu stavu a během několika sekund uvidíte, že stav serverů je označen jako zdravý.

Výborně, zdá se, že nástroj pro vyvažování zátěže Cloudflare je připraven přijímat provoz z internetu a směrovat jej na nakonfigurované servery.

Testování Load Balanceru

Provedeme rychlý test, abychom ověřili funkčnost.

  • Nejdříve se pokuste navštívit doménu.

Skvělé!

LB předala požadavek na Google Cloud VM a obdržela odpověď. Požadavek je zaznamenán v logu 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"
  • Vypněme Nginx v GCP a znovu otevřeme stránku.

  • A je to tady. Požadovaná stránka je nyní obsluhována z AWS.

Vidím, že LB vyřadil server GCP z aktivního poolu.

Ve výchozím nastavení se v protokolech Nginx zobrazuje IP adresa Cloudflare. Pokud potřebujete získat skutečnou IP adresu klienta, podívejte se na tento návod.

Závěr

Implementace nástroje pro vyvažování zátěže Cloudflare je snadná a může být provedena během 15 minut. Pokud hledáte vysokou dostupnost mezi více datovými centry či servery, stojí za to to vyzkoušet.

Líbil se vám tento článek? Podělte se o něj s ostatními!