Vyvažovanie záťaže s AWS ELB

Ahojte všetci! Kurz začína dnes "AWS pre vývojárov", v súvislosti s ktorým sme usporiadali zodpovedajúci tematický webinár venovaný recenzii ELB. Pozreli sme sa na typy balancerov a vytvorili sme niekoľko EC2 inštancií s balancerom. Študovali sme aj ďalšie príklady použitia.

Vyvažovanie záťaže s AWS ELB

Po vypočutí webinára, Budeš:

  • pochopiť, čo je AWS Load Balancing;
  • poznať typy Elastic Load Balancer a jeho komponenty;
  • používajte AWS ELB vo svojej praxi.

Prečo to vôbec potrebuješ vedieť?

  • užitočné, ak plánujete absolvovať certifikačné skúšky AWS;
  • toto je jednoduchý spôsob rozloženia záťaže medzi servery;
  • Toto je jednoduchý spôsob, ako pridať Lambda do vašej služby (ALB).

Uskutočnil otvorenú lekciu Rišat Teregulov, systémový inžinier v marketingovej spoločnosti pre vývoj a podporu webových stránok.

Úvod

Čo je to Elastic Load Balancer, je možné vidieť na obrázku nižšie, ktorý ukazuje jednoduchý príklad:

Vyvažovanie záťaže s AWS ELB

Load Balancer prijíma požiadavky a distribuuje ich medzi inštancie. Máme jednu samostatnú inštanciu, existujú funkcie Lambda a skupina AutoScaling (skupina serverov).

Typy AWS ELB

1. Pozrime sa na hlavné typy:

Klasický Load Balancer. Úplne prvý nástroj na vyvažovanie záťaže od AWS funguje na 4. aj 7. vrstve OSI a podporuje HTTP, HTTPS, TCP a SSL. Poskytuje základné vyrovnávanie záťaže naprieč viacerými inštanciami Amazon EC2 a funguje na úrovni požiadaviek aj pripojenia. Otvorme to (zvýraznené sivou farbou):

Vyvažovanie záťaže s AWS ELB

Tento vyvažovač sa považuje za zastaraný, preto sa odporúča používať ho len v určitých prípadoch. Napríklad pre aplikácie, ktoré boli vytvorené v sieti EC2-Classic. V zásade nám nikto nebráni v jeho vytvorení:

Vyvažovanie záťaže s AWS ELB

2. Nástroj na vyrovnávanie zaťaženia siete. Vhodné pre veľké pracovné zaťaženie, pracuje na OSI Layer 4 (možno použiť v EKS a ECS), sú podporované TCP, UDP a TLS.

Network Load Balancer smeruje prevádzku k cieľom v Amazon VPC a je schopný spracovať milióny požiadaviek za sekundu s ultra nízkou latenciou. Okrem toho je optimalizovaný tak, aby zvládal vzorce premávky s náhlym a meniacim sa zaťažením.

3. Aplikácia Load Balancer. Pracuje na vrstve 7, má podporu Lambda, podporuje pravidlá na úrovni hlavičiek a ciest, podporuje HTTP a HTTPS.
Poskytuje pokročilé smerovanie požiadaviek zamerané na poskytovanie aplikácií postavených na moderných architektúrach vrátane mikroslužieb a kontajnerov. Nasmeruje návštevnosť na ciele v Amazon VPC na základe obsahu požiadavky.

Pre mnohých používateľov bol Application Load Balancer prvou voľbou, ktorá nahradila klasický Load Balancer, pretože TCP nie je také bežné ako HTTP.

Poďme si to tiež vytvoriť, v dôsledku čoho už budeme mať dva vyrovnávače zaťaženia:

Vyvažovanie záťaže s AWS ELB

Komponenty na vyváženie zaťaženia

Spoločné komponenty vyváženia zaťaženia (spoločné pre všetky balancery):

  • Zásady protokolovania prístupu

— vaše prístupové denníky ELB. Ak chcete vykonať nastavenia, prejdite na Popis a vyberte tlačidlo „Upraviť atribúty“:

Vyvažovanie záťaže s AWS ELB

Potom zadáme S3Bucket – úložisko objektov Amazon:

Vyvažovanie záťaže s AWS ELB

  • systém

— vnútorný alebo vonkajší vyvažovač. Ide o to, či váš LoadBalancer musí dostať externé adresy, aby bol prístupný zvonku, alebo to môže byť váš interný loadbalancer;

  • Skupiny zabezpečenia

— kontrola prístupu k balanceru. V podstate ide o firewall na vysokej úrovni.

Vyvažovanie záťaže s AWS ELB

Vyvažovanie záťaže s AWS ELB

  • Podsiete

— podsiete vo vnútri vášho VPC (a podľa toho aj zóna dostupnosti). Podsiete sú špecifikované pri vytváraní. Ak sú VPC obmedzené regiónom, potom sú podsiete obmedzené zónami dostupnosti. Pri vytváraní Load Balanceru je lepšie ho vytvoriť aspoň v dvoch podsieťach (pomáha, ak sa vyskytnú problémy s jednou zónou dostupnosti);

  • poslucháči

— vaše vyvažovacie protokoly. Ako už bolo spomenuté, pre Classic Load Balancer to môže byť HTTP, HTTPS, TCP a SSL, pre Network Load Balancer - TCP, UDP a TLS, pre Application Load Balancer - HTTP a HTTPS.

Príklad klasického nástroja na vyvažovanie zaťaženia:

Vyvažovanie záťaže s AWS ELB

Ale v nástroji Application Load Balancer vidíme trochu iné rozhranie a vo všeobecnosti inú logiku:

Vyvažovanie záťaže s AWS ELB

Komponenty Load Balancer v2 (ALB a NLB)

Teraz sa pozrime bližšie na vyrovnávacie nástroje verzie 2 Application Load Balancer a Network Load Balancer. Tieto vyvažovače majú svoje vlastné komponenty. Objavil sa napríklad koncept ako cieľové skupiny – inštancie (a funkcie). Vďaka tomuto komponentu máme možnosť špecifikovať, na ktorú z Cieľových skupín chceme smerovať návštevnosť.

Vyvažovanie záťaže s AWS ELB

Vyvažovanie záťaže s AWS ELB

Zjednodušene povedané, v Cieľových skupinách špecifikujeme prípady, do ktorých príde návštevnosť. Ak v rovnakom Classic Load Balancer jednoducho okamžite pripojíte intenzitu k balanceru, potom v Application Load Balancer najskôr:

  • vytvorte Load Balancer;
  • vytvoriť cieľovú skupinu;
  • priamo cez požadované porty alebo pravidlá Load Balanceru na požadované cieľové skupiny;
  • v Cieľových skupinách priraďujete inštancie.

Táto prevádzková logika sa môže zdať komplikovanejšia, no v skutočnosti je pohodlnejšia.

Ďalšou zložkou je Pravidlá poslucháčov (pravidlá pre smerovanie). Týka sa to len nástroja na vyrovnávanie zaťaženia aplikácií. Ak v nástroji Network Load Balancer jednoducho vytvoríte poslucháča a ten odošle návštevnosť konkrétnej cieľovej skupine, potom v nástroji Application Load Balancer všetko zábavnejšie a pohodlnejšie.

Vyvažovanie záťaže s AWS ELB

Teraz si povedzme pár slov o ďalšom komponente - Elastické IP (statické adresy pre NLB). Ak pravidlá smerovania pravidiel načúvača ovplyvnili iba nástroj na vyrovnávanie zaťaženia aplikácie, potom elastická IP ovplyvnila iba nástroj na vyrovnávanie zaťaženia siete.

Poďme vytvoriť nástroj na vyrovnávanie zaťaženia siete:

Vyvažovanie záťaže s AWS ELB

Vyvažovanie záťaže s AWS ELB

A práve počas procesu vytvárania uvidíme, že máme možnosť vybrať Elastic IP:

Vyvažovanie záťaže s AWS ELB

Elastic IP poskytuje jedinú IP adresu, ktorá môže byť v priebehu času spojená s rôznymi inštanciami EC2. Ak má inštancia EC2 elastickú IP adresu a táto inštancia je ukončená alebo zastavená, môžete okamžite priradiť novú inštanciu EC2 k elastickej IP adrese. Vaša aktuálna aplikácia však neprestane fungovať, pretože aplikácie stále vidia rovnakú IP adresu, aj keď sa skutočný EC2 zmenil.

Tu iný prípad použitia na tému, prečo je potrebná elastická IP. Pozrite, vidíme 3 adresy IP, ale nezostanú tu navždy:

Vyvažovanie záťaže s AWS ELB

Amazon ich časom mení, možno každých 60 sekúnd (v praxi však, samozrejme, menej často). To znamená, že adresy IP sa môžu meniť. A v prípade nástroja Network Load Balancer môžete jednoducho zviazať IP adresu a uviesť ju vo svojich pravidlách, politikách atď.

Vyvažovanie záťaže s AWS ELB

Vyvodiť závery

ELB poskytuje automatickú distribúciu prichádzajúcej prevádzky medzi viaceré ciele (kontajnery, inštancie Amazon EC2, IP adresy a funkcie Lambda). ELB je schopná distribuovať prevádzku s rôznym zaťažením v rámci jednej zóny dostupnosti, ako aj medzi viacerými zónami dostupnosti. Používateľ si môže vybrať z troch typov balancerov, ktoré poskytujú vysokú dostupnosť, automatické škálovanie a dobrú ochranu. Toto všetko je dôležité na zabezpečenie odolnosti vašich aplikácií voči chybám.

Hlavné plusy:

  • vysoká dostupnosť. Servisná zmluva predpokladá 99,99% dostupnosť pre load balancer. Napríklad viacero zón dostupnosti zaisťuje, že prevádzku spracúvajú iba zdravé objekty. V skutočnosti môžete vyvážiť zaťaženie v celom regióne a presmerovať premávku na zdravé ciele v rôznych zónach dostupnosti;
  • bezpečnosť. ELB spolupracuje s Amazon VPC a poskytuje rôzne možnosti zabezpečenia – integrovanú správu certifikátov, autentifikáciu používateľov a dešifrovanie SSL/TLS. Všetko spolu poskytuje centralizovanú a flexibilnú správu nastavení TLS;
  • pružnosť. ELB dokáže zvládnuť náhle zmeny v sieťovej prevádzke. A hlboká integrácia s automatickým škálovaním poskytuje aplikácii dostatok zdrojov v prípade zmeny zaťaženia bez potreby manuálneho zásahu;
  • flexibilita. Adresy IP môžete použiť na smerovanie požiadaviek na ciele vašich aplikácií. To poskytuje flexibilitu pri virtualizácii cieľových aplikácií, čím poskytuje možnosť hosťovať viacero aplikácií v jednej inštancii. Keďže aplikácie môžu používať jeden sieťový port a majú oddelené bezpečnostné skupiny, komunikácia medzi aplikáciami je zjednodušená, keď máme, povedzme, architektúru založenú na mikroslužbách;
  • monitorovanie a audit. Aplikácie môžete sledovať v reálnom čase pomocou funkcií Amazon CloudWatch. Hovoríme o metrikách, protokoloch, sledovaní požiadaviek. Jednoducho povedané, budete schopní celkom presne identifikovať problémy a presne určiť úzky profil výkonu;
  • hybridné vyvažovanie záťaže. Schopnosť vyrovnávať zaťaženie medzi lokálnymi zdrojmi a AWS pomocou rovnakého nástroja na vyrovnávanie zaťaženia uľahčuje migráciu alebo rozšírenie lokálnych aplikácií do cloudu. Spracovanie porúch je tiež zjednodušené pomocou cloudu.

Ak vás zaujímajú podrobnosti, tu je niekoľko ďalších užitočných odkazov z oficiálnej webovej stránky Amazon:

  1. Elastické vyrovnávanie záťaže.
  2. Možnosti elastického vyrovnávania záťaže.

Zdroj: hab.com

Pridať komentár