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!