Hur laddar man saldowebbplats mellan GCP och AWS med Cloudflare?

Lär dig hur du kan använda Cloudflare load balancer (LB) för att distribuera trafik mellan AWS (Amazon Web Services) och GCP (Google Cloud Platform).

De flesta webbapplikationer kräver eller gör lastbalans mellan servrar/tjänster i samma datacenter.

Men om du kör verksamhetskritiska applikationer där drifttid behövs hela tiden över hela världen, behöver du en molnbelastningsbalanserare.

Inte bara drifttid utan kan vara många andra faktorer.

Ex:

  • Aktivt-passivt eller aktivt-aktivt datacenterkrav
  • Katastrofåterställningsplan
  • Dra fördel av flera datacenter för att betjäna förfrågningar från närmaste plats
  • Efterlevnad

Cloudflare erbjuder lokala och globala lastbalanseringsalternativ, som hjälper till att dirigera trafik till flera datacenter.

Några av Cloudflare LB-funktionerna är:

  • Hälsokontroller är inbyggda, så du kan snabbt ta ner en felaktig server.
  • Utlösa failover när hälsokontrollen misslyckas
  • Minska latensen genom att dirigera trafik till närmaste server
  • DNS-nivå och stöd för HTTP(S), TCP och UDP
  • Session stickiness för att säkerställa att begäran går till samma server

Du kan konfigurera hela saker antingen via Cloudflares instrumentpanel eller API.

Tekniskt sett gäller följande instruktioner för lastbalans på alla molnplattformar som Azure, DigitalOceanAlibaba, etc. Men jag har valt GCP och AWS för demonstrationen.

AWS- och GCP-inställningar

Jag har tillhandahållit en server i GCP- och AWS-plattformen med följande.

  • Installerade Nginx
  • Lade till index.html med anpassad text för att visa att sidan serveras från respektive server
  • Startade Nginx, och sidan är tillgänglig från båda servrarna

Låt oss flytta till Cloudflare för att implementera LB.

Aktiverar Cloudflare Load Balancer

Jag har en tillgänglig domän (bloggerflare.com), som jag kommer att använda för det här labbet.

Obs: Load balancer från Cloudflare är inte GRATIS, och prissättning börjar på $5 per månad.

Jag antar att du redan har ett konto hos Cloudflare; om inte kan du skapa och lägga till domänen, som jag förklarade i mitt tidigare inlägg.

  • Logga in på Cloudflare och välj den domän där du vill aktivera balansering
  • Gå till trafikfliken och aktivera lastbalansering.

  • Konfigurera funktionerna baserat på kravet. Jag fortsätter med minimal konfiguration.

Om du vill att förfrågningar ska omdirigeras till närmaste plats måste du aktivera Geo Routing.

  • Bekräfta prenumerationen och aktivera den.

Som du kan se kan du komma igång från $5 i månaden med två ursprungsservrar och ett hälsokontrollintervall på en minut.

Infrastrukturen är så överkomlig nu. För 5 år sedan, kan du föreställa dig molnbelastningsbalanserare för 5 USD?

Detta indikerar att Cloudflare LB är aktiverat och redo att konfigureras.

Skapar Cloudflare LB

Det tar några sekunder att bekräfta prenumerationen och ta dig tillbaka till trafiksidan.

  • Klicka på Skapa lastbalanserare

  • Ange domänen där du vill ställa in balansering.
  • Expandera Session Affinity och välj By Cloudflare Cookie om du behöver aktivera session stickiness

  • Ange ett poolnamn och det är ursprunget (server dit trafiken ska omdirigeras till)

  • Därefter kan du konfigurera en hälsokontroll.

En hälsokontroll är nödvändig. Cloudflare kommer att sluta skicka trafik till det felaktiga ursprunget när en hälsokontroll misslyckas.

  • Om ditt ursprung lyssnar på port 80 kan du välja HTTP eller https för 443-porten.

Cloudflare låter dig också konfigurera avancerade hälsokontrollinställningar som:

  • GET eller HEAD-metoden
  • Förväntad HTTP-statuskod
  • Innehållsvalidering i svarskroppen
  • Antal försök innan de anser vara hälsosamt eller ohälsosamt
  • Verifiering av rubriknamn

Och slutligen, spara konfigurationen och distribuera

  • LB kommer att utföra en hälsokontroll och inom några sekunder ser du att statusen är frisk.

Bra, detta drar slutsatsen att Cloudflare load balancer är redo att acceptera trafik från världen och vidarebefordra den till de konfigurerade ursprungsservrarna.

Testar lastbalanserare

Låt oss utföra ett grundläggande test för att se om det fungerar.

  • Försök först komma åt domänen.

Grymt bra!

LB vidarebefordrade en förfrågan till Google Cloud VM och fick svaret. Jag kan se begäran i 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"
  • Låt mig stänga av Nginx på GCP och komma åt sidan igen.

  • Och här går du. En begärd sida serveras från AWS.

Jag kan se att LB tog GCP-poolmedlemmen ner.

Som standard kommer Cloudflare IP att visas i Nginx-åtkomstloggar, och om du behöver återställa klient-IP kan du kolla in den här guiden.

Slutsats

Att implementera en Cloudflare belastningsbalanserare är enkelt och kan komma igång på mindre än 15 minuter. Om du letar efter hög tillgänglighet mellan flera datacenter eller ursprungsservrar, prova det för att se hur det fungerar.

Gillade du att läsa artikeln? Vad sägs om att dela med världen?