Echilibrare elastică a sarcinii în AWS

Publicat: 2022-08-10

Elastic Load Balancing este inima aplicațiilor din AWS. Aflați totul despre ELB, tipurile și caracteristicile sale în această postare.

În prezent, majoritatea organizațiilor necesită gestionarea și creșterea scalabilității, disponibilității și toleranței la erori ale aplicațiilor lor. AWS oferă o soluție excelentă pentru aceasta, adică serviciul Elastic Load Balancing. Acest serviciu constă într-un echilibrator de încărcare care poate distribui sarcinile de lucru în multe resurse de calcul, cum ar fi serverele virtuale.

echilibrarea sarcinii

Serviciile Load Balancing ne permit să configuram verificări de sănătate pentru a monitoriza starea de sănătate a resurselor de calcul. De asemenea, ne permite să descarcăm munca de criptare și decriptare către echilibratorul de încărcare, astfel încât resursele de calcul să se poată concentra pe activitatea lor principală.

Elastic Load Balancing (ELB): Prezentare generală

ELB este un serviciu care distribuie automat traficul de intrare în mai multe instanțe EC2. Acest lucru ajută la atingerea unor niveluri mai ridicate de toleranță la erori în aplicațiile dumneavoastră, oferind capacitatea de echilibrare a sarcinii pentru distribuirea traficului aplicației.

Echilibrare elastică a sarcinii
Sursa: AWS

Mai mult decât atât, Elastic Load Balancing poate detecta instanțe EC2 nesănătoase și, de îndată ce o instanță EC2 se dovedește a fi nesănătoasă, ELB încetează să trimită trafic către aceasta până când devine din nou sănătoasă. Clienții pot activa cu ușurință Elastic Load Balancing într-o singură sau mai multe zone de disponibilitate pentru o performanță mai consistentă a aplicației.

Caracteristici elastice de echilibrare a sarcinii

Securitate

Puteți gestiona și crea grupuri de securitate asociate cu Elastic Load Balancing în Amazon Virtual Private Cloud (VPC) pentru a oferi opțiuni suplimentare de rețea și securitate pentru Application Load Balancer și Classic Load Balancer.

Valabilitate ridicată

Un Elastic Load Balancer este foarte disponibil. Puteți distribui traficul de intrare către aplicația dvs. către instanțe EC2 într-o singură zonă de disponibilitate sau mai multe zone de disponibilitate.

Debit ridicat

Elastic Load Balancers sunt concepute pentru a gestiona traficul pe măsură ce crește și pot încărca și echilibra milioane de solicitări/sec. De asemenea, poate face față unor vârfuri bruște de trafic.

Controale de sănătate

Cu Elastic Load Balancing, puteți menține starea de sănătate a instanțelor dvs. EC2 sub control și nu riscați să trimiteți trafic către o instanță nesănătoasă.

Monitorizare operațională și logare

Amazon CloudWatch raportează valorile aplicației și Classic Load Balancer, cum ar fi numărul de erori, tipurile de erori, latența solicitărilor, numărul de solicitări și multe altele.

Ștergeți protecția

Puteți activa Protecția la ștergere pe un Elastic Load Balancer pentru a preveni ștergerea accidentală.

video YouTube

Componentele echilibratoarelor elastice de sarcină

Ascultătorii

Trebuie să configurați unul sau mai mulți ascultători pentru echilibrul de încărcare. Este un proces care verifică cererile de conectare. Este configurat cu un protocol și un port pentru conexiunile pentru conexiunile front-end (client la load balancer) și un protocol pentru conexiunile back-end (load balancer la instanța back-end).

Protocoalele acceptate pentru echilibrarea sarcinii elastice includ:

  • HTTPS (HTTP securizat)
  • TCP
  • SSL (TCP securizat)

Echilibrarea greutății

Un echilibrator de încărcare servește drept „polițist de trafic” în fața serverelor dvs., distribuind cererile clienților pe toate serverele echipate pentru a le gestiona într-un mod care maximizează viteza și utilizarea capacității și asigură că niciun server nu este suprasolicitat, ceea ce poate duce la degradarea performanței.

Echilibratorul de încărcare direcționează traficul către serverele active în cazul în care un server este offline. Echilibratorul de încărcare inițiază cereri către un nou server atunci când este adăugat la grupul de servere.

Grupuri țintă

Solicitările sunt direcționate către una sau mai multe ținte înregistrate folosind fiecare grup țintă. Definiți un grup țintă și condiții atunci când creați fiecare regulă de ascultător. Când o condiție de regulă este îndeplinită, traficul este direcționat către grupul țintă corespunzător.

Pentru diferite tipuri de solicitări, puteți face grupuri țintă separate. De exemplu, creați grupuri țintă diferite pentru cererile către microservicii și cererile generice ale aplicației dvs.

Tipuri de echilibrare de sarcină

Aplicație Load Balancer

Application Load Balancer le permite dezvoltatorilor să configureze și să direcționeze traficul primit de la utilizatorii finali către aplicațiile care rulează pe cloud-ul public AWS.

Echilibrarea sarcinii este crucială într-un mediu cloud cu numeroase aplicații web. Un echilibrator de încărcare asigură că niciun server nu este supraîncărcat prin împărțirea traficului de rețea și a fluxurilor de informații între mai multe servere. Acest lucru îmbunătățește experiența utilizatorului, crește receptivitatea și disponibilitatea aplicațiilor și se poate apăra împotriva atacurilor distribuite de refuz de serviciu (DDoS).

video YouTube

Accesul la aplicațiile web a crescut semnificativ în ultimii ani. Cu toate acestea, creșterile neașteptate ale traficului pot încetini serviciile online și pot reduce disponibilitatea. Aplicația Load Balancer distribuie eficient sarcina rețelei în cloud public pentru a crește stabilitatea și disponibilitatea.

Aplicația Load Balancer va direcționa traficul către o țintă sănătoasă din resursa cloud numai dacă o aplicație problematică ajunge la nivelul 7. WebSocket este un alt protocol acceptat de Application Load Balancer pentru conectivitate sporită cu serverul de bază.

Site-urile web și aplicațiile mobile care rulează în containere sau pe instanțe AWS EC2 beneficiază cel mai mult de utilizarea unui echilibrator de încărcare a aplicațiilor. Într-o arhitectură de microservicii, Application Load Balancer poate fi utilizat ca echilibrator intern de încărcare în fața instanțelor EC2 sau a containerelor Docker care implementează un anumit serviciu. În plus, poate fi folosit în fața unei aplicații API RESTful.

Numeroase servicii AWS sunt compatibile cu echilibrarea încărcării aplicației, inclusiv:

  • Scalare automată AWS
  • Serviciul Amazon Elastic Container
  • AWS CloudFormation
  • AWS CodeDeploy
  • Manager de certificate AWS

Load Balancer clasic

Traficul de la aplicațiile primite este împărțit în numeroase instanțe EC2 în diferite zone de disponibilitate folosind un echilibrator de încărcare clasic. Un echilibrator de încărcare clasic acționează ca singurul punct de contact al clientului. Acest lucru face aplicația dvs. mai accesibilă. Fără a afecta fluxul general de solicitări către aplicația dvs., puteți adăuga/elimina instanțe din echilibrul de încărcare clasic pe măsură ce nevoile dvs. se schimbă.

Un ascultător folosește protocolul și portul pe care le setați pentru a monitoriza solicitările de conectare ale clientului. Ascultătorul transmite apoi cereri către una sau mai multe instanțe înregistrate folosind protocolul și portul configurat. Vă modificați echilibratorul de încărcare adăugând unul sau mai mulți ascultători.

Pentru a vă asigura că echilibratorul de încărcare direcționează numai cererile către instanțe sănătoase, puteți configura verificări de sănătate, care sunt utilizate pentru a urmări starea instanțelor înregistrate.

Echilibratorul de încărcare clasic, în mod implicit, distribuie uniform traficul între zonele de disponibilitate pe care le activați pentru echilibrul de încărcare. Activați echilibrarea încărcăturii pe mai multe zone pe echilibratorul de încărcare pentru a distribui traficul între toate instanțele înregistrate din toate zonele de disponibilitate activate.

echilibrarea sarcinii

Tipuri de echilibrare de încărcare clasică:

  • Echilibratoare de încărcare clasice orientate către Internet: un echilibrator de încărcare orientat către Internet poate direcționa cererile de la clienți către instanțe EC2 înregistrate cu echilibratorul de încărcare prin Internet, datorită domeniului său DNS care poate fi rezolvat public. Echilibratorul dvs. de încărcare primește un nume DNS public când este creat, pe care clienții îl pot folosi pentru a face solicitări. Serverele DNS traduc numele DNS al echilibratorului de încărcare în adresele IP publice ale nodurilor de echilibrare a încărcăturii. Adresele IP private conectează fiecare nod de echilibrare a sarcinii la instanțele back-end.
  • Echilibratoare de încărcare clasice interne: nodurile unui echilibrator de încărcare intern au doar adrese IP personale. Numele DNS al unui echilibrator de încărcare intern poate fi rezolvat public la adresele IP ale nodurilor. Drept urmare, cererile pot fi direcționate numai de echilibratorii de încărcare interni de la clienții care au acces la VPC-ul echilibratorului de încărcare.

Network Load Balancer

Echilibratorul de încărcare a rețelei funcționează la al patrulea strat al modelului OSI. Poate face față milioanelor de solicitări pe secundă.

Echilibratorul de încărcare alege o țintă din grupul țintă pentru regula implicită după primirea unei cereri de conectare. Încearcă să stabilească o conexiune TCP la ținta selectată pe portul indicat în setările ascultatorului.

video YouTube

Pentru a crește toleranța la erori a aplicației dvs., puteți activa mai multe zone de disponibilitate, un serviciu plătit în AWS pentru echilibrarea sarcinii de rețea. Dacă o zonă de disponibilitate scade, aplicația dvs. nu va înceta să funcționeze.

Pentru traficul TCP, o țintă este selectată folosind un algoritm de hash de flux bazat pe protocol, portul sursă, adresa IP sursă, portul destinație, adresa IP destinație și numărul de secvență TCP.

Conexiunile TCP ale clienților au numere de secvență și porturi sursă diferite, astfel încât conexiunile sunt direcționate către alte ținte. Fiecare conexiune TCP unică este direcționată către o singură țintă pe durata conexiunii.

Gateway Load Balancer

Dispozitivele dvs. virtuale terțe pot fi implementate, scalate și gestionate pur și simplu cu ajutorul Gateway Load Balancer. Acesta oferă o singură poartă de acces pentru împărțirea traficului între numeroase dispozitive virtuale și pentru scalarea acestora în sus sau în jos, ca răspuns la cerere. Acest lucru elimină potențialele puncte de defecțiune din rețeaua dvs. și crește disponibilitatea.

video YouTube

Dispozitivele virtuale de la producători independenți pot fi găsite, testate și achiziționate direct prin AWS Marketplace. Indiferent dacă doriți să continuați să lucrați cu furnizorii dvs. actuali sau să încercați ceva nou, această experiență integrată accelerează procesul de implementare, astfel încât să puteți beneficia mai rapid de dispozitivele dvs. virtuale.

Beneficiile gateway load Balancer:

  • Implementarea mai rapidă a dispozitivelor virtuale terțe.
  • Scalați-vă dispozitivele virtuale, gestionând în același timp costurile.
  • Îmbunătățiți disponibilitatea dispozitivului virtual

Cuvinte finale

Elastic Load Balancers reprezintă o parte critică a multor infrastructuri realizate pe AWS. Caracteristicile pe care le obținem de la un ELB vă fac gestionarea infrastructurii mai ușoară. Elastic Load Balancing este o metodă testată și adevărată de răspândire a cererilor de aplicații și de trafic web pe mai multe ținte sau instanțe.

Puteți scala automat diferitele sarcini de lucru folosind Elastic Load Balancer. Am acoperit toate tipurile de echilibrare de încărcare furnizate de AWS și le puteți utiliza conform cerințelor aplicației dvs.