Lastbalansering med AWS ELB

Hej alla! Idag startar kursen «AWS för utvecklare», vilket innebÀr att vi har genomfört ett tematiskt webbinar, som handlar om en översikt av ELB. Vi gick igenom typerna av belastningsutjÀmnare och skapade flera EC2-instanser med en belastningsutjÀmnare. Vi studerade ocksÄ andra exempel pÄ anvÀndning.

Lastbalansering med AWS ELB

Efter att ha lyssnat pÄ webbinariet, kommer du att:

  • förstĂ„ vad AWS Load Balancing Ă€r;
  • kĂ€nna till typer av Elastic Load Balancer och dess komponenter;
  • anvĂ€nda AWS ELB i din praktik.

Varför detta Àr viktigt:

  • det Ă€r anvĂ€ndbart om du planerar att ta AWS certifieringsexaminer;
  • det Ă€r ett enkelt sĂ€tt att fördela belastningen mellan servrar;
  • det Ă€r ett enkelt sĂ€tt att lĂ€gga till Lambda i din tjĂ€nst (ALB).

Den öppna lektionen leddes av Rishat Teregulov, systemingenjör pÄ ett marknadsföringsföretag som utvecklar och supportar webbplatser.

Introduktion

Vad Àr Elastic Load Balancer kan ses i diagrammet nedan, som visar ett enkelt exempel:

Lastbalansering med AWS ELB

BelastningsutjÀmnaren tar emot begÀrningar och fördelar dem till instanser. Vi har en separat instans, Lambda-funktioner och en AutoScaling-grupp (en grupp servrar).

Typer av AWS ELB

1. LÄt oss titta pÄ de huvudsakliga typerna:

Classic Load Balancer. Den första belastningsutjÀmnaren frÄn AWS, fungerar pÄ bÄde OSI lager 4 och 7, stöder HTTP, HTTPS, TCP och SSL. Den möjliggör grundlÀggande belastningsutjÀmning mellan flera Amazon EC2-instanser och fungerar bÄde pÄ begÀrnings- och anslutningsnivÄ. LÄt oss öppna den (markerad i grÄtt):

Lastbalansering med AWS ELB

Denna balansutjĂ€mnare anses vara förĂ„ldrad, sĂ„ det rekommenderas att anvĂ€nda den endast i sĂ€rskilda fall. Till exempel för applikationer som byggts pĂ„ nĂ€tverket EC2‑Classic. I princip finns det inget som hindrar oss frĂ„n att skapa den:

Lastbalansering med AWS ELB

2. Network Load Balancer. LÀmplig för hög belastning, arbetar pÄ OSI lager 4 (kan anvÀndas i EKS och ECS), stöder TCP, UDP och TLS.

Network Load Balancer dirigerar trafik till mÄlobjekt i Amazon VPC och kan hantera miljontals begÀrningar per sekund med ultralÄga fördröjningar. Dessutom Àr den optimerad för att hantera trafikmönster med plötslig och varierande belastning.

3. Application Load Balancer. Fungerar pÄ lager 7, har stöd för Lambda, stöder regler pÄ header- och sökvÀgnivÄ, stöder HTTP och HTTPS.
Ger tillgÄng till avancerad förfrÄgningsrouting som Àr inriktad pÄ att leverera applikationer baserade pÄ moderna arkitekturer, inklusive mikrotjÀnster och containrar. Styra trafik till mÄlen i Amazon VPC baserat pÄ innehÄllet i förfrÄgan.

För mÄnga anvÀndare har Application Load Balancer i första hand ersatt Classic Load Balancer, eftersom TCP inte Àr lika utbrett jÀmfört med HTTP.

Vi skapar ocksÄ den, vilket ger oss tvÄ lastbalanserare:

Lastbalansering med AWS ELB

Komponenter i Load Balance

AllmÀnna komponenter i Load Balance (gemensamma för alla lastbalanserare):

  • Access Logging Policy

— dina Ă„tkomstloggar för ELB. För att utföra instĂ€llningarna kan du gĂ„ till Beskrivning och vĂ€lja knappen "Redigera attribut":

Lastbalansering med AWS ELB

DĂ€refter anger vi S3Bucket — Amazon objektlagringslagring:

Lastbalansering med AWS ELB

  • Scheme

— intern eller extern lastbalanserare. Det handlar om huruvida din LoadBalancer ska ta emot externa adresser för att vara tillgĂ€nglig utanför, eller om det kan vara din interna lastbalanserare;

  • Security Groups

— Ă„tkomstkontroll till lastbalanseraren. I grund och botten Ă€r detta en brandvĂ€gg pĂ„ hög nivĂ„.

Lastbalansering med AWS ELB

Lastbalansering med AWS ELB

  • Subnets

— delnĂ€t inom din VPC (och dĂ€rmed tillgĂ€nglighetszoner). DelnĂ€t anges vid skapandet. Om VPC Ă€r begrĂ€nsad till regionen, Ă€r delnĂ€ten begrĂ€nsade per tillgĂ€nglighetszon. NĂ€r du skapar Load Balancer, Ă€r det bĂ€ttre att skapa den i minst tvĂ„ delnĂ€t (hjĂ€lper om det skulle uppstĂ„ problem med en tillgĂ€nglighetszon);

  • Listeners

— dina protokoll för lastbalanseraren. Som nĂ€mnts tidigare kan det för Classic Load Balancer vara HTTP, HTTPS, TCP och SSL, för Network Load Balancer — TCP, UDP och TLS, för Application Load Balancer — HTTP och HTTPS.

Exempel för Classic Load Balancer:

Lastbalansering med AWS ELB

Men i Application Load Balancer ser vi och en nÄgot annan grÀnssnitt och en helt annan logik:

Lastbalansering med AWS ELB

Komponenter i Load Balancer v2 (ALB och NLB)

Nu ska vi titta nĂ€rmare pĂ„ lastbalanserare version 2, Application Load Balancer och Network Load Balancer. Dessa lastbalanserare har sina egna komponentfunktioner. Till exempel har det kommit ett begrepp som Target Groups — instanser (och funktioner). Tack vare denna komponent har vi nu möjlighet att ange vilken av Target Groups vi vill styra trafiken till.

Lastbalansering med AWS ELB

Lastbalansering med AWS ELB

Enkelt uttryckt anger vi i Target Groups instanserna som trafiken kommer att komma till. Medan du i Classic Load Balancer bara kopplar instanser direkt till lastbalanseraren, gör du i Application Load Balancer först:

  • skapar Load Balancer;
  • skapar Target-grupp;
  • styr efter nödvĂ€ndiga portar eller regler Load Balancer till de nödvĂ€ndiga Target Groups;
  • I Target-grupper tilldelar du instanser.

Denna arbetslogik kan verka mer komplex, men i sjÀlva verket Àr den mer bekvÀm.

Den nÀsta komponenten Àr Lyssnarrutiner (riktlinjer för routning). Det hÀr gÀller endast Application Load Balancer. Om du i Network Load Balancer bara skapar en lyssnare och den skickar trafik till en specifik Target-grupp, sÄ Àr det i Application Load Balancer roligare och mer praktiskt.

Lastbalansering med AWS ELB

LĂ„t oss sĂ€ga nĂ„gra ord om nĂ€sta komponent — Elastic IP (statisk adresser för NLB). Om riktlinjerna för lyssnarrutiner endast rörde sig om Application Load Balancer, sĂ„ gĂ€ller Elastic IP endast Network Load Balancer.

Vi skapar en Network Load Balancer:

Lastbalansering med AWS ELB

Lastbalansering med AWS ELB

Och under skapandeprocessen kommer vi att se att vi fÄr möjlighet att vÀlja Elastic IP:

Lastbalansering med AWS ELB

Elastic IP ger en enda IP-adress som kan kopplas till olika EC2-instanser över tid. Om en EC2-instans har en Elastic IP-adress och denna instans stoppas eller avslutas kan du omedelbart koppla en ny EC2-instans till Elastic IP-adressen. PÄ sÄ sÀtt avbryts inte din aktuella applikation, eftersom applikationerna ser samma IP-adress, Àven om den verkliga EC2-instansen har Àndrats.

HÀr Àr en till anvÀndningsfall om varför Elastic IP behövs. Titta, vi ser 3 IP-adresser, men de kommer inte att stanna hÀr för alltid:

Lastbalansering med AWS ELB

Amazon Àndrar dem över tid, kan göra det var 60:e sekund (men i praktiken Àr det förstÄs mer sÀllan). Det innebÀr att IP-adresserna kan Àndras. I fallet med Network Load Balancer kan du just koppla IP-adressen och ange den i dina riktlinjer, policyer och sÄ vidare.

Lastbalansering med AWS ELB

Vi drar slutsatser

ELB erbjuder automatisk fördelning av inkommande trafik till flera mÄlobjekt (containrar, Amazon EC2-instanser, IP-adresser och Lambda-funktioner). ELB kan fördela trafik med varierande belastning bÄde inom en tillgÀnglighetszon och mellan flera tillgÀnglighetszoner. AnvÀndaren kan vÀlja bland tre typer av belastningsbalanserare som erbjuder hög tillgÀnglighet, automatisk skalning och rimligt bra skydd. Allt detta Àr viktigt för att sÀkerstÀlla motstÄndskraften hos dina applikationer.

Huvudsakliga fördelar:

  • hög tillgĂ€nglighet. I serviceavtalet garanteras 99,99 % tillgĂ€nglighet för lastbalanseraren. Till exempel garanterar flera tillgĂ€nglighetszoner att trafiken endast hanteras av fungerande objekt. I sjĂ€lva verket kan man balansera last över hela regionen och omdirigera trafiken till fungerande mĂ„lobjekt i olika tillgĂ€nglighetszoner;
  • sĂ€kerhet. ELB fungerar med Amazon VPC och erbjuder olika sĂ€kerhetsfunktioner – inklusive integrerad certifikathantering, anvĂ€ndarautentisering och SSL/TLS-dekryptering. Tillsammans ger detta centraliserad och flexibel hantering av TLS-instĂ€llningar;
  • elasticitet. ELB kan hantera plötsliga förĂ€ndringar i nĂ€tverkstrafik. Den djupa integrationen med Auto Scaling ger applikationen tillrĂ€ckligt med resurser nĂ€r belastningen Ă€ndras, utan att man behöver ingripa manuellt;
  • flexibilitet. IP-adresser kan anvĂ€ndas för att dirigera förfrĂ„gningar till mĂ„len för dina applikationer. Detta sĂ€kerstĂ€ller flexibilitet vid virtualisering av mĂ„lapplikationer, vilket möjliggör att köra flera applikationer pĂ„ en och samma instans. Eftersom applikationerna kan anvĂ€nda samma nĂ€tverksport och har separata sĂ€kerhetsgrupper, förenklas interaktionen mellan applikationer i en mikroservicesarkitektur;
  • övervakning och granskning. Du kan övervaka applikationer i realtid med hjĂ€lp av funktionerna i Amazon CloudWatch. Detta omfattar metrik, loggar och spĂ„rning av förfrĂ„gningar. Enkelt uttryckt kan du identifiera problem och noggrant faststĂ€lla flaskhalsar i prestanda;
  • hybridlastbalansering. Möjligheten att balansera lasten mellan lokala resurser och AWS med samma lastbalanserare förenklar migrering eller utvidgning av lokala applikationer till molnet. Det underlĂ€ttar ocksĂ„ hantering av fel med hjĂ€lp av molnet.

Om du Àr intresserad av detaljer, hÀr Àr ett par nyttiga lÀnkar frÄn Amazons officiella sida:

  1. Elastic Load Balancing.
  2. Möjligheter med Elastic Load Balancing.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster