Lær, hvordan du kan bruge Cloudflare load balancer (LB) til at distribuere trafik mellem AWS (Amazon Web Services) og GCP (Google Cloud Platform).
De fleste webapplikationer kræver eller gør belastningsbalance mellem servere/tjenester i det samme datacenter.
Men hvis du kører missionskritiske applikationer, hvor der er behov for oppetid hele tiden over hele verden, så har du brug for en cloud load balancer.
Ikke kun oppetid, men kan være mange andre faktorer.
Eks:
- Aktiv-passiv eller aktiv-aktiv datacenterkrav
- Katastrofegenopretningsplan
- Udnyttelse af flere datacentre til at betjene anmodninger fra den nærmeste placering
- Overholdelse
Cloudflare tilbyder lokale og globale belastningsbalanceringsmuligheder, som hjælper med at dirigere trafik til flere datacentre.
Nogle af Cloudflare LB-funktionerne er:
- Sundhedstjek er indbygget, så du hurtigt kan fjerne en defekt server.
- Udløs failover, når sundhedstjekket mislykkes
- Reducer latens ved at dirigere trafik til den nærmeste server
- DNS-niveau og understøtter HTTP(S), TCP og UDP
- Session stickiness for at sikre, at anmodningen går til den samme server
Du kan konfigurere hele ting enten via Cloudflare-dashboardet eller API.
Teknisk set gælder følgende instruktioner for belastningsbalance på enhver cloudplatform som Azure, DigitalOceanAlibaba osv. Men jeg har valgt GCP og AWS til demonstrationen.
Indholdsfortegnelse
AWS- og GCP-opsætningsdetaljer
Jeg har klargjort én server i GCP- og AWS-platformen med følgende.
- Installeret Nginx
- Tilføjet index.html med tilpasset tekst for at vise, at siden bliver serveret fra den respektive server
- Startede Nginx, og siden er tilgængelig fra begge servere
Lad os flytte til Cloudflare for at implementere LB.
Aktivering af Cloudflare Load Balancer
Jeg har et ledigt domæne (bloggerflare.com), som jeg vil bruge til dette laboratorium.
Bemærk: Load balancer fra Cloudflare er ikke GRATIS, og prissætning starter ved $5 om måneden.
Jeg går ud fra, at du allerede har en konto hos Cloudflare; hvis ikke, kan du oprette og tilføje domænet, som jeg forklarede i mit tidligere indlæg.
- Log ind på Cloudflare og vælg det domæne, hvor du vil aktivere balancering
- Gå til trafikfanen og aktiver belastningsbalancering.
- Konfigurer funktionerne baseret på kravet. Jeg fortsætter med minimal konfiguration.
Hvis du ønsker, at anmodninger skal omdirigeres til den nærmeste placering, skal du aktivere Geo Routing.
- Bekræft abonnementet og aktiver det.
Som du kan se, kan du starte det fra $5 om måneden med to oprindelsesservere og et interval på et minuts sundhedstjek.
Infrastruktur er så overkommelig nu. 5 år tilbage, kan du forestille dig cloud load balancer til $5?
Dette indikerer, at Cloudflare LB er aktiveret og klar til at blive konfigureret.
Oprettelse af Cloudflare LB
Det vil tage et par sekunder at bekræfte abonnementet og tage dig tilbage til Trafik-siden.
- Klik på Opret belastningsbalancer
- Indtast det domæne, hvor du vil konfigurere balancering.
- Udvid Session Affinity og vælg By Cloudflare Cookie, hvis du har brug for at aktivere session stickiness
- Indtast et puljenavn, og det er oprindelsen (serveren, hvor trafikken skal omdirigeres til)
- Dernæst kan du konfigurere et sundhedstjek.
Et sundhedstjek er vigtigt. Cloudflare stopper med at sende trafik til den defekte oprindelse, når et sundhedstjek mislykkes.
- Hvis din oprindelse lytter på port 80, kan du vælge HTTP eller https for 443-port.
Cloudflare giver dig også mulighed for at konfigurere avancerede sundhedstjekindstillinger såsom:
- GET eller HEAD metode
- Forventet HTTP-statuskode
- Indholdsvalidering i svarlegemet
- Antal forsøg, før de vurderer sundt eller usundt
- Godkendelse af headernavn
Og til sidst skal du gemme konfigurationen og implementere
- LB vil udføre et sundhedstjek, og i løbet af få sekunder vil du se, at status er sund.
Fantastisk, dette konkluderer, at Cloudflare load balancer er klar til at acceptere trafik fra verden og videresende den til de konfigurerede oprindelsesservere.
Test af Load Balancer
Lad os udføre en grundlæggende test for at se, om det virker.
- Prøv først at få adgang til domænet.
Fantastisk!
LB videresendte en anmodning til Google Cloud VM og fik svaret. Jeg kan se anmodningen 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"
- Lad mig lukke Nginx på GCP og få adgang til siden igen.
- Og her går du. En anmodet side serveres fra AWS.
Jeg kan se, at LB tog GCP-poolmedlemmet ned.
Som standard vil Cloudflare IP blive vist i Nginx-adgangslogfiler, og hvis du har brug for at gendanne klient-IP, så kan du tjekke denne vejledning.
Konklusion
Implementering af en Cloudflare load balancer er ligetil og kan få den i gang på mindre end 15 minutter. Hvis du leder efter høj tilgængelighed mellem flere datacentre eller oprindelsesservere, så prøv det for at se, hvordan det fungerer.
Nydt at læse artiklen? Hvad med at dele med verden?