Како учитати равнотежу сајта између ГЦП-а и АВС-а користећи Цлоудфларе?

Otkrijte kako možete iskoristiti Cloudflare balansiranje opterećenja (LB) radi raspodele saobraćaja između AWS (Amazon Web Services) i GCP (Google Cloud Platform).

Većina veb aplikacija zahteva ili vrši balansiranje opterećenja unutar servera/usluga u istom data centru.

Međutim, ukoliko koristite ključne aplikacije koje zahtevaju konstantnu dostupnost širom sveta, potreban vam je cloud balancer opterećenja.

Nije samo neprekidni rad bitan, već postoji i niz drugih faktora koje treba uzeti u obzir.

Na primer:

  • Potrebe za aktivno-pasivnim ili aktivno-aktivnim data centrom
  • Plan za oporavak od katastrofe
  • Iskorišćavanje prednosti više data centara za obradu zahteva sa najbliže lokacije
  • Usaglašenost sa propisima

Cloudflare pruža lokalne i globalne opcije balansiranja opterećenja, koje pomažu u preusmeravanju saobraćaja kroz različite data centre.

Neke od funkcija Cloudflare LB-a uključuju:

  • Integrisane provere zdravlja, omogućavajući brzo uklanjanje neispravnih servera.
  • Aktiviranje failover-a u slučaju neuspešne provere zdravlja
  • Smanjenje latencije usmeravanjem saobraćaja na najbliži server
  • Podrška za DNS nivo, kao i HTTP(S), TCP i UDP protokole
  • Lepljivost sesija, koja osigurava da zahtevi idu ka istom serveru

Sve se ovo može konfigurirati putem Cloudflare kontrolne table ili API-ja.

Tehnički gledano, sledeća uputstva su primenjiva na balansiranje opterećenja na bilo kojoj cloud platformi, kao što su Azure, DigitalOcean, Alibaba, itd. Međutim, za ovu demonstraciju sam odabrao GCP i AWS.

Detalji podešavanja AWS & GCP

Konfigurisao sam po jedan server na GCP i AWS platformama sa sledećim specifikacijama:

  • Instaliran Nginx
  • Dodat index.html fajl sa prilagođenim tekstom, koji pokazuje da se stranica učitava sa odgovarajućeg servera
  • Pokrenut Nginx i stranica je dostupna na oba servera

Pređimo na Cloudflare da implementiramo LB.

Aktiviranje Cloudflare Load Balancer-a

Imam jedan dostupan domen (bloggerflare.com), koji ću koristiti u ovoj demonstraciji.

Napomena: Cloudflare balancer opterećenja nije BESPLATAN, a cene kreću od 5 dolara mesečno.

Pretpostavljam da već imate nalog na Cloudflare-u; ako nemate, možete kreirati nalog i dodati domen, kao što sam objasnio u svom prethodnom članku.

  • Prijavite se na Cloudflare i izaberite domen na kojem želite da omogućite balansiranje
  • Idite na karticu Saobraćaj i omogućite balansiranje opterećenja.

  • Konfigurišite postavke prema svojim potrebama. Ja ću nastaviti sa minimalnom konfiguracijom.

Ako želite da se zahtevi usmeravaju na najbližu lokaciju, morate omogućiti Geo Routing.

  • Potvrdite pretplatu i omogućite ga.

Kao što vidite, možete početi sa 5 dolara mesečno sa dva izvorna servera i intervalom provere zdravlja od jednog minuta.

Infrastruktura je danas toliko pristupačna. Da li ste pre 5 godina mogli da zamislite cloud balancer opterećenja po ceni od 5 dolara?

Ovo ukazuje na to da je Cloudflare LB aktiviran i spreman za konfiguraciju.

Kreiranje Cloudflare LB-a

Biće potrebno nekoliko sekundi da se potvrdi pretplata i vrati na stranicu Saobraćaj.

  • Kliknite na Kreiraj balansera opterećenja

  • Unesite domen za koji želite da konfigurišete balansiranje.
  • Proširite Afinitet sesije i izaberite By Cloudflare Cookie ako želite da omogućite lepljivost sesije.

  • Unesite naziv seta i izvor (server na koji treba da se preusmeri saobraćaj)

  • Zatim možete da konfigurišete proveru zdravlja.

Provera zdravlja je ključna. Cloudflare će prestati da šalje saobraćaj ka neispravnom izvoru kada provera zdravlja ne uspe.

  • Ako vaš izvor osluškuje port 80, možete odabrati HTTP, ili HTTPS za port 443.

Cloudflare vam takođe omogućava da konfigurišete napredne postavke provere zdravlja, kao što su:

  • GET ili HEAD metoda
  • Očekivani HTTP statusni kod
  • Validacija sadržaja u telu odgovora
  • Broj pokušaja pre nego što se smatra zdravim ili nezdravim
  • Provera imena zaglavlja

Na kraju, sačuvajte konfiguraciju i primenite je

  • LB će izvršiti proveru zdravlja i za nekoliko sekundi će status biti zdrav.

Odlično, ovo znači da je Cloudflare load balancer spreman da prihvati saobraćaj iz sveta i prosledi ga ka konfigurisanim izvornim serverima.

Testiranje balansera opterećenja

Hajde da uradimo osnovni test da vidimo da li funkcioniše.

  • Prvo, pokušajte da pristupite domenu.

Odlično!

LB je prosledio zahtev ka Google Cloud VM-u i dobio odgovor. Takođe, vidim zahtev u Nginx logovima.

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"
  • Isključiću Nginx na GCP-u i ponovo ću pristupiti stranici.

  • I to je to. Tražena stranica se učitava sa AWS-a.

Vidim da je LB uklonio GCP člana iz grupe.

Podrazumevano, Cloudflare IP će se prikazati u pristupnim logovima Nginx-a, a ako treba da vratite klijentov IP, možete pogledati ovaj vodič.

Zaključak

Implementacija Cloudflare balansera opterećenja je jednostavna i može se završiti za manje od 15 minuta. Ako tražite visoku dostupnost između više data centara ili izvornih servera, isprobajte ga i uverite se kako radi.

Da li vam se svideo ovaj članak? Slobodno ga podelite sa drugima!