AWS ELB менен жүктү балансташтыруу

Баарына салам! Курс бүгүн башталат "Иштеп чыгуучулар үчүн AWS", ушуга байланыштуу биз ELB кароосуна арналган тиешелүү тематикалык вебинар өткөрдүк. Биз баланстоочулардын түрлөрүн карап чыктык жана баланстоочу менен бир нече EC2 инстанцияларын түздүк. Биз башка колдонуу мисалдарын да изилдедик.

AWS ELB менен жүктү балансташтыруу

Вебинарды уккандан кийин, Сиз болосузбу:

  • AWS Load Balancing деген эмне экенин түшүнүү;
  • Elastic Load Balancer түрлөрүн жана анын компоненттерин билүү;
  • практикаңызда AWS ELB колдонуңуз.

Эмне үчүн сиз муну билишиңиз керек?

  • эгер сиз AWS сертификаттоо экзамендерин тапшырууну пландап жатсаңыз, пайдалуу;
  • бул жүктү серверлердин ортосунда бөлүштүрүүнүн жөнөкөй жолу;
  • Бул Lambda'ны кызматыңызга кошуунун жөнөкөй жолу (ALB).

Ачык сабак өттү Ришат Терегулов, веб-сайтты иштеп чыгуу жана колдоо боюнча маркетинг компаниясынын инженери.

тааныштыруу

Эластик жүк балансы деген эмне экенин төмөндөгү диаграммадан көрүүгө болот, ал жөнөкөй мисалды көрсөтөт:

AWS ELB менен жүктү балансташтыруу

Load Balancer суроо-талаптарды кабыл алат жана аларды инстанциялар боюнча бөлүштүрөт. Бизде бир өзүнчө инстанция бар, Lambda функциялары жана AutoScaling тобу (серверлердин тобу) бар.

AWS ELB түрлөрү

1. Келгиле, негизги түрлөрүн карап көрөлү:

Classic Load Balancer. AWS эң биринчи жүк баланстоочусу HTTP, HTTPS, TCP жана SSL колдогон OSI Layer 4 жана Layer 7де иштейт. Ал бир нече Amazon EC2 инстанцияларында жүктөмдүн негизги тең салмактуулугун камсыз кылат жана суроо-талап жана байланыш деңгээлинде иштейт. Аны ачалы (боз түс менен бөлүнгөн):

AWS ELB менен жүктү балансташтыруу

Бул баланстоочу эскирген деп эсептелет, ошондуктан аны айрым учурларда гана колдонуу сунушталат. Мисалы, EC2‑Classic тармагында курулган колдонмолор үчүн. Негизи, аны түзүүгө эч ким тоскоолдук кылбайт:

AWS ELB менен жүктү балансташтыруу

2. Network Load Balancer. Оор жүктөмгө ылайыктуу, OSI 4 катмарында иштейт (EKS жана ECSде колдонсо болот), TCP, UDP жана TLS колдоого алынат.

Network Load Balancer трафикти Amazon VPCдеги максаттарга багыттайт жана секундасына миллиондогон суроо-талаптарды өтө төмөн күтүү менен иштетүүгө жөндөмдүү. Кошумчалай кетсек, ал капыстан жана өзгөрүп турган жүктөр менен жол кыймылын башкарууга оптималдаштырылган.

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

Көптөгөн колдонуучулар үчүн Колдонмо жүктөө теңдештиргичи Classic Load Balancer алмаштыруучу биринчи тандоо болгон, анткени TCP HTTP сыяктуу кеңири таралган эмес.

Келгиле, аны да түзөлү, натыйжада бизде эки жүк балансы болот:

AWS ELB менен жүктү балансташтыруу

Жүктүн балансынын компоненттери

Жалпы жүк балансынын компоненттери (бардык баланстоочулар үчүн жалпы):

  • Каттоо саясатына кирүү

— сиздин ELB кирүү журналдары. Орнотууларды жасоо үчүн, Сүрөттөмөгө өтүп, "Атрибуттарды түзөтүү" баскычын тандасаңыз болот:

AWS ELB менен жүктү балансташтыруу

Андан кийин биз S3Bucket - Amazon объект сактагычын аныктайбыз:

AWS ELB менен жүктү балансташтыруу

  • схема

— ички же тышкы баланстоочу. Кеп сиздин LoadBalancer сырттан жеткиликтүү болуу үчүн тышкы даректерди алышы керекпи же бул сиздин ички жүк балансыңыз болобу;

  • Коопсуздук топтору

— баланстоочуга жетүүнү башкаруу. Негизинен бул жогорку деңгээлдеги брандмауэр.

AWS ELB менен жүктү балансташтыруу

AWS ELB менен жүктү балансташтыруу

  • Subnets

— сиздин VPC ичиндеги ички тармактар ​​(жана, демек, жеткиликтүүлүк зонасы). Түзүү учурунда субторлор белгиленет. Эгерде VPC'лер аймак менен чектелсе, анда субсеталар жеткиликтүүлүк зоналары менен чектелет. Load Balancer түзүүдө, аны жок дегенде эки субсеттерде түзүү жакшыраак (эгерде бир Жеткиликтүү Аймакта көйгөйлөр пайда болсо жардам берет);

  • угармандар

— сиздин баланстоочу протоколдоруңуз. Мурда айтылгандай, Classic Load Balancer үчүн HTTP, HTTPS, TCP жана SSL, Network Load Balancer үчүн - TCP, UDP жана TLS, Колдонмо жүктөө тең салмактуусу үчүн - HTTP жана HTTPS болушу мүмкүн.

Классикалык Load Balancer үчүн мисал:

AWS ELB менен жүктү балансташтыруу

Бирок Application Load Balancerде биз бир аз башкача интерфейсти жана жалпысынан башкача логиканы көрөбүз:

AWS ELB менен жүктү балансташтыруу

Load Balancer v2 компоненттери (ALB жана NLB)

Эми келгиле, 2-версиянын баланстоочу Колдонмо жүктөмүн жана Тармак жүктүн тең салмактуулугун кененирээк карап чыгалы. Бул баланстоочулар өздөрүнүн компоненттеринин өзгөчөлүктөрүнө ээ. Мисалы, Максаттуу топтор сыяктуу түшүнүк пайда болгон - инстанциялар (жана функциялар). Бул компоненттин аркасында биз трафикти максаттуу топтордун кайсынысына багыттагыбыз келгенин көрсөтүү мүмкүнчүлүгүнө ээ болдук.

AWS ELB менен жүктү балансташтыруу

AWS ELB менен жүктү балансташтыруу

Жөнөкөй сөз менен айтканда, Максаттуу топтордо биз трафик келе турган учурларды белгилейбиз. Эгерде ошол эле Classic Load Balancerде сиз дароо эле интенсивдүүлүктү тең салмактоочуга туташтырсаңыз, анда Колдонмо жүктөө тең салмактуучусунда сиз адегенде:

  • Load Balancer түзүү;
  • Максаттуу топ түзүү;
  • керектүү порттор же Load Balancer эрежелери аркылуу талап кылынган Максаттуу топторго түз;
  • Максаттуу топтордо сиз инстанцияларды дайындайсыз.

Бул операциялык логика татаалыраак сезилиши мүмкүн, бирок чындыгында бул ыңгайлуураак.

Кийинки компонент болуп саналат Угуучунун эрежелери (багыттоо эрежелери). Бул Колдонмо жүктөө балансына гана тиешелүү. Эгерде Network Load Balancer программасында сиз жөн гана Угарманы түзсөңүз жана ал трафикти белгилүү бир Максаттуу топко жөнөтсө, анда Application Load Balancer ичинде бардыгы көбүрөөк кызыктуу жана ыңгайлуу.

AWS ELB менен жүктү балансташтыруу

Эми кийинки компонент жөнүндө бир нече сөз айталы - Эластикалык IP (NLB үчүн статикалык даректер). Эгерде угуучу эрежелеринин багыттоо эрежелери Колдонмонун жүктөө тең салмактуулугуна гана таасирин тийгизсе, ийкемдүү IP Тармактын жүктөө тең салмактуучусуна гана таасирин тийгизет.

Тармактын жүк балансын түзөлү:

AWS ELB менен жүктү балансташтыруу

AWS ELB менен жүктү балансташтыруу

Жана жөн гана түзүү процессинде биз Эластикалык IPди тандоо мүмкүнчүлүгүнө ээ болгонун көрөбүз:

AWS ELB менен жүктү балансташтыруу

Эластик IP убакыттын өтүшү менен ар кандай EC2 инстанциялары менен байланыштырылышы мүмкүн болгон бир IP даректи камсыз кылат. Эгерде EC2 инстанциясында Elastic IP дареги болсо жана ал инстанция токтотулса же токтотулса, сиз дароо жаңы EC2 инстанциясын Elastic IP дареги менен байланыштырсаңыз болот. Бирок, учурдагы колдонмоңуз ишин токтотпойт, анткени тиркемелер чыныгы EC2 өзгөрсө дагы, ошол эле IP даректи көрүп турат.

бул жерде башка колдонуу учуру Эластикалык IP эмне үчүн керек деген темада. Карачы, биз 3 IP даректи көрүп жатабыз, бирок алар бул жерде түбөлүк калбайт:

AWS ELB менен жүктү балансташтыруу

Amazon аларды убакыттын өтүшү менен, балким, ар бир 60 секунд өзгөртөт (бирок иш жүзүндө, албетте, азыраак). Бул IP даректер өзгөрүшү мүмкүн дегенди билдирет. Ал эми Network Load Balancer болгон учурда, сиз жөн гана IP даректи байлап, аны эрежелериңизде, саясаттарыңызда ж.б. көрсөтө аласыз.

AWS ELB менен жүктү балансташтыруу

Биз жыйынтык чыгарууга

ELB бир нече максаттуу (контейнерлер, Amazon EC2 инстанциялары, IP даректери жана Lambda функциялары) боюнча келген трафикти автоматтык түрдө бөлүштүрүүнү камсыз кылат. ELB бир Жеткиликтүү Аймактын ичинде жана бир нече Жеткиликтүү Зоналарда ар кандай жүктөр менен трафикти бөлүштүрүүгө жөндөмдүү. Колдонуучу жогорку жеткиликтүүлүктү, автоскалдаштырууну жана жакшы коргоону камсыз кылган үч түрдүү тең салмактуулукту тандай алат. Мунун баары тиркемелериңиздин катачылыкка чыдамдуулугун камсыз кылуу үчүн маанилүү.

Негизги артыкчылыктары:

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

Эгер сиз майда-чүйдөсүнө чейин кызыксаңыз, бул жерде Amazon расмий веб-сайтынан дагы бир нече пайдалуу шилтемелер бар:

  1. Elastic Load Balance.
  2. Эластик жүктү тең салмактоо мүмкүнчүлүктөрү.

Source: www.habr.com

Комментарий кошуу