Mag-load ng Balancing sa AWS ELB

Kamusta kayong lahat! Magsisimula ang kurso ngayon "AWS para sa mga Developer", kaugnay ng kung saan nagdaos kami ng kaukulang thematic webinar na nakatuon sa pagsusuri sa ELB. Tiningnan namin ang mga uri ng balancer at gumawa ng ilang EC2 instance na may balancer. Pinag-aralan din namin ang iba pang mga halimbawa ng paggamit.

Mag-load ng Balancing sa AWS ELB

Pagkatapos makinig sa webinar, Ikaw ay:

  • maunawaan kung ano ang AWS Load Balancing;
  • alamin ang mga uri ng Elastic Load Balancer at mga bahagi nito;
  • gamitin ang AWS ELB sa iyong pagsasanay.

Bakit kailangan mong malaman ito sa lahat?

  • kapaki-pakinabang kung nagpaplano kang kumuha ng mga pagsusulit sa sertipikasyon ng AWS;
  • ito ay isang simpleng paraan upang ipamahagi ang load sa pagitan ng mga server;
  • Ito ay isang simpleng paraan upang magdagdag ng Lambda sa iyong serbisyo (ALB).

Nagsagawa ng bukas na aralin Rishat Teregulov, systems engineer sa isang kumpanya ng marketing para sa pagbuo at suporta ng website.

Pagpapakilala

Ano ang isang Elastic Load Balancer ay makikita sa diagram sa ibaba, na nagpapakita ng isang simpleng halimbawa:

Mag-load ng Balancing sa AWS ELB

Tumatanggap ang Load Balancer ng mga kahilingan at ipinamamahagi ang mga ito sa lahat ng pagkakataon. Mayroon kaming isang hiwalay na pagkakataon, mayroong mga function ng Lambda at mayroong isang pangkat ng AutoScaling (isang pangkat ng mga server).

Mga Uri ng AWS ELB

1. Tingnan natin ang mga pangunahing uri:

Klasikong Load Balancer. Ang pinakaunang load balancer mula sa AWS, ay gumagana sa parehong OSI Layer 4 at Layer 7, na sumusuporta sa HTTP, HTTPS, TCP at SSL. Nagbibigay ito ng pangunahing pagbalanse ng pagkarga sa maraming mga pagkakataon sa Amazon EC2 at gumagana sa parehong antas ng kahilingan at koneksyon. Buksan natin ito (naka-highlight sa kulay abo):

Mag-load ng Balancing sa AWS ELB

Ang balancer na ito ay itinuturing na lipas na, kaya inirerekomenda na gamitin lamang sa ilang mga kaso. Halimbawa, para sa mga application na binuo sa EC2‑Classic na network. Sa prinsipyo, walang pumipigil sa amin sa paglikha nito:

Mag-load ng Balancing sa AWS ELB

2. Network Load Balancer. Angkop para sa mabibigat na workload, gumagana sa OSI Layer 4 (maaaring magamit sa EKS at ECS), TCP, UDP at TLS ay suportado.

Niruruta ng Network Load Balancer ang trapiko sa mga target sa isang Amazon VPC at may kakayahang magproseso ng milyun-milyong kahilingan kada segundo na may napakababang latency. Bukod pa rito, na-optimize ito upang mahawakan ang mga pattern ng trapiko na may biglaan at nagbabagong pag-load.

3. Application Load Balancer. Gumagana sa layer 7, may suporta sa Lambda, sumusuporta sa mga panuntunan sa antas ng header at path, sumusuporta sa HTTP at HTTPS.
Nagbibigay ng advanced na pagruruta ng kahilingan na nakatuon sa paghahatid ng mga application na binuo sa mga modernong arkitektura, kabilang ang mga microservice at container. Nagdidirekta ng trapiko sa mga target sa Amazon VPC batay sa nilalaman ng kahilingan.

Para sa maraming user, ang Application Load Balancer ang unang pagpipilian upang palitan ang Classic Load Balancer, dahil ang TCP ay hindi kasingkaraniwan ng HTTP.

Gawin din natin ito, bilang resulta kung saan magkakaroon na tayo ng dalawang load balancer:

Mag-load ng Balancing sa AWS ELB

Mga Bahagi ng Balanse sa Pag-load

Mga Karaniwang Bahagi ng Balanse sa Pag-load (karaniwan sa lahat ng tagabalanse):

  • I-access ang Patakaran sa Pag-log

β€” ang iyong mga log ng pag-access sa ELB. Upang gumawa ng mga setting, maaari kang pumunta sa Paglalarawan at piliin ang button na "I-edit ang mga katangian":

Mag-load ng Balancing sa AWS ELB

Pagkatapos ay tinukoy namin ang S3Bucket - Amazon object storage:

Mag-load ng Balancing sa AWS ELB

  • Scheme

- panloob o panlabas na balanse. Ang punto ay kung ang iyong LoadBalancer ay dapat makatanggap ng mga panlabas na address upang ma-access mula sa labas, o maaari ba itong maging iyong internal load balancer;

  • Mga Pangkat sa Seguridad

β€” kontrol sa pag-access sa balancer. Sa pangkalahatan, ito ay isang mataas na antas ng firewall.

Mag-load ng Balancing sa AWS ELB

Mag-load ng Balancing sa AWS ELB

  • Mga Subnet

β€” mga subnet sa loob ng iyong VPC (at, nang naaayon, availability zone). Tinukoy ang mga subnet sa panahon ng paggawa. Kung ang mga VPC ay nililimitahan ayon sa rehiyon, ang mga Subnet ay limitado ng mga availability zone. Kapag gumagawa ng Load Balancer, mas mabuting gawin ito sa hindi bababa sa dalawang subnet (tumutulong kung may mga problema sa isang Availability Zone);

  • Mga tagapakinig

β€” ang iyong mga balancer protocol. Gaya ng nabanggit kanina, para sa Classic Load Balancer maaari itong HTTP, HTTPS, TCP at SSL, para sa Network Load Balancer - TCP, UDP at TLS, para sa Application Load Balancer - HTTP at HTTPS.

Halimbawa para sa Classic Load Balancer:

Mag-load ng Balancing sa AWS ELB

Ngunit sa Application Load Balancer nakikita namin ang isang bahagyang naiibang interface at sa pangkalahatan ay naiibang lohika:

Mag-load ng Balancing sa AWS ELB

Mga bahagi ng Load Balancer v2 (ALB at NLB)

Ngayon tingnan natin ang bersyon 2 balancer Application Load Balancer at Network Load Balancer. Ang mga balancer na ito ay may sariling mga tampok na bahagi. Halimbawa, lumitaw ang gayong konsepto bilang Mga Target na Grupo - mga pagkakataon (at mga function). Salamat sa bahaging ito, mayroon kaming pagkakataong tukuyin kung alin sa mga Target na Grupo ang gusto naming idirekta ang trapiko.

Mag-load ng Balancing sa AWS ELB

Mag-load ng Balancing sa AWS ELB

Sa mga simpleng salita, sa Mga Target na Grupo, tinutukoy namin ang mga pagkakataon kung saan darating ang trapiko. Kung sa parehong Classic Load Balancer ay agad mong ikinonekta ang intensity sa balancer, pagkatapos ay sa Application Load Balancer ikaw muna:

  • lumikha ng Load Balancer;
  • lumikha ng isang Target na grupo;
  • direktang sa pamamagitan ng mga kinakailangang port o mga panuntunan ng Load Balancer sa mga kinakailangang Target na Grupo;
  • sa Mga target na pangkat na magtatalaga ka ng mga instance.

Ang operating logic na ito ay maaaring mukhang mas kumplikado, ngunit sa katunayan ito ay mas maginhawa.

Ang susunod na bahagi ay Mga panuntunan ng tagapakinig (mga panuntunan para sa pagruruta). Nalalapat lang ito sa Application Load Balancer. Kung sa Network Load Balancer ay gagawa ka lang ng Listener, at nagpapadala ito ng trapiko sa isang partikular na Target group, sa Application Load Balancer lahat mas masaya at maginhawa.

Mag-load ng Balancing sa AWS ELB

Ngayon sabihin natin ang ilang mga salita tungkol sa susunod na bahagi - Nababanat na IP (mga static na address para sa NLB). Kung ang mga panuntunan sa pagruruta ng Listener ay nakaapekto lamang sa Application Load Balancer, ang Elastic IP ay nakaapekto lamang sa Network Load Balancer.

Gumawa tayo ng Network Load Balancer:

Mag-load ng Balancing sa AWS ELB

Mag-load ng Balancing sa AWS ELB

At sa panahon lamang ng proseso ng paglikha ay makikita natin na binibigyan tayo ng pagkakataong pumili ng Elastic IP:

Mag-load ng Balancing sa AWS ELB

Ang Elastic IP ay nagbibigay ng isang IP address na maaaring iugnay sa iba't ibang EC2 instance sa paglipas ng panahon. Kung ang isang EC2 instance ay may Elastic IP address at ang instance na iyon ay winakasan o itinigil, maaari mong agad na iugnay ang isang bagong EC2 instance sa isang Elastic IP address. Gayunpaman, ang iyong kasalukuyang aplikasyon ay hindi titigil sa pagtatrabaho, dahil nakikita pa rin ng mga application ang parehong IP address, kahit na ang tunay na EC2 ay nagbago.

Dito isa pang use case sa paksa kung bakit kailangan ang Elastic IP. Tingnan, nakikita natin ang 3 IP address, ngunit hindi sila mananatili dito magpakailanman:

Mag-load ng Balancing sa AWS ELB

Binabago sila ng Amazon sa paglipas ng panahon, marahil bawat 60 segundo (ngunit sa pagsasanay, siyempre, mas madalas). Nangangahulugan ito na maaaring magbago ang mga IP address. At sa kaso ng Network Load Balancer, maaari mo lamang i-bind ang isang IP address at ipahiwatig ito sa iyong mga panuntunan, patakaran, atbp.

Mag-load ng Balancing sa AWS ELB

Gumuhit ng konklusyon

Nagbibigay ang ELB ng awtomatikong pamamahagi ng papasok na trapiko sa maraming target (mga container, mga instance ng Amazon EC2, mga IP address, at mga function ng Lambda). Ang ELB ay may kakayahang ipamahagi ang trapiko na may iba't ibang mga load sa loob ng iisang Availability Zone at sa maraming Availability Zone. Maaaring pumili ang user mula sa tatlong uri ng mga balancer na nagbibigay ng mataas na kakayahang magamit, autoscaling, at mahusay na proteksyon. Ang lahat ng ito ay mahalaga upang matiyak ang fault tolerance ng iyong mga aplikasyon.

Ang pangunahing bentahe:

  • mataas na kakayahang magamit. Ipinagpapalagay ng kasunduan sa serbisyo ang 99,99% availability para sa load balancer. Halimbawa, tinitiyak ng maraming Availability Zone na ang trapiko ay pinoproseso lamang ng mga malulusog na bagay. Sa katunayan, maaari mong balansehin ang load sa buong rehiyon, na nagre-redirect ng trapiko sa malusog na mga target sa iba't ibang mga availability zone;
  • seguridad. Gumagana ang ELB sa Amazon VPC, na nagbibigay ng iba't ibang kakayahan sa seguridad - pinagsamang pamamahala ng certificate, pagpapatunay ng user, at SSL/TLS decryption. Ang lahat ng magkakasama ay nagbibigay ng sentralisado at nababaluktot na pamamahala ng mga setting ng TLS;
  • pagkalastiko. Kakayanin ng ELB ang mga biglaang pagbabago sa trapiko sa network. At ang malalim na pagsasama sa Auto Scaling ay nagbibigay sa application ng sapat na mapagkukunan kung nagbabago ang pagkarga, nang hindi nangangailangan ng manu-manong interbensyon;
  • flexibility. Maaari kang gumamit ng mga IP address upang iruta ang mga kahilingan sa mga target ng iyong mga application. Nagbibigay ito ng flexibility kapag nag-virtualize ng mga target na application, kaya nagbibigay ng kakayahang mag-host ng maramihang mga application sa isang pagkakataon. Dahil ang mga application ay maaaring gumamit ng iisang network port at may hiwalay na mga grupo ng seguridad, ang komunikasyon sa pagitan ng mga application ay pinasimple kapag mayroon tayo, halimbawa, isang microservices-based na arkitektura;
  • pagsubaybay at pag-audit. Maaari mong subaybayan ang mga application sa real time gamit ang mga feature ng Amazon CloudWatch. Pinag-uusapan natin ang mga sukatan, mga tala, pagsubaybay sa kahilingan. Sa mga simpleng salita, matutukoy mo ang mga problema at matukoy ang mga bottleneck sa pagganap nang tumpak;
  • hybrid load balancing. Ang kakayahang mag-load ng balanse sa pagitan ng mga nasa nasasakupan na mapagkukunan at AWS gamit ang parehong load balancer ay nagpapadali sa paglipat o pagpapalawak ng mga on-premise na application sa cloud. Ang paghawak ng pagkabigo ay pinasimple din gamit ang cloud.

Kung interesado ka sa mga detalye, narito ang ilang mas kapaki-pakinabang na mga link mula sa opisyal na website ng Amazon:

  1. Elastic Load Balancing.
  2. Mga kakayahan sa Elastic Load Balancing.

Pinagmulan: www.habr.com

Magdagdag ng komento