AWS ELB көмегімен Load Balancing

Бәріңе сәлем! Курс бүгін басталады «Әзірлеушілерге арналған AWS», осыған байланысты біз ELB шолуына арналған тиісті тақырыптық вебинар өткіздік. Біз баланстауыштардың түрлерін қарастырдық және балансизатормен бірнеше EC2 данасын жасадық. Біз сондай-ақ қолданудың басқа мысалдарын зерттедік.

AWS ELB көмегімен Load Balancing

Вебинарды тыңдағаннан кейін, Сіз істейсіз:

  • AWS Load Balancing не екенін түсіну;
  • Elastic Load Balancer түрлерін және оның компоненттерін білу;
  • тәжірибеңізде AWS ELB пайдаланыңыз.

Неліктен сізге мұны білу керек?

  • AWS сертификаттау емтихандарын тапсыруды жоспарласаңыз пайдалы;
  • бұл серверлер арасында жүктемені таратудың қарапайым тәсілі;
  • Бұл қызметіңізге (ALB) Lambda қосудың қарапайым жолы.

Ашық сабақ өткізді Ришат Тереғұлов, веб-сайтты әзірлеу және қолдау бойынша маркетингтік компанияның инженері.

Кіріспе

Серпімді жүктеме балансы дегеніміз не екенін төмендегі диаграммада көруге болады, ол қарапайым мысалды көрсетеді:

AWS ELB көмегімен Load Balancing

Load Balancer сұрауларды қабылдайды және оларды даналарға таратады. Бізде бір бөлек данасы бар, Lambda функциялары бар және AutoScaling тобы (серверлер тобы) бар.

AWS ELB түрлері

1. Негізгі түрлерін қарастырайық:

Классикалық Load Balancer. AWS ұсынған ең бірінші жүктеме теңестіргіші HTTP, HTTPS, TCP және SSL қолдайтын OSI 4-деңгейінде де, 7-деңгейінде де жұмыс істейді. Ол бірнеше Amazon EC2 даналарында негізгі жүктемені теңестіруді қамтамасыз етеді және сұрау мен қосылым деңгейлерінде жұмыс істейді. Оны ашайық (сұр түспен белгіленген):

AWS ELB көмегімен Load Balancing

Бұл баланстауыш ескірген болып саналады, сондықтан оны белгілі бір жағдайларда ғана пайдалану ұсынылады. Мысалы, EC2‑Classic желісінде құрастырылған қолданбалар үшін. Негізінде, оны жасауға ешкім кедергі келтірмейді:

AWS ELB көмегімен Load Balancing

2. Network Load Balancer. Ауыр жұмыс жүктемелері үшін қолайлы, OSI 4 деңгейінде жұмыс істейді (EKS және ECS жүйесінде қолдануға болады), TCP, UDP және TLS қолдау көрсетеді.

Network Load Balancer трафикті Amazon VPC жүйесіндегі мақсаттарға бағыттайды және өте төмен кідіріспен секундына миллиондаған сұрауларды өңдеуге қабілетті. Бұған қоса, ол кенеттен және өзгеретін жүктемелермен трафик үлгілерін өңдеуге оңтайландырылған.

3. Қолданба жүктемесін теңестіруші. 7-деңгейде жұмыс істейді, Lambda қолдауы бар, тақырып пен жол деңгейі ережелерін қолдайды, HTTP және HTTPS қолдайды.
Микросервистерді және контейнерлерді қоса, заманауи архитектураларға негізделген қолданбаларды жеткізуге бағытталған кеңейтілген сұрау маршруттауын қамтамасыз етеді. Сұрау мазмұны негізінде трафикті Amazon VPC ішіндегі мақсаттарға бағыттайды.

Көптеген пайдаланушылар үшін Application Load Balancer классикалық Load Balancer ауыстыратын бірінші таңдау болды, себебі TCP HTTP сияқты кең таралған емес.

Оны да жасайық, нәтижесінде бізде екі жүктеме балансы болады:

AWS ELB көмегімен Load Balancing

Жүктеме балансының құрамдас бөліктері

Жалпы жүктеме балансының құрамдастары (барлық балансерлер үшін ортақ):

  • Журналға кіру саясаты

— ELB кіру журналдары. Параметрлерді орнату үшін Сипаттамаға өтіп, «Атрибуттарды өңдеу» түймесін таңдауға болады:

AWS ELB көмегімен Load Balancing

Содан кейін біз S3Bucket - Amazon нысан қоймасын көрсетеміз:

AWS ELB көмегімен Load Balancing

  • Схема

— ішкі немесе сыртқы теңгергіш. Мәселе мынада: LoadBalancer сырттан қол жеткізу үшін сыртқы мекенжайларды алу керек пе, әлде ол сіздің ішкі жүктеме теңестірушісі бола ма;

  • Қауіпсіздік топтары

— балансизаторға қол жеткізуді басқару. Негізінде бұл жоғары деңгейлі брандмауэр.

AWS ELB көмегімен Load Balancing

AWS ELB көмегімен Load Balancing

  • Ішкі желілер

— VPC ішіндегі ішкі желілер (және, тиісінше, қолжетімділік аймағы). Ішкі желілер жасау кезінде көрсетіледі. Егер VPC аймақтармен шектелсе, ішкі желілер қолжетімділік аймақтарымен шектеледі. Load Balancer жасау кезінде оны кем дегенде екі ішкі желіде жасаған дұрыс (бір қолжетімділік аймағына қатысты мәселелер туындаған жағдайда көмектеседі);

  • Тыңдаушылар

— сіздің баланстық хаттамаларыңыз. Жоғарыда айтылғандай, Classic Load Balancer үшін ол HTTP, HTTPS, TCP және SSL, Network Load Balancer үшін - TCP, UDP және TLS, Application Load Balancer үшін - HTTP және HTTPS болуы мүмкін.

Классикалық Load Balancer мысалы:

AWS ELB көмегімен Load Balancing

Бірақ Application Load Balancer бағдарламасында біз сәл басқа интерфейсті және әдетте басқа логиканы көреміз:

AWS ELB көмегімен Load Balancing

Load Balancer v2 құрамдастары (ALB және NLB)

Енді 2-нұсқадағы теңдестіргіштерді қолданбалы жүктемені теңестіруші мен желілік жүктемені теңестіргішті толығырақ қарастырайық. Бұл теңдестіргіштердің өзіндік құрамдас ерекшеліктері бар. Мысалы, мақсатты топтар сияқты тұжырымдама пайда болды - инстанциялар (және функциялар). Осы компоненттің арқасында біз трафикті мақсатты топтардың қайсысына бағыттағымыз келетінін анықтау мүмкіндігіне ие болдық.

AWS ELB көмегімен Load Balancing

AWS ELB көмегімен Load Balancing

Қарапайым тілмен айтқанда, Мақсатты топтарда біз трафик келетін жағдайларды көрсетеміз. Егер бірдей классикалық жүктеме теңестіруішінде сіз қарқындылықты бірден балансизаторға қоссаңыз, онда қолданбалы жүктемені теңестіргіште алдымен:

  • Load Balancer жасау;
  • мақсатты топ құру;
  • қажетті порттар немесе Load Balancer ережелері арқылы қажетті Мақсатты топтарға тікелей;
  • Мақсатты топтарда даналарды тағайындайсыз.

Бұл операциялық логика күрделірек болып көрінуі мүмкін, бірақ іс жүзінде бұл ыңғайлы.

Келесі компонент Тыңдаушы ережелері (маршруттау ережелері). Бұл тек Application Load Balancer үшін қолданылады. Егер Network Load Balancer бағдарламасында сіз жай ғана тыңдаушы жасасаңыз және ол трафикті белгілі бір Мақсатты топқа жіберсе, онда Application Load Balancer бағдарламасында барлығы әлдеқайда қызықты және ыңғайлы.

AWS ELB көмегімен Load Balancing

Енді келесі компонент туралы бірнеше сөз айтайық - Серпімді IP (NLB үшін статикалық мекенжайлар). Егер Тыңдаушы ережелерінің бағыттау ережелері тек қолданбаны жүктеу теңгеріміне әсер етсе, серпімді IP тек желі жүктемесін теңестірушіге әсер етті.

Желі жүктемесін теңестіру құралын жасайық:

AWS ELB көмегімен Load Balancing

AWS ELB көмегімен Load Balancing

Тек жасау процесінде бізге Elastic IP таңдау мүмкіндігі берілгенін көреміз:

AWS ELB көмегімен Load Balancing

Эластикалық IP уақыт өте әртүрлі EC2 даналарымен байланыстырылуы мүмкін жалғыз IP мекенжайын қамтамасыз етеді. Егер EC2 данасында Elastic IP мекенжайы болса және ол данасы тоқтатылған немесе тоқтатылған болса, жаңа EC2 данасын Elastic IP мекенжайымен дереу байланыстыруға болады. Дегенмен, ағымдағы қолданбаңыз жұмысын тоқтатпайды, себебі қолданбалар нақты EC2 өзгерсе де, бұрынғыдай IP мекенжайын көреді.

осында басқа пайдалану жағдайы Эластикалық IP не үшін қажет деген тақырыпта. Қараңызшы, біз 3 IP мекенжайын көреміз, бірақ олар мұнда мәңгі қалмайды:

AWS ELB көмегімен Load Balancing

Amazon оларды уақыт өте келе, мүмкін әр 60 секунд сайын өзгертеді (бірақ іс жүзінде, әрине, сирек). Бұл IP мекенжайларының өзгеруі мүмкін дегенді білдіреді. Ал Network Load Balancer жағдайында сіз жай ғана IP мекенжайын байланыстыра аласыз және оны ережелеріңізде, саясаттарыңызда және т.б. көрсете аласыз.

AWS ELB көмегімен Load Balancing

Қорытынды жасаңыз

ELB кіріс трафикті бірнеше мақсатты (контейнерлер, Amazon EC2 даналары, IP мекенжайлары және Lambda функциялары) бойынша автоматты түрде бөлуді қамтамасыз етеді. ELB бір қолжетімділік аймағында да, бірнеше қолжетімділік аймақтарында да әртүрлі жүктемелермен трафикті таратуға қабілетті. Пайдаланушы жоғары қол жетімділікті, автомасштабтауды және жақсы қорғауды қамтамасыз ететін теңдестіргіштердің үш түрін таңдай алады. Мұның бәрі қолданбаларыңыздың ақауларға төзімділігін қамтамасыз ету үшін маңызды.

Негізгі артықшылықтары:

  • жоғары қолжетімділік. Қызмет көрсету келісімі жүктеме балансы үшін 99,99% қолжетімділікті болжайды. Мысалы, бірнеше қолжетімділік аймақтары трафикті тек сау нысандармен өңделуін қамтамасыз етеді. Шын мәнінде, сіз әртүрлі қолжетімділік аймақтарындағы трафикті сау мақсаттарға қайта бағыттай отырып, бүкіл аймақ бойынша жүктемені теңестіре аласыз;
  • қауіпсіздік. ELB әртүрлі қауіпсіздік мүмкіндіктерін қамтамасыз ететін Amazon VPC-мен жұмыс істейді - біріктірілген сертификатты басқару, пайдаланушының аутентификациясы және SSL/TLS шифрын шешу. Барлығы бірге TLS параметрлерін орталықтандырылған және икемді басқаруды қамтамасыз етеді;
  • икемділік. ELB желі трафигіндегі кенет өзгерістерді өңдей алады. Автоматты масштабтаумен терең интеграция, егер жүктеме өзгерсе, қолмен араласуды қажет етпей, қолданбаға жеткілікті ресурстар береді;
  • икемділік. Сұрауларды қолданба мақсаттарына бағыттау үшін IP мекенжайларын пайдалануға болады. Бұл мақсатты қолданбаларды виртуализациялау кезінде икемділікті қамтамасыз етеді, осылайша бір данада бірнеше қолданбаларды орналастыру мүмкіндігін береді. Қолданбалар бір желілік портты пайдалана алатындықтан және жеке қауіпсіздік топтарына ие болғандықтан, микросервистерге негізделген архитектура болғанда қолданбалар арасындағы байланыс жеңілдетіледі;
  • мониторинг және аудит. Amazon CloudWatch мүмкіндіктерін пайдаланып қолданбаларды нақты уақытта бақылауға болады. Біз метрика, журналдар, сұранысты қадағалау туралы айтып отырмыз. Қарапайым тілмен айтқанда, сіз проблемаларды анықтай аласыз және өнімділік кедергілерін өте дәл анықтай аласыз;
  • гибридті жүктемені теңестіру. Бірдей жүктеме теңестіргішті пайдаланып жергілікті ресурстар мен AWS арасындағы теңгерімді жүктеу мүмкіндігі жергілікті қолданбаларды бұлтқа көшіруді немесе кеңейтуді жеңілдетеді. Ақауларды өңдеу бұлтты пайдалану арқылы да жеңілдетілген.

Егер сізді егжей-тегжейлі білгіңіз келсе, Amazon ресми веб-сайтындағы бірнеше пайдалы сілтемелер:

  1. Серпімді жүктемені теңестіру.
  2. Серпімді жүктемені теңестіру мүмкіндіктері.

Ақпарат көзі: www.habr.com

пікір қалдыру