Balancimi i ngarkesës me AWS ELB

Përshëndetje të gjithëve! Sot fillon kursi «AWS për zhvilluesit», për shkak të së cilës ne organizuam një webinar përkatës tematik, kushtuar shqyrtimit të ELB. Ne shqyrtuam llojet e balancuesve dhe krijuam disa instance EC2 me balancues. Gjithashtu, studiuam shembuj të tjerë të përdorimit.

Balancimi i ngarkesës me AWS ELB

Pas dëgjimit të webinarit, ju do të:

  • kuptoni se çfarë është AWS Load Balancing;
  • dini llojet e Elastic Load Balancer dhe komponentët e tij;
  • përdorni AWS ELB në praktikën tuaj.

Pse është e nevojshme kjo:

  • është e dobishme nëse planifikoni të jepni provime çertifikimi AWS;
  • është një mënyrë e thjeshtë për të shpërndarë ngarkesën midis serverëve;
  • është një mënyrë e thjeshtë për të shtuar Lambda në shërbimin tuaj (ALB).

Mësimi i hapur u udhëhoq nga Rishat Teregulev, inxhinier sistemi në një kompani marketingu për zhvillimin dhe mbështetje në internet.

Hyrje

Çfarë është Elastic Load Balancer, mund ta shihni në diagramin më poshtë, ku paraqitet një shembull i thjeshtë:

Balancimi i ngarkesës me AWS ELB

Load Balancer merr kërkesat dhe i shpërndan ato midis instanceve. Ne kemi një instancë të veçantë, kemi funksione Lambda dhe kemi një grup AutoScaling (grup serverësh).

Llojet e AWS ELB

1. Le të shqyrtojmë llojet kryesore:

Classic Load Balancer. Balancuesi më klasik i AWS, punon në nivelin 4 dhe 7 të OSI, mbështet HTTP, HTTPS, TCP dhe SSL. Ai siguron balancimin bazë të ngarkesës mes disa instanceve Amazon EC2 dhe punon në nivelin e kërkesave si dhe në nivelin e lidhjes. Le ta hapim atë (e theksuar me gri):

Balancimi i ngarkesës me AWS ELB

Ky balancues konsiderohet i vjetruar, prandaj rekomandohet të përdoret vetëm në raste të veçanta. Për shembull, për aplikacione që janë ndërtuar në rrjetin EC2‑Classic. Në parim, askush nuk na pengon ta krijojmë atë:

Balancimi i ngarkesës me AWS ELB

2. Network Load Balancer. I përshtatshëm për ngarkesë të lartë, punon në nivelin 4 të OSI (mund të përdoret në EKS dhe ECS), mbështet TCP, UDP dhe TLS.

Network Load Balancer drejton trafikun në objektet e synuara në Amazon VPC dhe është në gjendje të përpunojë miliona kërkesa në sekondë me vonesa shumë të ulëta. Për më tepër, ai është optimizuar për të menaxhuar modelet e trafikëve me ngarkesë të papritur dhe në ndryshim.

3. Application Load Balancer. Punon në nivelin 7, ka mbështetje për Lambda, mbështet rregulla në nivelin e titujve dhe rrugëve, mbështet HTTP dhe HTTPS.
Siguron një ruterim të avancuar të kërkesave, të orientuar drejt shpërndarjes së aplikacioneve të ndërtuara mbi arkitektura moderne, përfshirë mikroshërbimet dhe kontejnerët. Direkton trafikun te objektet e synuara në Amazon VPC, duke u mbështetur në përmbajtjen e kërkesës.

Për shumë përdorues, Application Load Balancer fillimisht zëvendësoi Classic Load Balancer, pasi TCP nuk është aq i zakonshëm sa HTTP.

Le të krijojmë edhe një, duke pasur kështu dy balancues ngarkese:

Balancimi i ngarkesës me AWS ELB

Komponentët e Load Balance

Komponentët e Përgjithshëm të Load Balance (të pranishëm te të gjithë balancuesit):

  • Politika e Regjistrimit të Qasjes

— regjistrat tuaj të qasjes në ELB. Për të bërë konfigurimet, mund të kaloni në Description dhe të zgjidhni butonin «Edit attributes»:

Balancimi i ngarkesës me AWS ELB

Më pas tregoni S3Bucket — ruajtja objektive e Amazon:

Balancimi i ngarkesës me AWS ELB

  • Scheme

— balancues i brendshëm ose i jashtëm. Qëllimi është të kuptohet nëse LoadBalancer juaj duhet të marrë adresa të jashtme për të qenë i aksesueshëm nga jashtë, ose nëse mund të jetë balancuesi juaj i brendshëm;

  • Grupet e Sigurisë

— kontrolli i qasjes në balancues. Në thelb, kjo është një firewall i nivelit të lartë.

Balancimi i ngarkesës me AWS ELB

Balancimi i ngarkesës me AWS ELB

  • Subnetet

— nënndegët brenda VPC tuaj (si dhe zonat e disponueshmërisë). Nënndegët përcaktohen gjatë krijimit. Nëse VPC është e kufizuar në rajon, atëherë nënndegët janë të kufizuara sipas zonave të disponueshmërisë. Kur krijoni një Load Balancer, është më mirë ta krijoni atë në të paktën dy nënndegë (ndihmon në rast se ndodhin probleme me një zonë disponueshmërie);

  • Dëgjuesit

— protokollet e balancuesit tuaj. Siç u përmend më parë, për Classic Load Balancer, këto mund të jenë HTTP, HTTPS, TCP dhe SSL; për Network Load Balancer — TCP, UDP dhe TLS; për Application Load Balancer — HTTP dhe HTTPS.

shembulli për Classic Load Balancer:

Balancimi i ngarkesës me AWS ELB

Ndërsa në Application Load Balancer ne shohim një ndërfaqe pak më të ndryshme dhe, në përgjithësi, një logjikë tjetër:

Balancimi i ngarkesës me AWS ELB

Komponentet e Load Balancer v2 (ALB dhe NLB)

Tani le të shqyrtojmë më në detaje balancuesit e versionit të dytë Application Load Balancer dhe Network Load Balancer. Këta balancues kanë karakteristika të veçanta komponentesh. Për shembull, ka një koncept të tillë si Grupi i Target — instancat (dhe funksionet). Falë këtij komponenti, kemi krijuar mundësinë për të përcaktuar se në cilin prej Grupeve të Target ne duam të orientojmë trafikun.

Balancimi i ngarkesës me AWS ELB

Balancimi i ngarkesës me AWS ELB

Në një gjuhë të thjeshtë, në Target Groups ne specifikojmë instancat ku do të vijë trafiku. Nëse në Classic Load Balancer ju thjesht i lidhni instancat menjëherë me balancuesin, në Application Load Balancer ju së pari:

  • krijoni Load Balancer;
  • krijoni grupin e Target;
  • drejtoni nëpër porta apo rregulla Load Balancer në grupet e duhura të Target;
  • në grupet e Target caktoni instancat.

Kjo logjikë funksionimi mund të duket më e ndërlikuar, por në të vërtetë është më e përshtatshme.

Komponenti tjetër është — Rregullat e Listener (rregullat për ruterim). Kjo ka të bëjë vetëm me Application Load Balancer. Nëse në Network Load Balancer ju thjesht krijoni një Listener, dhe ai dërgon trafikun në një grup konkret Target, në Application Load Balancer gjithçka është më argëtuese dhe më e përshtatshme..

Balancimi i ngarkesës me AWS ELB

Tani le të themi disa fjalë për komponentin tjetër — Elastic IP (adresa statike për NLB). Nëse rregullat për ruterim të rregullave të Listener kishin të bënë vetëm me Application Load Balancer, atëherë Elastic IP ka të bëjë vetëm me Network Load Balancer.

Të krijojmë një Network Load Balancer:

Balancimi i ngarkesës me AWS ELB

Balancimi i ngarkesës me AWS ELB

Dhe pikërisht gjatë procesit të krijimit do të shohim që na jepet mundësia të zgjedhim Elastic IP:

Balancimi i ngarkesës me AWS ELB

Elastic IP ofron një IP të vetëm, që mund të lidhet me instance të ndryshme EC2 në kohë. Nëse një instance EC2 ka një Elastic IP dhe ky instance përfundon ose ndalet, mund ta lidhni menjëherë një instance të re EC2 me adresën Elastic IP. Kështu, aplikacioni juaj aktual nuk do të ndalet, pasi aplikacionet do të shohin të njëjtën IP, edhe nëse EC2 aktual ka ndryshuar.

Këtu është një tjetër rast përdorimi në lidhje me arsyen se përse nevojitet Elastic IP. Shihni, ne shohim 3 IP adresë, por ato nuk do të qëndrojnë këtu përherë:

Balancimi i ngarkesës me AWS ELB

Amazon i ndryshon ato me kalimin e kohës, mund ta bëjë këtë çdo 60 sekonda (por në praktikë, natyrisht, më rrallë). Kështu, adresat IP mund të ndryshojnë. Dhe në rastin e Network Load Balancer, ju siç duket mund të lidheni mbi IP dhe ta përmendni atë në rregullat tuaja, politikat etj.

Balancimi i ngarkesës me AWS ELB

Dërgojmë përfundime

ELB siguron shpërndarjen e automatizuar të trafikut të hyrshëm në disa objekte qëllim (kontejnerë, instanca Amazon EC2, IP-adresa dhe funksione Lambda). ELB ka aftësinë për të shpërndarë trafikun me një ngarkesë të ndryshueshme, si brenda një zone disponueshmërie, ashtu edhe midis disa zonave të disponueshmërisë. Përdoruesi mund të zgjidhë nga tre lloje balancuesish, që ofrojnë si disponueshmëri të lartë, ashtu edhe automatizim dhe mbrojtje të mirë. Të gjitha këto janë të rëndësishme për të garantuar që aplikacionet tuaja të jenë rezistente ndaj dështimeve.

Avantazhet kryesore:

  • disponueshmëri e lartë. Në marrëveshjen e shërbimit përfshihet 99,99% disponueshmëri për balancuesin e ngarkesës. Për shembull, disa zona të disponueshmërisë sigurojnë që trafiku të përpunohet vetëm nga objektet funksionale. Nënkuptimi është se mund të balancosh ngarkesën dhe në të gjithë rajonin, duke drejtuar trafikun në objektet e qëllimit funksional në zona të ndryshme të disponueshmërisë;
  • siguria. ELB punon me Amazon VPC, duke ofruar mundësi të ndryshme për sigurimin e sigurisë — këto përfshijnë menaxhimin e integruar të certifikatave, autentikimin e përdoruesve dhe çdecryptimin SSL/TLS. E gjithë kjo siguron menaxhim të centralizuar dhe fleksibël të cilësimeve TLS;
  • elasticiteti. ELB mund të përballojë ndryshimet e papritura në trafikun e rrjetit. Një integërim i thellë me Auto Scaling i jep aplikacionit burime të mjaftueshme kur ngarkesa ndryshon, pa nevojë për ndërhyrje manuale;
  • fleksibiliteti. Mund të përdoren adresat IP për të drejtuar kërkesat në objektet e synuara të aplikacioneve tuaja. Kjo garanton fleksibilitet në virtualizimin e aplikacioneve të synuara, duke lejuar që të dislokohen disa aplikacione në një instancë. Duke qenë se aplikacionet mund të përdorin një port rrjeti dhe kanë grupe të veçanta sigurie, ndërveprimi midis aplikacioneve lehtësohet, kur kemi një arkitekturë, për shembull, të bazuar në mjegullat mikro;
  • monitorimi dhe auditimi. Mund të monitoroni aplikacionet në kohë reale duke përdorur funksionet e Amazon CloudWatch. Bëhet fjalë për metrikat, log-et, dhe ndjekjen e kërkesave. Me fjalë të thjeshta, do të jeni në gjendje të identifikoni problemet dhe të përcaktoni mjaft saktë ngushticat e performancës;
  • balancimi hibrid i ngarkesës. Mundësia e balancimit të ngarkesës ndërmjet burimeve lokale dhe AWS duke përdorur të njëjtin balancues e lehtëson migrimin ose zgjerimin e aplikacioneve lokale në cloud. Po ashtu, përpunimi i dështimeve me ndihmën e cloud-it bëhet më i lehtë.

Nëse ju interesojnë detajet, ja disa lidhje të dobishme nga faqja zyrtare e Amazon:

  1. Elastic Load Balancing.
  2. Mundësitë e Elastic Load Balancing.

Burimi: habr.com

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster