Koormuse tasakaalustamine AWS ELB abil

Tere kĂ”igile! TĂ€na algab kursus AWS arendajatele, seoses sellega korraldasime vastava temaatilise veebinari, mis oli pĂŒhendatud ELB ĂŒlevaatele. Arutasime tasakaalustajaid ja lĂ”ime mitmeid EC2 instantsse koos tasakaalustajaga. Samuti uurisime teisi kasutamisnĂ€iteid.

Koormuse tasakaalustamine AWS ELB abil

Veebinari kuulamisel, te mÔistate:

  • mida tĂ€hendab AWS Load Balancing;
  • Elastic Load Balancer'i tĂŒĂŒpe ja selle komponente;
  • kuidas kasutada AWS ELB-d oma praktikas.

Miks seda Ôppida:

  • kasulik, kui plaanite AWS sertifitseerimise eksameid sooritada;
  • see on lihtne viis koormuse jaotamiseks serverite vahel;
  • see on lihtne viis Lambda lisamiseks teie teenusesse (ALB).

Avatud Ă”ppetunni viis lĂ€bi Rishat Teregulov, sĂŒsteemiinsener turundusettevĂ”ttes, mis tegeleb veebisaitide arendamise ja hooldamisega.

Sissejuhatus

Elastic Load Balancer'iga saate tutvuda alloleval diagrammil, kus on esitatud lihtsaim nÀide:

Koormuse tasakaalustamine AWS ELB abil

Tasakaalustaja vĂ”tab vastu pĂ€ringud ja jaotab need instantside vahel. Meil on ĂŒks eraldi instants, Lambda-funktsioonid ja AutoScaling-grupp (serverite grupp).

AWS ELB tĂŒĂŒbid

1. Vaatleme pÔhitooteid:

Classic Load Balancer. AWSi esimene koormuse tasakaalustaja, töötab nii 4. kui 7. OSI tasemel, toetab HTTP, HTTPS, TCP ja SSL. See tagab pĂ”hilise koormuse tasakaalu mitme Amazon EC2 instantsi vahel ja töötab nii pĂ€ringute kui ka ĂŒhenduste tasemel. Avame selle (esiletĂ”stetud hallina):

Koormuse tasakaalustamine AWS ELB abil

See tasakaalustaja on vananenud, seetĂ”ttu soovitatakse seda kasutada vaid erandjuhtudel. NĂ€iteks rakenduste puhul, mis on ehitatud EC2‑Classic vĂ”rgus. Praktiliselt ei takista meid keegi selle loomist:

Koormuse tasakaalustamine AWS ELB abil

2. Network Load Balancer. Sobib suure koormuse jaoks, töötab 4. OSI tasemel (vÔib kasutada EKS-is ja ECS-is), toetab TCP, UDP ja TLS.

Network Load Balancer suunab liikluse sihtobjektidele Amazon VPC-s ja suudab töödelda miljoneid pÀringuid sekundis ÀÀrmiselt madalate latentsusaegadega. Lisaks on see optimeeritud Àkiliste ja muutuva koormuse liikluse mudelite töötlemiseks.

3. Application Load Balancer. Töötab 7. tasemel, toetab Lambda't, toetab reegleid pealkirjade ja teede tasemel, toetatakse HTTP ja HTTPS.
Tagab taotlusel pÔhineva rakenduste edastamise laiemat marsruutimist, sealhulgas mikroteenuseid ja konteinerite arhitektuure. Suunab liikluse sihtobjektidesse Amazon VPC, tuginedes pÀringu sisule.

Paljudele kasutajatele on Application Load Balancer asendanud Classic Load Balancer, kuna TCP ei ole nii levinud vÔrreldes HTTP-ga.

Loome selle ka, mille tulemuseks on juba kaks koormuse tasandajat:

Koormuse tasakaalustamine AWS ELB abil

Koormuse tasandamise komponendid

Üksikud koormuse tasandamise komponendid (omane kĂ”igile koormuse tasandajatele):

  • Access Logging Policy

— teie juurdepÀÀsulood ELB-le. Seadeteks mine, klĂ”psa Descriptions ja vali nupp 'Muuda atribuute':

Koormuse tasakaalustamine AWS ELB abil

SeejĂ€rel mĂ€rgime S3Bucket — Amazoni objektide salvestusteenus:

Koormuse tasakaalustamine AWS ELB abil

  • Schema

— sisemine vĂ”i vĂ€line koormuse tasandaja. Idee on selles, et kas teie LoadBalancer peab saama vĂ€list aadressi, et olla vĂ€ljastpoolt kergesti ligipÀÀsetav, vĂ”i vĂ”ib see olla teie sisemine koormuse tasandaja;

  • Turvagrupp

— juurdepÀÀsukoontrolind koormuse tasandajale. Tegelikult on see kĂ”rge taseme tulemĂŒĂŒr.

Koormuse tasakaalustamine AWS ELB abil

Koormuse tasakaalustamine AWS ELB abil

  • AlalĂ”igud

— alajaotused teie VPC-s (ja vastavalt ka kĂ€ttesaadavuspiirkondades). Alajaotused mÀÀratakse loomisel. Kui VPC on piirkondadega piiratud, on alajaotused piiratud kĂ€ttesaadavuspiirkondadega. Kui loote Load Balancer'i, on parem luua see vĂ€hemalt kahes alajaotuses (see aitab, kui ĂŒhega kĂ€ttesaadavuspiirkonnast tekib probleeme);

  • Listeners

— teie Load Balancer'i protokollid. Nagu varem mainitud, vĂ”ib Classic Load Balancer'i puhul see olla HTTP, HTTPS, TCP ja SSL; Network Load Balancer'i puhul — TCP, UDP ja TLS; Application Load Balancer'i puhul — HTTP ja HTTPS.

NĂ€ide Classic Load Balancer'ist:

Koormuse tasakaalustamine AWS ELB abil

Kuid Application Load Balancer'is nĂ€eme veidi teistsugust liidest ja ĂŒldiselt erinevat loogikat:

Koormuse tasakaalustamine AWS ELB abil

Load Balancer v2 komponentide (ALB ja NLB) kohta

NĂŒĂŒd vaatame lĂ€hemalt Application Load Balancer'i ja Network Load Balancer'i teise versiooni. Nendel Load Balancer'itel on oma komponentide eripĂ€rad. NĂ€iteks on tekkinud selline mĂ”isted nagu Target Groups — instantsid (ja funktsioonid). TĂ€nu sellele komponendile saame suunata liiklust soovitud Target Groups'ile.

Koormuse tasakaalustamine AWS ELB abil

Koormuse tasakaalustamine AWS ELB abil

Lihtsamalt öeldes mÀÀrame sihtrĂŒhmades instantsid, kuhu liiklus suunatakse. Kui Classic Load Balanceris ĂŒhendate instantsid lihtsalt otse tasakaalustajale, siis Application Load Balanceris peate esmalt:

  • looma Load Balancer'i;
  • looma sihtrĂŒhma;
  • suunama vajalikud portide vĂ”i reeglite jĂ€rgi Load Balancer'i Ă”igetele sihtrĂŒhmadele;
  • sihtrĂŒhmades mÀÀrama instantsid.

Selline töölogika vÔib tunduda keerulisem, kuid tegelikult on see mugavam.

JĂ€rgmine komponent — Listener reeglid (suunamisreeglid). See puudutab ainult Application Load Balancer'i. Kui Network Load Balancer'is loote lihtsalt Listener'i ja see suunab liikluse konkreetsele sihtrĂŒhmale, siis Application Load Balancer'is on kĂ”ik Ă”busam ja mugavam..

Koormuse tasakaalustamine AWS ELB abil

NĂŒĂŒd ĂŒtleme paar sĂ”na jĂ€rgmise komponendi kohta — Elastic IP (staatilised aadressid NLB jaoks). Kui Listener reeglite suunamisreeglid puudutasid ainult Application Load Balancer'it, siis Elastic IP puudutab ainult Network Load Balancer'it.

Loome Network Load Balancer'i:

Koormuse tasakaalustamine AWS ELB abil

Koormuse tasakaalustamine AWS ELB abil

Ja just loomise protsessis nÀeme, et meile antakse vÔimalus valida Elastic IP:

Koormuse tasakaalustamine AWS ELB abil

Elastne IP pakub ainulaadset IP-aadressi, mida saab aja jooksul siduda erinevate EC2 eksemplaridega. Kui EC2 eksemplaril on elastne IP-aadress ja see eksemplar on lÔpetatud vÔi peatatud, saab kohe siduda uue EC2 eksemplari elastse IP-aadressiga. Sel juhul ei lÔpetata teie praeguse rakenduse töö, kuna rakendused nÀevad ikka sama IP-aadressi, isegi kui tegelik EC2 on muutunud.

Siin on veel ĂŒks kasutusjuht kui rÀÀkida sellest, miks elastne IP vajalik on. Vaadake, nĂ€eme 3 IP-aadressi, kuid need ei jÀÀ siia igavesti:

Koormuse tasakaalustamine AWS ELB abil

Amazon muudab neid aja jooksul, vÔidakse muuta iga 60 sekundi jÀrel (kuid praktikas palju harvem). See tÀhendab, et IP-aadressid vÔivad muutuda. Ja Network Load Balancer'i puhul saate just siduda IP-aadressi ning kasutada seda oma reeglites, poliitikates jms.

Koormuse tasakaalustamine AWS ELB abil

Teeme jÀreldusi

ELB tagab automaatse jaotuse saabumise liiklust mitme sihtobjekti vahel (konteinerid, Amazon EC2 instantsid, IP-aadressid ja Lambda funktsioonid). ELB suudab jaotada liiklust, mis muutub sĂ”ltuvalt koormusest, nii ĂŒhes kĂ€ttesaadavuse tsoonis kui ka mitme kĂ€ttesaadavuse tsooni vahel. Kasutaja vĂ”ib valida kolme erineva tasakaalustaja vahel, mis tagavad nii kĂ”rge kĂ€ttesaadavuse, automaatselt skaleerumise kui ka hea kaitse. KĂ”ik see on oluline, et tagada teie rakenduste talitluspidevust.

Peamised eelised:

  • kĂ”rge kĂ€ttesaadavus. Teenuse tasemelepingus on ette nĂ€htud 99,99% kĂ€ttesaadavus koormuse tasakaalustajale. NĂ€iteks tagavad mitmed kĂ€ttesaadavuse tsoonid, et liiklust töötleb ainult töökorras objekti. Tegelikult on vĂ”imalik koormust tasakaalustada kogu piirkonnas, suunates liiklust ainult töökorras sihtobjektidele erinevates kĂ€ttesaadavuse tsoonides.
  • turvalisus. ELB töötab Amazon VPC-s, pakkudes erinevaid turvahalduse vĂ”imalusi — sealhulgas integreeritud sertifikaadihaldus, kasutajate autentimine ja SSL/TLS dekrĂŒpteerimine. KĂ”ik see tagab tsentraliseeritud ja paindliku TLS-i seadistamise haldamise;
  • paindlikkus. ELB suudab töötleda Ă€kilisi muutusi vĂ”rgu liikluses. SĂŒva integratsioon Auto Scaling-iga annab rakendusele piisavad ressursid koormuse muutumisel, ilma et oleks vajalik kĂ€sitsi sekkuda;
  • paindlikkus. IP-aadresse saab kasutada pĂ€ringute suunamiseks teie rakenduste sihtobjektidele. See tagab paindlikkuse sihtrakenduste virtualiseerimisel, vĂ”imaldades mitu rakendust ĂŒhel instantsil. Kuna rakendused saavad kasutada ĂŒhte vĂ”rguporti ja neil on eraldi turgrupid, lihtsustab see rakendustevahelist suhtlemist, kui meil on nĂ€iteks mikroteenusel pĂ”hinev arhitektuur;
  • monitooring ja audit. Rakendusi saab jĂ€lgida reaalajas, kasutades Amazon CloudWatch funktsioone. Juttu on mÔÔdikestest, logidest ja pĂ€ringute jĂ€lgimisest. Lihtsustatult öeldes, saate tuvastada probleeme ja ĂŒsna tĂ€pselt mÀÀrata jĂ”udluse kitsaskohad;
  • hĂŒbriidne koormuse tasakaalustus. Koormuse tasakaalustamine kohalike ressursside ja AWS vahel sama tasakaalustajaga lihtsustab kohalike rakenduste migreerimist vĂ”i laiendamist pilve. Samuti lihtsus ka rikete töötlemine pilve abil.

Kui soovite rohkem teavet, on siin veel paar kasulikku linki Amazon'i ametlikult veebisaidilt:

  1. Elastic Load Balancing.
  2. Elastic Load Balancing vÔimalused.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster