AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Сайн уу! Сургалт өнөөдөр эхэлнэ "Хөгжүүлэгчдэд зориулсан AWS", үүнтэй холбогдуулан бид ELB тоймд зориулагдсан сэдэвчилсэн вебинарыг зохион байгууллаа. Бид тэнцвэржүүлэгчийн төрлүүдийг судалж, тэнцвэржүүлэгчтэй хэд хэдэн EC2 инстанцуудыг үүсгэсэн. Бид мөн хэрэглээний бусад жишээг судалсан.

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Вебинарыг сонссоны дараа, Та:

  • AWS Load Balancing гэж юу болохыг ойлгох;
  • уян ачааллын тэнцвэржүүлэгчийн төрлүүд болон түүний бүрэлдэхүүн хэсгүүдийг мэдэх;
  • AWS ELB-ийг практик дээрээ ашигла.

Та яагаад үүнийг ерөнхийд нь мэдэх хэрэгтэй байна вэ?

  • Хэрэв та AWS сертификатын шалгалт өгөхөөр төлөвлөж байгаа бол ашигтай;
  • энэ нь серверүүдийн хооронд ачааллыг хуваарилах энгийн арга юм;
  • Энэ бол Lambda-г өөрийн үйлчилгээнд (ALB) нэмэх энгийн арга юм.

Нээлттэй хичээл хийлээ Ришат Терегулов, вэб сайт хөгжүүлэх, дэмжих маркетингийн компанид системийн инженер.

Танилцуулга

Уян ачааллыг тэнцвэржүүлэгч гэж юу болохыг энгийн жишээгээр харуулсан доорх диаграмаас харж болно.

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Load Balancer нь хүсэлтийг хүлээн авч, тохиолдлуудад түгээдэг. Бидэнд нэг тусдаа жишээ бий, Lambda функцууд байдаг ба AutoScaling бүлэг (серверүүдийн бүлэг) байдаг.

AWS ELB төрлүүд

1. Үндсэн төрлүүдийг авч үзье:

Сонгодог ачаалал тэнцвэржүүлэгч. AWS-ийн хамгийн анхны ачаалал тэнцвэржүүлэгч нь HTTP, HTTPS, TCP болон SSL-ийг дэмждэг OSI Layer 4 болон Layer 7 дээр ажилладаг. Энэ нь Amazon EC2-ийн олон тохиолдлуудад үндсэн ачааллыг тэнцвэржүүлдэг бөгөөд хүсэлт болон холболтын түвшинд ажилладаг. Үүнийг нээцгээе (саарал өнгөөр ​​тодруулсан):

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Энэ тэнцвэржүүлэгч нь хуучирсан гэж тооцогддог тул зөвхөн тодорхой тохиолдолд ашиглахыг зөвлөж байна. Жишээлбэл, EC2-Classic сүлжээнд баригдсан програмуудын хувьд. Зарчмын хувьд үүнийг бүтээхэд хэн ч саад болохгүй.

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

2. Сүлжээний ачаалал тэнцвэржүүлэгч. Их ачаалалтай ажиллахад тохиромжтой, OSI Layer 4 дээр ажилладаг (EKS болон ECS-д ашиглах боломжтой), TCP, UDP, TLS дэмждэг.

Сүлжээний ачааллыг тэнцвэржүүлэгч нь Amazon VPC-ийн зорилтот урсгалыг чиглүүлдэг бөгөөд хэт бага хоцролттой секундэд сая сая хүсэлтийг боловсруулах чадвартай. Нэмж дурдахад, энэ нь гэнэтийн болон өөрчлөгдөж буй ачаалалтай замын хөдөлгөөний хэв маягийг зохицуулахад оновчтой болсон.

3. Хэрэглээний ачаалал тэнцвэржүүлэгч. 7-р давхарга дээр ажилладаг, Lambda дэмжлэгтэй, толгой болон замын түвшний дүрмийг дэмждэг, HTTP болон HTTPS-ийг дэмждэг.
Микро үйлчилгээ, контейнер зэрэг орчин үеийн архитектур дээр суурилсан програмуудыг хүргэхэд чиглэсэн дэвшилтэт хүсэлтийн чиглүүлэлтээр хангадаг. Хүсэлтийн агуулгад үндэслэн Amazon VPC-ийн зорилтот урсгалыг чиглүүлдэг.

Олон хэрэглэгчдийн хувьд Application Load Balancer нь Сонгодог ачаалал тэнцвэржүүлэгчийг солих анхны сонголт байсан, учир нь TCP нь HTTP шиг нийтлэг биш юм.

Үүнийг бас бүтээцгээе, үүний үр дүнд бид хоёр ачаалал тэнцвэржүүлэгчтэй болно.

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Ачааллын тэнцвэрийн бүрэлдэхүүн хэсгүүд

Ачааллын тэнцвэрийн нийтлэг бүрэлдэхүүн хэсгүүд (бүх тэнцвэржүүлэгчид нийтлэг):

  • Бүртгэлийн бодлогод хандах

— таны ELB хандалтын бүртгэлүүд. Тохиргоог хийхийн тулд та Тодорхойлолт руу очоод "Атрибутыг засах" товчийг сонгоно уу.

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Дараа нь бид S3Bucket - Amazon объектын хадгалах газрыг зааж өгнө:

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

  • Схем

— дотоод болон гадаад тэнцвэржүүлэгч. Гол нь таны LoadBalancer гаднаас хандах боломжтой байхын тулд гадаад хаягийг хүлээн авах ёстой юу эсвэл энэ нь таны дотоод ачаалал тэнцвэржүүлэгч байж чадах уу;

  • Аюулгүй байдлын бүлгүүд

— тэнцвэржүүлэгч рүү нэвтрэх хяналт. Үндсэндээ энэ бол өндөр түвшний галт хана юм.

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

  • Дэд сүлжээ

- таны VPC доторх дэд сүлжээнүүд (мөн үүний дагуу ашиглах боломжтой бүс). Дэд сүлжээг үүсгэх явцад тодорхойлогддог. Хэрэв VPC нь бүс нутгаар хязгаарлагддаг бол дэд сүлжээнүүд нь бэлэн байдлын бүсээр хязгаарлагдана. Ачаалал тэнцвэржүүлэгчийг үүсгэхдээ үүнийг дор хаяж хоёр дэд сүлжээнд үүсгэх нь илүү дээр юм (нэг боломжийн бүсэд асуудал гарвал тусалдаг);

  • Сонсогчид

- таны тэнцвэржүүлэгч протоколууд. Өмнө дурьдсанчлан, Сонгодог ачаалал тэнцвэржүүлэгчийн хувьд энэ нь HTTP, HTTPS, TCP болон SSL, Сүлжээний ачаалал тэнцвэржүүлэгчийн хувьд - TCP, UDP болон TLS, Програмын ачаалал тэнцвэржүүлэгчийн хувьд - HTTP ба HTTPS байж болно.

Сонгодог ачаалал тэнцвэржүүлэгчийн жишээ:

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Гэхдээ Application Load Balancer дээр бид арай өөр интерфейс, ерөнхийдөө өөр логикийг харж байна:

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Load Balancer v2 бүрэлдэхүүн хэсгүүд (ALB болон NLB)

Одоо 2-р хувилбарын Ашиглалтын ачааллыг тэнцвэржүүлэгч болон Сүлжээний ачаалал тэнцвэржүүлэгчийг нарийвчлан авч үзье. Эдгээр тэнцвэржүүлэгчид өөрийн гэсэн бүрэлдэхүүн хэсгүүдтэй байдаг. Жишээлбэл, Зорилтот бүлгүүд гэх мэт ойлголт гарч ирэв - жишээнүүд (болон функцууд). Энэхүү бүрэлдэхүүн хэсгийн ачаар бид Зорилтот бүлгүүдийн алинд нь урсгалыг чиглүүлэхийг хүсч байгаагаа тодорхойлох боломжтой болсон.

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Энгийнээр хэлбэл, Зорилтот бүлгүүдэд бид замын хөдөлгөөн ирэх тохиолдлуудыг зааж өгдөг. Хэрэв ижил Сонгодог ачаалал тэнцвэржүүлэгч дээр та эрчим хүчийг тэнцвэржүүлэгчтэй шууд холбодог бол Аппликешн ачааллын тэнцвэржүүлэгч дээр эхлээд:

  • ачаалал тэнцвэржүүлэгч үүсгэх;
  • Зорилтот бүлэг үүсгэх;
  • шаардлагатай портууд эсвэл Ачаалал тэнцвэржүүлэгчийн дүрмээр дамжуулан шаардлагатай зорилтот бүлгүүдэд шууд дамжуулах;
  • Зорилтот бүлгүүдэд та жишээг хуваарилдаг.

Энэхүү үйлдлийн логик нь илүү төвөгтэй мэт санагдаж болох ч үнэн хэрэгтээ энэ нь илүү тохиромжтой юм.

Дараагийн бүрэлдэхүүн хэсэг нь Сонсогчийн дүрэм (чиглүүлэлтийн дүрэм). Энэ нь зөвхөн Application Load Balancer-д хамаарна. Хэрэв Network Load Balancer дээр та зүгээр л сонсогч үүсгээд тэр нь тодорхой Зорилтот бүлэгт урсгалыг илгээдэг бол Application Load Balancer дээр бүх зүйл илүү хөгжилтэй, тохиромжтой.

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Одоо дараагийн бүрэлдэхүүн хэсгийн талаар хэдэн үг хэлье - Уян хатан IP (NLB-ийн статик хаягууд). Хэрэв Сонсогч дүрмийн чиглүүлэлтийн дүрэм нь зөвхөн Аппликешн ачааллыг тэнцвэржүүлэгчид нөлөөлсөн бол уян хатан IP зөвхөн Сүлжээний ачаалал тэнцвэржүүлэгчид нөлөөлсөн.

Сүлжээний ачаалал тэнцвэржүүлэгчийг үүсгэцгээе:

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Зөвхөн үүсгэх явцад бид уян хатан IP-г сонгох боломжийг олж авах болно.

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Мэдрэмжтэй IP нь цаг хугацааны явцад өөр өөр EC2 тохиолдлуудтай холбогдож болох ганц IP хаягаар хангадаг. Хэрэв EC2 инстанс нь уян хатан IP хаягтай бөгөөд тэр инстанс нь дуусгавар болсон эсвэл зогссон бол та шинэ EC2 инстанцыг Elastic IP хаягтай шууд холбож болно. Гэсэн хэдий ч бодит EC2 өөрчлөгдсөн ч гэсэн програмууд ижил IP хаягийг хардаг тул таны одоогийн програм ажиллахаа болихгүй.

энд өөр нэг хэрэглээний тохиолдол Яагаад уян хатан IP хэрэгтэй вэ гэсэн сэдвээр. Хараач, бид 3 IP хаягийг харж байна, гэхдээ тэд энд үүрд үлдэхгүй:

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Амазон тэдгээрийг цаг хугацааны явцад, магадгүй 60 секунд тутамд өөрчилдөг (гэхдээ практик дээр мэдээж бага байдаг). Энэ нь IP хаягийг өөрчлөх боломжтой гэсэн үг юм. Сүлжээний ачаалал тэнцвэржүүлэгчийн хувьд та зүгээр л IP хаягийг холбож, дүрэм, бодлого гэх мэт зүйлдээ зааж өгч болно.

AWS ELB-тэй ачааллыг тэнцвэржүүлэх

Дүгнэлт зур

ELB нь ирж буй траффикийг олон зорилтот (контейнер, Amazon EC2 instance, IP хаяг, Lambda функцууд) автоматаар түгээх боломжийг олгодог. ELB нь өөр өөр ачаалалтай урсгалыг нэг Хүртээмжтэй бүс болон олон Хүчинтэй бүсүүдэд хуваарилах чадвартай. Хэрэглэгч өндөр хүртээмжтэй, автомат масштабтай, сайн хамгаалалттай гурван төрлийн тэнцвэржүүлэгчээс сонгох боломжтой. Энэ бүхэн нь таны хэрэглээний алдааг тэсвэрлэх чадварыг хангахад чухал ач холбогдолтой.

Үндсэн давуу талууд:

  • өндөр хүртээмж. Үйлчилгээний гэрээ нь ачаалал тэнцвэржүүлэгчийг 99,99% ашиглах боломжтой гэж үздэг. Жишээлбэл, олон боломжит бүсүүд нь замын хөдөлгөөнийг зөвхөн эрүүл объектоор боловсруулах боломжийг олгодог. Үнэн хэрэгтээ та бүхэл бүтэн бүс нутгийн ачааллыг тэнцвэржүүлж, янз бүрийн хүртээмжтэй бүс дэх эрүүл зорилтот урсгалыг чиглүүлж чадна;
  • аюулгүй байдал. ELB нь Amazon VPC-тэй ажилладаг бөгөөд аюулгүй байдлын янз бүрийн чадавхийг хангадаг - нэгдсэн гэрчилгээний удирдлага, хэрэглэгчийн баталгаажуулалт, SSL/TLS код тайлах. Бүгд хамтдаа TLS тохиргоог төвлөрсөн, уян хатан удирддаг;
  • уян хатан байдал. ELB нь сүлжээний урсгалын гэнэтийн өөрчлөлтийг зохицуулж чаддаг. Автомат масштабтай гүнзгий интеграцчилал нь гарын авлагын оролцоогүйгээр ачаалал өөрчлөгдвөл програмд ​​хангалттай нөөцийг өгдөг;
  • уян хатан байдал. Та хүсэлтийг өөрийн хэрэглээний зорилтууд руу чиглүүлэхийн тулд IP хаягийг ашиглаж болно. Энэ нь зорилтот програмуудыг виртуалчлах үед уян хатан байдлыг хангадаг бөгөөд ингэснээр олон програмыг нэг жишээнд байршуулах боломжийг олгодог. Програмууд нь нэг сүлжээний порт ашиглаж, тусдаа хамгаалалтын бүлгүүдтэй байж болох тул микро үйлчилгээнд суурилсан архитектуртай байх үед програмуудын хоорондын харилцааг хялбаршуулдаг;
  • хяналт, аудит. Та Amazon CloudWatch функцуудыг ашиглан програмуудыг бодит цаг хугацаанд хянах боломжтой. Бид хэмжүүр, бүртгэл, хүсэлтийг хянах талаар ярьж байна. Энгийнээр хэлбэл, та асуудлуудыг тодорхойлж, гүйцэтгэлийн саад бэрхшээлийг маш нарийн тодорхойлох боломжтой болно;
  • эрлийз ачааллыг тэнцвэржүүлэх. Ижил ачаалал тэнцвэржүүлэгчийг ашиглан дотоод нөөц болон AWS-ийн хоорондох тэнцвэрийг ачаалах чадвар нь орон нутгийн програмуудыг үүлэн рүү шилжүүлэх эсвэл өргөжүүлэхэд хялбар болгодог. Мөн үүл ашиглан алдаа засах ажлыг хялбаршуулсан.

Хэрэв та дэлгэрэнгүй мэдээллийг сонирхож байвал Amazon-ийн албан ёсны вэбсайтаас хэд хэдэн хэрэгтэй холбоосууд энд байна:

  1. Уян ачааллыг тэнцвэржүүлэх.
  2. Уян ачааллыг тэнцвэржүүлэх чадвар.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх