Apkrovos balansavimas su AWS ELB

Sveiki visi! Kursas prasideda šiandien „AWS kūrėjams“, dėl kurio surengėme atitinkamą teminį internetinį seminarą, skirtą ELB peržiūrai. Pažiūrėjome į balansierių tipus ir sukūrėme keletą EC2 egzempliorių su balansytuvu. Taip pat ištyrėme kitus naudojimo pavyzdžius.

Apkrovos balansavimas su AWS ELB

Išklausę webinaro, Tu darysi:

  • suprasti, kas yra AWS apkrovos balansavimas;
  • žinoti Elastic Load Balancer tipus ir jo komponentus;
  • naudokite AWS ELB savo praktikoje.

Kodėl iš viso reikia tai žinoti?

  • naudinga, jei planuojate laikyti AWS sertifikavimo egzaminus;
  • tai paprastas būdas paskirstyti apkrovą tarp serverių;
  • Tai paprastas būdas pridėti Lambda prie savo paslaugos (ALB).

Vedė atvirą pamoką Rišatas Teregulovas, rinkodaros įmonės sistemų inžinierius, skirtas svetainių kūrimui ir palaikymui.

įvedimas

Kas yra elastinis apkrovos balansuotojas, galite pamatyti toliau pateiktoje diagramoje, kurioje parodytas paprastas pavyzdys:

Apkrovos balansavimas su AWS ELB

„Load Balancer“ priima užklausas ir paskirsto jas tarp atvejų. Turime vieną atskirą egzempliorių, yra „Lambda“ funkcijos ir yra „AutoScaling“ grupė (serverių grupė).

AWS ELB tipai

1. Pažvelkime į pagrindinius tipus:

Klasikinis apkrovos balansuotojas. Pats pirmasis AWS balansuotojas, veikia tiek 4, tiek 7 OSI sluoksniuose, palaikomi HTTP, HTTPS, TCP ir SSL. Tai suteikia pagrindinį apkrovos balansavimą keliuose Amazon EC2 egzemplioriuose ir veikia tiek užklausos, tiek ryšio lygiais. Atidarykime (paryškinta pilka spalva):

Apkrovos balansavimas su AWS ELB

Šis balansyras laikomas pasenusiu, todėl jį rekomenduojama naudoti tik tam tikrais atvejais. Pavyzdžiui, programoms, kurios buvo sukurtos EC2-Classic tinkle. Iš esmės niekas netrukdo mums jo kurti:

Apkrovos balansavimas su AWS ELB

2. Tinklo apkrovos balansavimo priemonė. Tinka dideliems darbo krūviams, veikia OSI Layer 4 (gali būti naudojamas EKS ir ECS), palaikomi TCP, UDP ir TLS.

„Network Load Balancer“ nukreipia srautą į „Amazon VPC“ taikinius ir gali apdoroti milijonus užklausų per sekundę su itin maža delsa. Be to, jis yra optimizuotas valdyti eismo modelius su staigiomis ir kintančiomis apkrovomis.

3. Programos apkrovos balansavimo priemonė. Veikia 7 sluoksniu, turi Lambda palaikymą, palaiko antraštės ir kelio lygio taisykles, palaiko HTTP ir HTTPS.
Teikia išplėstinį užklausų nukreipimą, daugiausia dėmesio skiriant šiuolaikinėms architektūroms sukurtoms programoms, įskaitant mikro paslaugas ir konteinerius, teikimą. Pagal užklausos turinį nukreipia srautą į Amazon VPC taikinius.

Daugeliui vartotojų „Application Load Balancer“ buvo pirmasis pasirinkimas, pakeičiantis „Classic Load Balancer“, nes TCP nėra toks įprastas kaip HTTP.

Sukurkime ir jį, dėl to jau turėsime du apkrovos balansuotojus:

Apkrovos balansavimas su AWS ELB

Apkrovos balanso komponentai

Įprasti apkrovos balanso komponentai (bendras visiems balansuotojams):

  • Prieigos registravimo politika

- jūsų ELB prieigos žurnalai. Norėdami nustatyti nustatymus, eikite į Aprašas ir pasirinkite mygtuką „Redaguoti atributus“:

Apkrovos balansavimas su AWS ELB

Tada nurodome S3Bucket - Amazon objektų saugyklą:

Apkrovos balansavimas su AWS ELB

  • Schema

— vidinis arba išorinis balansas. Esmė ta, ar jūsų „LoadBalancer“ turi gauti išorinius adresus, kad būtų pasiekiamas iš išorės, ar tai gali būti jūsų vidinis apkrovos balansavimo įrankis;

  • Apsaugos grupės

— prieigos prie balansyro kontrolė. Iš esmės tai yra aukšto lygio ugniasienė.

Apkrovos balansavimas su AWS ELB

Apkrovos balansavimas su AWS ELB

  • Potinkliai

— potinkliai jūsų VPC viduje (ir atitinkamai prieinamumo zona). Potinkliai nurodomi kuriant. Jei VPC riboja regionas, tada potinklius riboja pasiekiamumo zonos. Kuriant Load Balancer, geriau jį sukurti bent dviejuose potinkliuose (padeda, jei kyla problemų dėl vienos prieinamumo zonos);

  • Klausytojai

- jūsų balansavimo protokolai. Kaip minėta anksčiau, Klasikiniam apkrovos balansavimui tai gali būti HTTP, HTTPS, TCP ir SSL, tinklo apkrovos balansavimo priemonėms - TCP, UDP ir TLS, taikomųjų programų apkrovos balansavimo priemonėms - HTTP ir HTTPS.

Klasikinio apkrovos balansavimo priemonės pavyzdys:

Apkrovos balansavimas su AWS ELB

Tačiau „Application Load Balancer“ matome šiek tiek kitokią sąsają ir apskritai skirtingą logiką:

Apkrovos balansavimas su AWS ELB

„Load Balancer v2“ komponentai (ALB ir NLB)

Dabar atidžiau pažvelkime į 2 versijos balansavimo priemones Application Load Balancer ir Network Load Balancer. Šie balansuotojai turi savo komponentų savybes. Pavyzdžiui, atsirado tokia sąvoka kaip tikslinės grupės – egzemplioriai (ir funkcijos). Dėl šio komponento turime galimybę nurodyti, į kurią tikslinę grupę norime nukreipti srautą.

Apkrovos balansavimas su AWS ELB

Apkrovos balansavimas su AWS ELB

Paprastais žodžiais tariant, tikslinėse grupėse nurodome atvejus, kai ateis srautas. Jei tame pačiame klasikiniame apkrovos balansavimo įrenginyje jūs tiesiog iš karto prijungiate intensyvumą prie balansyro, tada „Application Load Balancer“ pirmiausia:

  • sukurti apkrovos balansavimo priemonę;
  • sukurti tikslinę grupę;
  • nukreipti per reikiamus prievadus arba Load Balancer taisykles į reikiamas tikslines grupes;
  • Tikslinėse grupėse priskiriate egzempliorius.

Ši veikimo logika gali atrodyti sudėtingesnė, bet iš tikrųjų ji yra patogesnė.

Kitas komponentas yra Klausytojo taisyklės (maršruto parinkimo taisyklės). Tai taikoma tik „Application Load Balancer“. Jei tinklo apkrovos balansavimo priemonėje tiesiog sukuriate klausytoją ir jis siunčia srautą į konkrečią tikslinę grupę, tada programoje Application Load Balancer viskas smagiau ir patogiau.

Apkrovos balansavimas su AWS ELB

Dabar pakalbėkime keletą žodžių apie kitą komponentą - Elastingas IP (statiniai NLB adresai). Jei klausytojo taisyklių maršruto taisyklės paveikė tik programos apkrovos balansavimo priemonę, elastinis IP paveikė tik tinklo apkrovos balansavimo priemonę.

Sukurkime tinklo apkrovos balansavimo priemonę:

Apkrovos balansavimas su AWS ELB

Apkrovos balansavimas su AWS ELB

Ir tik kūrimo proceso metu pamatysime, kad mums suteikiama galimybė pasirinkti Elastic IP:

Apkrovos balansavimas su AWS ELB

Elastinis IP suteikia vieną IP adresą, kuris laikui bėgant gali būti susietas su skirtingais EC2 egzemplioriais. Jei EC2 egzempliorius turi elastinį IP adresą ir tas egzempliorius nutraukiamas arba sustabdytas, galite iš karto susieti naują EC2 egzempliorių su elastingu IP adresu. Tačiau jūsų dabartinė programa nenustos veikti, nes programos vis tiek mato tą patį IP adresą, net jei tikrasis EC2 pasikeitė.

Čia kitas naudojimo atvejis tema, kodėl reikalingas elastinis IP. Žiūrėkite, matome 3 IP adresus, bet jie čia neliks amžinai:

Apkrovos balansavimas su AWS ELB

Amazon juos keičia laikui bėgant, gal kas 60 sekundžių (bet praktiškai, žinoma, rečiau). Tai reiškia, kad IP adresai gali keistis. O „Network Load Balancer“ atveju galite tiesiog susieti IP adresą ir nurodyti jį savo taisyklėse, politikoje ir pan.

Apkrovos balansavimas su AWS ELB

Daryti išvadas

ELB užtikrina automatinį gaunamo srauto paskirstymą tarp kelių objektų (konteinerių, Amazon EC2 egzempliorių, IP adresų ir Lambda funkcijų). ELB gali paskirstyti srautą su skirtingomis apkrovomis tiek vienoje prieinamumo zonoje, tiek keliose pasiekiamumo zonose. Vartotojas gali rinktis iš trijų tipų balansavimo priemonių, kurios užtikrina aukštą pasiekiamumą, automatinį mastelį ir gerą apsaugą. Visa tai svarbu siekiant užtikrinti jūsų programų atsparumą gedimams.

Pagrindiniai pranašumai:

  • didelis prieinamumas. Paslaugos sutartyje numatyta, kad apkrovos balansavimo priemonė yra 99,99 % prieinama. Pavyzdžiui, kelios prieinamumo zonos užtikrina, kad srautą apdorotų tik sveiki objektai. Tiesą sakant, galite subalansuoti apkrovą visame regione, nukreipdami srautą į sveikus objektus skirtingose ​​pasiekiamumo zonose;
  • saugumas. ELB dirba su Amazon VPC, suteikdama įvairias saugumo galimybes – integruotą sertifikatų valdymą, vartotojo autentifikavimą ir SSL/TLS iššifravimą. Visi kartu užtikrina centralizuotą ir lankstų TLS nustatymų valdymą;
  • elastingumas. ELB gali valdyti staigius tinklo srauto pokyčius. O gili integracija su automatiniu mastelio keitimu suteikia programai pakankamai išteklių, jei keičiasi apkrova, nereikalaujant rankinio įsikišimo;
  • lankstumas. Galite naudoti IP adresus, kad nukreiptumėte užklausas į savo programų tikslus. Tai suteikia lankstumo virtualizuojant tikslines programas, taip suteikiant galimybę viename egzemplioriuje talpinti kelias programas. Kadangi programos gali naudoti vieną tinklo prievadą ir turėti atskiras saugos grupes, ryšys tarp programų yra supaprastintas, kai turime, tarkime, mikropaslaugomis pagrįstą architektūrą;
  • stebėsena ir auditas. Naudodami „Amazon CloudWatch“ funkcijas galite stebėti programas realiuoju laiku. Kalbame apie metrikas, žurnalus, užklausų sekimą. Paprastais žodžiais tariant, galėsite gana tiksliai nustatyti problemas ir nustatyti veiklos kliūtis;
  • hibridinis apkrovos balansavimas. Galimybė apkrovos balansą tarp vietinių išteklių ir AWS naudojant tą patį apkrovos balansavimo priemonę leidžia lengvai perkelti arba išplėsti vietines programas į debesį. Gedimų valdymas taip pat supaprastinamas naudojant debesį.

Jei jus domina detalės, čia yra dar keletas naudingų nuorodų iš oficialios „Amazon“ svetainės:

  1. Elastingas apkrovos balansavimas.
  2. Elastinės apkrovos balansavimo galimybės.

Šaltinis: www.habr.com

Добавить комментарий