Slodzes balansēŔana ar AWS ELB

Sveiki visiem! Kurss sākas Å”odien "AWS izstrādātājiem", saistÄ«bā ar kuru rÄ«kojām atbilstoÅ”u tematisku vebināru, kas bija veltÄ«ts ELB apskatam. Mēs apskatÄ«jām balansētāju veidus un izveidojām vairākus EC2 gadÄ«jumus ar balansētāju. Mēs pētÄ«jām arÄ« citus lietoÅ”anas piemērus.

Slodzes balansēŔana ar AWS ELB

Pēc vebināra noklausÄ«Å”anās, JÅ«s:

  • saprast, kas ir AWS slodzes lÄ«dzsvaroÅ”ana;
  • pārzināt elastÄ«gā slodzes lÄ«dzsvara un tā sastāvdaļu veidus;
  • savā praksē izmantojiet AWS ELB.

Kāpēc jums tas vispār ir jāzina?

  • noderÄ«gi, ja plānojat kārtot AWS sertifikācijas eksāmenus;
  • tas ir vienkārÅ”s veids, kā sadalÄ«t slodzi starp serveriem;
  • Tas ir vienkārÅ”s veids, kā pievienot Lambda savam pakalpojumam (ALB).

NovadÄ«ja atvērto nodarbÄ«bu RiÅ”ats Teregulovs, sistēmu inženieris mārketinga uzņēmumā vietņu izstrādei un atbalstam.

Ievads

Kas ir elastÄ«gais slodzes balansētājs, var redzēt zemāk esoÅ”ajā diagrammā, kurā parādÄ«ts vienkārÅ”s piemērs:

Slodzes balansēŔana ar AWS ELB

Load Balancer pieņem pieprasÄ«jumus un izplata tos dažādās instancēs. Mums ir viens atseviŔķs gadÄ«jums, ir Lambda funkcijas un ir AutoScaling grupa (serveru grupa).

AWS ELB veidi

1. Apskatīsim galvenos veidus:

Klasisks slodzes balansētājs. Pats pirmais AWS slodzes balansētājs darbojas gan OSI 4., gan 7. slānÄ«, atbalstot HTTP, HTTPS, TCP un SSL. Tas nodroÅ”ina pamata slodzes lÄ«dzsvaroÅ”anu vairākos Amazon EC2 gadÄ«jumos un darbojas gan pieprasÄ«juma, gan savienojuma lÄ«menÄ«. Atvērsim to (izcelts pelēkā krāsā):

Slodzes balansēŔana ar AWS ELB

Å is balansētājs tiek uzskatÄ«ts par novecojuÅ”u, tāpēc to ieteicams lietot tikai noteiktos gadÄ«jumos. Piemēram, lietojumprogrammām, kas tika izveidotas EC2 Classic tÄ«klā. Principā neviens neliedz mums to izveidot:

Slodzes balansēŔana ar AWS ELB

2. Tīkla slodzes balansētājs. Piemērots lielai slodzei, darbojas OSI Layer 4 (var izmantot EKS un ECS), tiek atbalstīti TCP, UDP un TLS.

TÄ«kla slodzes lÄ«dzsvarotājs novirza trafiku uz mērÄ·iem Amazon VPC un spēj apstrādāt miljoniem pieprasÄ«jumu sekundē ar Ä«paÅ”i zemu latentumu. Turklāt tas ir optimizēts, lai apstrādātu satiksmes modeļus ar pēkŔņām un mainÄ«gām slodzēm.

3. Lietojumprogrammas slodzes līdzsvarotājs. Darbojas 7. slānī, ir Lambda atbalsts, atbalsta galvenes un ceļa līmeņa noteikumus, atbalsta HTTP un HTTPS.
NodroÅ”ina uzlabotu pieprasÄ«jumu marÅ”rutÄ“Å”anu, kas vērsta uz modernu arhitektÅ«ru, tostarp mikropakalpojumu un konteineru, lietojumprogrammu piegādi. Novirza trafiku uz Amazon VPC mērÄ·iem, pamatojoties uz pieprasÄ«juma saturu.

Daudziem lietotājiem Application Load Balancer bija pirmā izvēle, lai aizstātu Classic Load Balancer, jo TCP nav tik izplatīts kā HTTP.

Izveidosim arī to, kā rezultātā mums jau būs divi slodzes balansētāji:

Slodzes balansēŔana ar AWS ELB

Slodzes līdzsvara sastāvdaļas

Kopējās slodzes līdzsvara sastāvdaļas (kopīgs visiem balansieriem):

  • Piekļuves reÄ£istrÄ“Å”anas politika

ā€” jÅ«su ELB piekļuves žurnāli. Lai veiktu iestatÄ«jumus, varat doties uz sadaļu Apraksts un atlasÄ«t pogu Rediģēt atribÅ«tus:

Slodzes balansēŔana ar AWS ELB

Pēc tam mēs norādām S3Bucket - Amazon objektu krātuvi:

Slodzes balansēŔana ar AWS ELB

  • Shēma

ā€” iekŔējais vai ārējais balansētājs. Jautājums ir par to, vai jÅ«su LoadBalancer ir jāsaņem ārējās adreses, lai tas bÅ«tu pieejams no ārpuses, vai arÄ« tas var bÅ«t jÅ«su iekŔējais slodzes balansētājs;

  • DroŔības grupas

ā€” piekļuves kontrole balansētājam. BÅ«tÄ«bā tas ir augsta lÄ«meņa ugunsmÅ«ris.

Slodzes balansēŔana ar AWS ELB

Slodzes balansēŔana ar AWS ELB

  • ApakÅ”tÄ«kli

ā€” apakÅ”tÄ«kli jÅ«su VPC (un attiecÄ«gi pieejamÄ«bas zonā). ApakÅ”tÄ«kli tiek norādÄ«ti izveides laikā. Ja VPC ierobežo reÄ£ions, tad apakÅ”tÄ«klus ierobežo pieejamÄ«bas zonas. Veidojot Load Balancer, labāk to izveidot vismaz divos apakÅ”tÄ«klos (palÄ«dz, ja rodas problēmas ar vienu PieejamÄ«bas zonu);

  • KlausÄ«tāji

ā€” jÅ«su balansÄ“Å”anas protokoli. Kā minēts iepriekÅ”, Classic Load Balancer tas var bÅ«t HTTP, HTTPS, TCP un SSL, tÄ«kla slodzes lÄ«dzsvarotājam - TCP, UDP un TLS, lietojumprogrammu slodzes lÄ«dzsvarotājam - HTTP un HTTPS.

Klasiskā slodzes līdzsvara piemērs:

Slodzes balansēŔana ar AWS ELB

Bet Lietojumprogrammas slodzes lÄ«dzsvarotājā mēs redzam nedaudz atŔķirÄ«gu saskarni un kopumā atŔķirÄ«gu loÄ£iku:

Slodzes balansēŔana ar AWS ELB

Load Balancer v2 komponenti (ALB un NLB)

Tagad apskatÄ«sim tuvāk 2. versijas balansētājus Application Load Balancer un Network Load Balancer. Å iem balansētājiem ir savas komponentu funkcijas. Piemēram, parādÄ«jās tāds jēdziens kā mērÄ·a grupas - gadÄ«jumi (un funkcijas). Pateicoties Å”im komponentam, mums ir iespēja norādÄ«t, uz kuru no mērÄ·a grupām vēlamies novirzÄ«t trafiku.

Slodzes balansēŔana ar AWS ELB

Slodzes balansēŔana ar AWS ELB

VienkārÅ”i izsakoties, mērÄ·a grupās mēs norādām gadÄ«jumus, kuros tiks saņemta trafika. Ja tajā paŔā klasiskajā slodzes balansētājā jÅ«s vienkārÅ”i nekavējoties pievienojat intensitāti lÄ«dzsvarotājam, tad lietojumprogrammā Load Balancer vispirms:

  • izveidot Load Balancer;
  • izveidot mērÄ·a grupu;
  • tieÅ”i caur nepiecieÅ”amajiem portiem vai Load Balancer noteikumiem uz nepiecieÅ”amajām mērÄ·a grupām;
  • sadaļā MērÄ·a grupas jÅ«s pieŔķirat gadÄ«jumus.

Å Ä« darbÄ«bas loÄ£ika var Ŕķist sarežģītāka, bet patiesÄ«bā tā ir ērtāka.

Nākamais komponents ir KlausÄ«tāju noteikumi (marÅ”rutÄ“Å”anas noteikumi). Tas attiecas tikai uz Application Load Balancer. Ja programmā Network Load Balancer jÅ«s vienkārÅ”i izveidojat uztvērēju un tas nosÅ«ta trafiku uz noteiktu mērÄ·a grupu, tad programmā Application Load Balancer viss jautrāk un ērtāk.

Slodzes balansēŔana ar AWS ELB

Tagad teiksim dažus vārdus par nākamo komponentu - ElastÄ«ga IP (statiskās adreses NLB). Ja klausÄ«tāja kārtulu marÅ”rutÄ“Å”anas kārtulas ietekmēja tikai lietojumprogrammu slodzes balansētāju, tad elastÄ«gais IP ietekmēja tikai tÄ«kla slodzes balansētāju.

Izveidosim tīkla slodzes balansētāju:

Slodzes balansēŔana ar AWS ELB

Slodzes balansēŔana ar AWS ELB

Un tikai izveides procesā mēs redzēsim, ka mums ir dota iespēja izvēlēties elastīgo IP:

Slodzes balansēŔana ar AWS ELB

ElastÄ«gā IP nodroÅ”ina vienu IP adresi, ko laika gaitā var saistÄ«t ar dažādiem EC2 gadÄ«jumiem. Ja EC2 instancei ir elastÄ«ga IP adrese un Ŕī instance tiek pārtraukta vai apturēta, varat nekavējoties saistÄ«t jaunu EC2 gadÄ«jumu ar elastÄ«go IP adresi. Tomēr jÅ«su paÅ”reizējā lietojumprogramma nepārtrauks darboties, jo lietojumprogrammām joprojām ir redzama viena un tā pati IP adrese, pat ja ir mainÄ«jusies reālā EC2.

Å”eit ir cits lietoÅ”anas gadÄ«jums par tēmu, kāpēc ir nepiecieÅ”ams elastÄ«gais IP. Skatieties, mēs redzam 3 IP adreses, taču tās Å”eit nepaliks mūžīgi:

Slodzes balansēŔana ar AWS ELB

Amazon tos maina laika gaitā, varbÅ«t ik pēc 60 sekundēm (bet praksē, protams, retāk). Tas nozÄ«mē, ka IP adreses var mainÄ«ties. Un Network Load Balancer gadÄ«jumā varat vienkārÅ”i piesaistÄ«t IP adresi un norādÄ«t to savos noteikumos, politikās utt.

Slodzes balansēŔana ar AWS ELB

Izdarīt secinājumus

ELB nodroÅ”ina automātisku ienākoŔās trafika sadali pa vairākiem mērÄ·iem (konteineriem, Amazon EC2 gadÄ«jumiem, IP adresēm un Lambda funkcijām). ELB spēj sadalÄ«t trafiku ar mainÄ«gu slodzi gan vienā pieejamÄ«bas zonā, gan vairākās pieejamÄ«bas zonās. Lietotājs var izvēlēties no trÄ«s veidu balansieriem, kas nodroÅ”ina augstu pieejamÄ«bu, automātisko mērogoÅ”anu un labu aizsardzÄ«bu. Tas viss ir svarÄ«gi, lai nodroÅ”inātu jÅ«su lietojumprogrammu kļūdu toleranci.

Galvenie plusi:

  • augsta pieejamÄ«ba. Pakalpojuma lÄ«gums paredz 99,99% slodzes balansētāja pieejamÄ«bu. Piemēram, vairākas pieejamÄ«bas zonas nodroÅ”ina, ka trafiku apstrādā tikai veseli objekti. Faktiski jÅ«s varat lÄ«dzsvarot slodzi visā reÄ£ionā, novirzot trafiku uz veseliem mērÄ·iem dažādās pieejamÄ«bas zonās;
  • droŔība. ELB strādā ar Amazon VPC, nodroÅ”inot dažādas droŔības iespējas ā€“ integrētu sertifikātu pārvaldÄ«bu, lietotāju autentifikāciju un SSL/TLS atÅ”ifrÄ“Å”anu. Tas viss kopā nodroÅ”ina centralizētu un elastÄ«gu TLS iestatÄ«jumu pārvaldÄ«bu;
  • elastÄ«ba. ELB var apstrādāt pēkŔņas izmaiņas tÄ«kla trafikā. Un dziļa integrācija ar automātisko mērogoÅ”anu nodroÅ”ina lietojumprogrammai pietiekami daudz resursu, ja mainās slodze, neprasot manuālu iejaukÅ”anos;
  • elastÄ«ba. Varat izmantot IP adreses, lai novirzÄ«tu pieprasÄ«jumus uz savu lietojumprogrammu mērÄ·iem. Tas nodroÅ”ina elastÄ«bu, virtualizējot mērÄ·a lietojumprogrammas, tādējādi nodroÅ”inot iespēju mitināt vairākas lietojumprogrammas vienā instancē. Tā kā lietojumprogrammas var izmantot vienu tÄ«kla portu un tām ir atseviŔķas droŔības grupas, saziņa starp lietojumprogrammām ir vienkārÅ”ota, ja mums ir, piemēram, uz mikropakalpojumiem balstÄ«ta arhitektÅ«ra;
  • uzraudzÄ«ba un audits. Varat pārraudzÄ«t lietojumprogrammas reāllaikā, izmantojot Amazon CloudWatch funkcijas. Mēs runājam par metriku, žurnāliem, pieprasÄ«jumu izsekoÅ”anu. VienkārÅ”i sakot, jÅ«s varēsiet diezgan precÄ«zi noteikt problēmas un precÄ«zi noteikt darbÄ«bas vājās vietas;
  • hibrÄ«da slodzes balansÄ“Å”ana. Iespēja slodzes lÄ«dzsvaru starp lokālajiem resursiem un AWS, izmantojot vienu un to paÅ”u slodzes balansētāju, ļauj ērti migrēt vai paplaÅ”ināt lokālās lietojumprogrammas uz mākoni. Izmantojot mākoni, tiek vienkārÅ”ota arÄ« kļūmju apstrāde.

Ja jÅ«s interesē sÄ«kāka informācija, Å”eit ir vēl dažas noderÄ«gas saites no oficiālās Amazon vietnes:

  1. ElastÄ«gā slodzes balansÄ“Å”ana.
  2. ElastÄ«gās slodzes lÄ«dzsvaroÅ”anas iespējas.

Avots: www.habr.com

Pievieno komentāru