Hvordan lage og konfigurere nettverksbalanser på AWS

Hvordan lage og konfigurere nettverksbalanser på AWS
Når brukeren ber om en applikasjon eller en webserver øker utover en viss grense, er det vanskelig for en enkelt server å håndtere belastningen, og brukerne begynner å få problemer med å få tilgang til applikasjonen. For å løse dette problemet kjører de fleste webapplikasjoner på mer enn en server for å administrere den høye belastningsbehovet til brukerne. Men vi krever en eller annen mekanisme for å dele forespørslene mellom forskjellige servere. For å løse dette problemet, må vi bruke en belastningsbalanse som kan fordele trafikken på serverne basert på noen algoritmer. De vanligste algoritmene som brukes er rund robin, vektet rund-robin, minst tilkobling, minst responstid, flyt hasj osv. Som en av de største leverandørene av skytjenester tilbyr AWS forskjellige typer belastningsbalanser, og du må bestemme hvilken som er mest tilstrekkelig og økonomisk for å håndtere applikasjonsarbeidet ditt.

Typer belastningsbalanser i AWS

I AWS får du følgende fire typer belastningsbalanser:

Klassisk belastningsbalanse

Det fungerer på transportlaget (TCP) og applikasjonslag (HTTP). Det støtter ikke dynamisk portkartlegging og krever et forhold mellom lastbalanseport og forekomstport. Nå er det en arv tjeneste og anbefales ikke å bruke mye.

Applikasjonsbelastningsbalanse

Det er den mest brukte belastningsbalansen som ruter trafikken basert på applikasjonslaget (HTTP/HTTPS). Den støtter også den dynamiske portkartleggingsfunksjonen og gir intelligent ruting.

Nettverksbalanser

Nettverksbelastningsbalansen bruker en flow -hasjalgoritme og fungerer på transportlaget (TCP), I.e., Lag 4 av OSI -modellen. Den kan håndtere flere forespørsler enn applikasjonsbelastningsbalansen og gir minst latens.

Gateway Load Balancer

Det er en belastningsbalanse som gir andre fordeler som nettverkssikkerhet og brannmur. Det tar rutingsbeslutninger på det tredje OSI -laget (nettverkslag) og bruker Geneve -protokollen på port 6081.

Opprette nettverksbalanser ved hjelp av AWS Management Console

I denne artikkelen vil vi opprette og konfigurere en nettverksbalanser. Det første trinnet er å konfigurere tjenesten vi ønsker å bruke lastbalansen. Det kan enten være EC2 -forekomster, lambda -funksjoner, IP -adresser eller applikasjonsbalansere. Her vil vi velge EC2 -forekomster, så søk etter EC2 -tjeneste i konsollen.

Konfigurer så mange forekomster du vil for applikasjonen din.

Før vi oppretter vår belastningsbalanse, må vi opprette en målgruppe. Åpne målgruppekonsollen fra venstre meny i EC2 -delen.

Nå, klikk på Create Target Group for å komme i gang.

Først må du velge tjenesten du vil opprette målgruppen. Dette vil være tilfellene i vårt tilfelle:

Gi deretter navnet på målgruppen din, nettverksprotokollen, portnummeret og VPC (Virtual Private Network) som EC2 -forekomstene dine tilhører.

For en målgruppe som vil bli brukt med en nettverksbalanse, må protokollen være en lag 4 -protokoll som TCP, TLS, UDP eller TCP_UDP som nettverksbalanser fungerer på lag 4 i OSI -lagsmodellen.

Porten her viser porten som søknaden din kjører i EC2 -forekomster. Mens du konfigurerer applikasjonen din på flere EC2 -forekomster med en målgruppe, må du sørge for at applikasjonen din på alle EC2 -forekomster kjører på samme port. I denne demoen kjører vår søknad på port 80 av EC2 -forekomstene.

For VPC må du velge VPC hvor EC2 -forekomstene dine eksisterer. Ellers kan du ikke legge til EC2 -forekomstene til målgruppen.

Du kan også konfigurere helsekontrollene slik at hvis et mål går ned, vil lastbalansen automatisk slutte å sende nettverkstrafikken til det målet.

Nå må du registrere forekomstene dine til målgruppen din. Brukerforespørslene vil bli videresendt til de registrerte målene.

For å registrere målet, velger du bare disse målene eller forekomsten i dette tilfellet og klikker på "Inkluder som ventende nedenfor". Her har vi valgt tilfeller som tilhører forskjellige tilgjengelighetssoner for å holde applikasjonen vår i gang selv om en AZ går ned.

Til slutt klikker du på Create Target Group, og du er klar til å gå.

Nå oppretter vi vår nettverksbalanser, så åpne Load Balancer -delen fra menyen og klikk på Opprett Last Balancer.

Fra følgende typer velger du nettverksbalansen:

Først, definer navnet på nettverksbelastningsbalansen i den grunnleggende konfigurasjonsdelen.

Velg nå nettverksordningen, jeg.e., Enten vil du at belastningsbalansen skal være offentlig eller bare vil bruke den i det private nettverket (VPC).

IP -adressetypen definerer om EC2 -forekomstene dine bruker IPv4- eller IPv6 -adresser. Hvis EC2 -forekomstene dine bare bruker IPv4 -adresser, kan du velge IPv4 alternativ. Ellers velger du Dualstack alternativ.

Velg VPC for lastbalansen. Det må være det samme som for tilfeller og målgrupper.

Deretter kan du velge tilgjengelighetssoner og undernett der dine mål EC2 -forekomster eksisterer. Mer tilgjengelighetssoner betyr at mer applikasjonene dine er svært tilgjengelige. Mens du kjører applikasjonen din på mer enn en EC2 -forekomst, må du sørge for at EC2 -forekomstene dine kjører i forskjellige tilgjengelighetssoner.

Ettersom våre tilfeller tilhører hver av tilgjengelighetssonene som er til stede i regionen, vil vi velge dem alle med deres respektive undernett.

US-East-2A

US-East-2b

US-East-2C

Nå må vi angi nettverksprotokoll og port, og velge vår målgruppe for vår lastbalanse. Lastbalansen vil rute all trafikken til dette målet.

Endelig er konfigurasjonen vår fullført. Bare klikk på Create Load Balancer i knappen høyre hjørne, så er vi gode å gå.

Når du er konfigurert, vil du finne et sluttpunkt for lastbalansen under beskrivelsesdelen. Du vil bruke dette sluttpunktet for å få tilgang til applikasjonen din.

Brukerforespørslene vil bli mottatt gjennom Load Balancer -endepunktet, som vil rute den til forekomsten som er konfigurert gjennom målgruppen. Hvis du prøver flere forespørsler, blir forespørslene dine oppfylt tilfeldig av noen forekomster.

Så vi har opprettet og konfigurert en nettverksbalanser ved hjelp av AWS Management Console.

Opprette nettverksbalanser ved hjelp av AWS CLI

AWS-konsoll er enkel å bruke og administrere tjenester og ressurser på kontoen din, men de fleste bransjefagfolk foretrekker kommandolinjegrensesnittet. Det er grunnen til. Så la oss se hvordan vi kan lage en lastbalanse ved å bruke kommandolinjegrensesnittet.

Så etter at du har konfigurert CLI, kan du bare kjøre følgende kommando for å opprette en nettverksbelastningsbalanse:

$: AWS Elbv2 Create-Load-Balancer-Navn --Type nettverk -subneter

Neste, vi må opprette en målgruppe for denne nettverksbelastningsbalansen.

$: AWS Elbv2 Create-Target-Group-Navn --Protokoll TCP --Port 80-VPC-ID

Deretter må vi legge til mål til vår målgruppe ved å bruke følgende kommando:

$: AWS ELBV2 Register-Targets--Target-Group-ARN --Målet ID =

Til slutt, som lytter, vil vi knytte målgruppen vår til lastbalansen.

$: AWS ELBV2 Create-Listener--Load-Balancer-ARN --Protokoll TCP --Port 80-Default-Actions Type = Forward, TargetGrouparn =

Så vi har opprettet en nettverksbalanser og lagt til en målgruppe som lytter til Load Balancer ved hjelp av AWS-kommandolinjegrensesnittet.

Konklusjon

Lastbalansering er kritisk for alle slags webapplikasjon. De reduserer driftsstansen ved å gi nødvendige helsekontroller, lette distribusjonen av autoskaleringsgruppen, rute trafikken til serveren som gir minst latens og ruter trafikken til en annen tilgjengelighetssone i tilfelle systemfeil. For å håndtere massive forespørsler på serveren vår, kan vi øke ressursene i forekomsten vår, for eksempel mer CPU, minne og mer nettverksbåndbredde. Men dette kan bare oppnås til et visst nivå og vil ikke være vellykket og egnet i mange aspekter, for eksempel kostnader, pålitelighet og skalerbarhet. Så definitivt, vi må bruke flere servere for applikasjonen vår. Bare et poeng å huske er at AWS Elastic Load Balancer (ELB) bare er ansvarlig for ruting og distribusjon av brukerforespørsler. Dette vil ikke legge til eller fjerne servere eller forekomster i infrastrukturen din. Vi bruker AWS Auto Scaling Group (ASG). Vi håper du fant denne artikkelen nyttig. Sjekk de andre Linux -hint -artiklene for flere tips og opplæringsprogrammer.