Koormuse tasakaalustamine AWS ELB abil

Tere kĂ”igile! TĂ€na algab kursus „AWS arendajatele“, seoses sellega korraldasime vastava temaatilise veebiseminari, mis oli pĂŒhendatud ELB ĂŒlevaatele. Arutasime tasakaalustajaid ja lĂ”ime mitu EC2 instantsi tasakaalustajaga. Uurisime ka muid kasutusnĂ€ite.

Koormuse tasakaalustamine AWS ELB abil

Veebiseminari kuulamisel, te saate:

  • aru, mis on AWS Load Balancing;
  • teada Elastic Load Balancer'i tĂŒĂŒbid ja selle koostisosad;
  • kasutada AWS ELB-d oma praktikas.

Miks on seda osata:

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

AvaĂ”pet viis lĂ€bi Rishat Teregulov, sĂŒsteeminsener turundusettevĂ”ttes, mis tegeleb veebilehtede arendamise ja hooldamisega.

Sissejuhatus

Mida Elastic Load Balancer endast kujutab, saab nÀha alloleval diagrammil, kus on toodud lihtsaim nÀide:

Koormuse tasakaalustamine AWS ELB abil

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

AWS ELB tĂŒĂŒbid

1. Vaadakem pĂ”hisihtide tĂŒĂŒpe:

Classic Load Balancer. AWS-i esimene tasakaalustaja, töötab nii 4. kui ka 7. tasemel OSI, toetatakse HTTP, HTTPS, TCP ja SSL. See tagab baastaseme koormuse tasakaalu mitme Amazon EC2 instansi vahel ja töötab nii pĂ€ringute tasemel kui ka ĂŒhenduse tasemel. Avame selle (halliks esile tĂ”stetud):

Koormuse tasakaalustamine AWS ELB abil

Seda tasakaalustajat peetakse aegunuks, seetĂ”ttu on soovitatav seda kasutada vaid teatud juhtudel. NĂ€iteks rakenduste jaoks, mis on loodud EC2‑Classic vĂ”rgus. Üldiselt ei takista meid selle loomine:

Koormuse tasakaalustamine AWS ELB abil

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

Network Load Balancer suunab liikluse sihtiesemetele Amazon VPC-s ja suudab töödelda miljoneid pÀringuid sekundis vÀga madala latentsusega. Lisaks on see optimeeritud ootamatute ja muutuva koormuse liiklusmallide töötlemiseks.

3. Application Load Balancer. Töötab 7. tasemel, toetab Lambda't, toetab reegleid pÀiste ja teede tasemel, toetatakse HTTP ja HTTPS.
Tagab vÔimaldab arenenud pÀringute suunamist, mis keskendub rakenduste kohaletoimetamisele, mis on loodud kaasaegsete arhitektuuride, sealhulgas mikroteenuste ja konteinerite, baasil. Suunab liiklust sihtobjektide poole Amazon VPC-s, tuginedes pÀringu sisule.

Paljude kasutajate jaoks asendas Application Load Balancer esmalt Classic Load Balancer, kuna TCP ei ole nii levinud kui HTTP.

Loome selle ka, mille tulemusena on meil juba kaks koormuse tasakaalustajat:

Koormuse tasakaalustamine AWS ELB abil

Koormuse tasakaalustaja komponendid

Üldised koormuse tasakaalustaja komponendid (kĂ”ikidele koormuse tasakaalustajatele iseloomulikud):

  • Access Logging Policy

— teie ligipÀÀsulogid ELB-le. Seadistuste tegemiseks liikuda Descriptionsse ja valida nupp „Muuda atribuute“:

Koormuse tasakaalustamine AWS ELB abil

SeejĂ€rel mĂ€rkige S3Bucket — Amazoni objektide salvestus:

Koormuse tasakaalustamine AWS ELB abil

  • Scheme

— sisemine vĂ”i vĂ€line koormuse tasakaalustaja. Idee seisneb selles, kas teie LoadBalancer peab saama vĂ€liseid aadresse, et olla vĂ€ljastpoolt kergesti ligipÀÀsetav, vĂ”i vĂ”ib see olla teie sisemine tasakaalustaja;

  • Turvagrupped

— juurdepÀÀsu kontroll koormuse tasakaalustajale. Sisuliselt on see kĂ”rgema taseme tulemĂŒĂŒr.

Koormuse tasakaalustamine AWS ELB abil

Koormuse tasakaalustamine AWS ELB abil

  • AlamvĂ”rgud

— alamvĂ”rgud teie VPC-s (vastavalt ka kĂ€ttesaadavuse tsoonidele). AlamvĂ”rke mÀÀratakse loomisel. Kui VPC on piirkondlikult piiratud, siis on AlamvĂ”rgud piiratud tsoonide kĂ€tte saadavuse jĂ€rgi. Kui loote koormuse tasakaalustajat, on parem luua see vĂ€hemalt kahe alamvĂ”rgu kaudu (see aitab, kui koos kĂ€ttesaadavuse tsooniga tekivad probleemid);

  • Kuulajad

— teie koormuse tasakaalustaja protokollid. Nagu juba varem mainitud, on Classic Load Balancer jaoks need HTTP, HTTPS, TCP ja SSL, Network Load Balancer jaoks — TCP, UDP ja TLS, Application Load Balancer jaoks — HTTP ja HTTPS.

NĂ€ide Classic Load Balancer'ist:

Koormuse tasakaalustamine AWS ELB abil

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

Koormuse tasakaalustamine AWS ELB abil

Load Balancer v2 (ALB ja NLB) komponendid

NĂŒĂŒd vaatame lĂ€hemalt Application Load Balancer ja Network Load Balancer teise versiooni tasakaalustajaid. Neil tasakaalustajatel on oma komponentide eripĂ€rad. NĂ€iteks on tekkinud selline mĂ”iste nagu Target Groups — instantsid (ja funktsioonid). Selle komponendi tĂ”ttu on meil vĂ”imalus mÀÀrata, millise Target Groupi poole me soovime liiklust suunata.

Koormuse tasakaalustamine AWS ELB abil

Koormuse tasakaalustamine AWS ELB abil

Lihtsustatult öeldes, Target Groups'is mĂ€rgime instantsid, kuhu liiklus tuleb. Kui Classic Load Balancer'is ĂŒhendate instantsid otse tasakaalustajaga, siis Application Load Balancer'is peate esmalt:

  • looma Load Balancer'i;
  • looma Target-grupi;
  • suunates vajalikesse Target Groups Ă”igete portide vĂ”i Load Balancer'i reeglite kaudu;
  • Target-gruppides mÀÀrate instantsid.

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

JĂ€rgmine komponent — Listener reeglid (marsruuterreeglid). See puudutab vaid Application Load Balancer'i. Kui Network Load Balancer'is loote lihtsalt Listener'i, mis suunab liikluse konkreetsele Target-gruppile, siis Application Load Balancer'is on kĂ”ik naljakam ja mugavam.

Koormuse tasakaalustamine AWS ELB abil

NĂŒĂŒd rÀÀgime paar sĂ”na jĂ€rgmise komponendi kohta — Elastic IP (staatilised aadressid NLB jaoks). Kui Listener reeglite marsruutimine puudutas vaid 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 loomise protsessis nÀeme, et meil on vÔimalus valida Elastic IP:

Koormuse tasakaalustamine AWS ELB abil

Elastic IP pakub ĂŒhte IP-aadressi, mida saab aja jooksul siduda erinevate EC2 instantsidega. Kui EC2 instantsil on Elastic IP-aadress ja see instants lĂ”petatakse vĂ”i peatatakse, saab uue EC2 instantsi kohe siduda Elastic IP-aadressiga. Sel viisil ei katkestata teie praeguse rakenduse tööd, kuna rakendused nĂ€evad sama IP-aadressi, isegi kui tegelik EC2 on muutunud.

Siin veel ĂŒks kasutusjuht Elastic IP vajaduse kohta. Vaadake, me nĂ€eme 3 IP-aadressi, kuid need ei jÀÀ siia igavesti:

Koormuse tasakaalustamine AWS ELB abil

Amazon muudab neid aja jooksul, vÔib seda teha iga 60 sekundi jÀrel (kuid praktikas muidugi harvem). See tÀhendab, et IP-aadressid vÔivad muutuda. Ja Network Load Balancer'i puhul saate just siduda IP-aadressi ja toimetada seda oma reeglites, poliitikates jne.

Koormuse tasakaalustamine AWS ELB abil

Teeme jÀreldusi

ELB tagab sissetuleva liikluse automaatse jaotamise mitmele sihtobjektile (konteinerid, Amazon EC2 instantsid, IP-aadressid ja Lambda funktsioonid). ELB suudab jaotada liikluse muutuva koormuse korral nii ĂŒhes saadavuspiirkonnas kui ka mitme saadavuspiirkonna vahel. Kasutaja vĂ”ib valida kolme tĂŒĂŒbi vahel, mis tagavad nii kĂ”rge saadavuse, automaatse skaleerimise kui ka korraliku kaitse. KĂ”ik see on oluline teie rakenduste tĂ”rkeotsingute tagamiseks.

Peamised eelised:

  • kĂ”rge saadavus. Teenuste kokkuleppes on ette nĂ€htud 99,99% juurdepÀÀsetavust koormuse jaoturile. NĂ€iteks mitmed kĂ€ttesaadavuse tsoonid tagavad, et liiklus suunatakse ainult töötavatele objektidele. Tegelikult saab koormust jaotada kogu piirkonnas, suunates liiklust töötavatele sihtobjektidele erinevates kĂ€ttesaadavuse tsoonides;
  • turvalisus. ELB töötab koos Amazon VPC-ga, pakkudes erinevaid turvafunktsioone — sealhulgas integreeritud sertifikaatide haldamine, kasutaja autentimine ja SSL/TLS-i krĂŒpto. K together-s pakub see tsentraliseeritud ja paindlikku TLS-i seadistuste haldust;
  • paindlikkus. ELB suudab kĂ€sitleda ootamatuid vĂ”rgu liikluse muutusi. SĂŒvaintegratsioon Auto Scalingiga annab rakendusele piisavalt ressursse, kui koormus muutub, ilma et oleks vajalik kĂ€sitsi sekkumine;
  • paindlikkus. IP-aadresse saab kasutada rakenduste sihtobjektide pĂ€ringute suunamiseks. See tagab paindlikkuse sihtrakenduste virtualiseerimisel, vĂ”imaldades mitme rakenduse majutamist ĂŒhel instantsil. Kuna rakendused saavad kasutada ĂŒhte vĂ”rguporti ja neil on eraldi turgruppe, lihtsustatakse rakenduste vahelist koostööd, kui meil on arhitektuur nĂ€iteks mikroteenuste baasil;
  • jĂ€lgimine ja audit. Rakenduste jĂ€lgimist saab teha reaalajas, kasutades Amazon CloudWatch funktsioone. See hĂ”lmab mÔÔdikute, logide ja pĂ€ringute jĂ€lgimist. Lihtsalt öeldes, suudate probleemid avastada ja pigem tĂ€pselt tuvastada jĂ”udluse kitsaskohti;
  • hĂŒbriidne koormuse jaotamine. Koormuse jaotamise vĂ”imalus kohalike ressursside ja AWS vahel sama jaoturi abil lihtsustab kohalike rakenduste migratsiooni vĂ”i laiendamist pilve. Samuti lihtsustab see pilve kasutavat tĂ”rgete kĂ€itlemist.

Kui teid huvitavad ĂŒksikasjad, siin on veel paar kasulikku linki Amazon’i ametlikult veebilehelt:

  1. Elastic Load Balancing.
  2. Elastic Load Balancing funktsioonid.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster