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

Ahojte všetci! Už dnes štartuje kurz AWS pre vývojárov, v súvislosti s čím sme usporiadali tematický webinár zameraný na prehľad ELB. Preskúmali sme typy vyvážovačov zaťaženia a vytvorili sme niekoľko inštancií EC2 s vyvážovačom zaťaženia. Tiež sme skúmali ďalšie príklady použitia.

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

Po vypočutí webinára, budete:

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

Prečo by ste to mali vedieť:

  • je to užitočné, ak plánujete absolvovať certifikačné skúšky AWS;
  • je to jednoduchý spôsob, ako distribúciu zaťaženia medzi servermi;
  • je to jednoduchý spôsob, ako pridať Lambda do vášho servisu (ALB).

Otvorenú hodinu viedol Rishat Teregulov, systémový inžinier v marketingovej spoločnosti na vývoj a údržbu webových stránok.

Úvod

Čo je Elastic Load Balancer, môžete vidieť na diagrame nižšie, kde je zobrazený najjednoduchší príklad:

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

Vyvážovač zaťaženia prijíma požiadavky a distribuuje ich medzi inštancie. Máme jednu samostatnú inštanciu, máme Lambda funkcie a máme AutoScaling skupinu (skupinu serverov).

Typy AWS ELB

1. Preskúmame základné typy:

Classic Load Balancer. Prvý vyvážovač od AWS, funguje na 4. a 7. úrovni OSI, podporuje HTTP, HTTPS, TCP a SSL. Zaisťuje základné vyváženie zaťaženia medzi viacerými inštanciami Amazon EC2 a funguje ako na úrovni požiadaviek, tak aj na úrovni pripojení. Poďme sa na neho pozrieť (vyznačený sivou farbou):

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

Tento vyváž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 postavené v sieti EC2‑Classic. V podstate nám nikto nebráni ho vytvoriť:

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

2. Network Load Balancer. Vhodný pre vysoké zaťaženie, funguje na 4. úrovni OSI (možno ho použiť v EKS a ECS), podporuje TCP, UDP a TLS.

Network Load Balancer nasmeruje prevádzku na cieľové objekty v Amazon VPC a dokáže spracovať milióny požiadaviek za sekundu pri mimoriadne nízkych oneskoreniach. Okrem toho je optimalizovaný na spracovanie modelov prevádzky s náhlym a meniace sa zaťažením.

3. Application Load Balancer. Funguje na 7. úrovni, podporuje Lambda, podporuje pravidlá na úrovni hlavičiek a ciest, podporujú sa HTTP a HTTPS.
Zabezpečuje rozšírené smerovanie požiadaviek zamerané na dodávku aplikácií, postavených na moderných architektúrach, vrátane mikroservisov a kontajnerov. Smeruje prenos na cieľové objekty v Amazon VPC, pričom vychádza z obsahu požiadavky.

Pre mnohých používateľov sa Application Load Balancer stal prvou voľbou pred Classic Load Balancer, pretože TCP nie je tak rozšírené v porovnaní s HTTP.

Vytvoríme ho tiež, čím už budeme mať dva vyťažovače zaťaženia:

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

Zložky Load Balancer

Spoločné zložky Load Balancer (typické pre všetky vyťažovače):

  • Policy pre protokolovanie prístupu

— vaše prístupové záznamy k ELB. Pre nastavenie sa môžete prepnúť na popis a zvoliť tlačidlo „Upraviť atribúty“:

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

Potom uvádzame S3Bucket — objektový úložný priestor Amazon:

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

  • Schéma

— interný alebo externý vyťažovač. Podstata spočíva v tom, či váš LoadBalancer má prijímať externé adresy, aby bol dostupný z vonku, alebo môže byť vaším interným vyťažovačom;

  • Bezpečnostné skupiny

— prístupová kontrola k vyťažovaču. V podstate ide o vysoceúrovňový firewall.

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

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

  • Podnety

— podnety vo vašej VPC (podľa toho aj zóny dostupnosti). Podnety sa uvádzajú pri vytváraní. Ak sú VPC obmedzené na región, potom sú podnety obmedzené podľa zón dostupnosti. Pri vytváraní Load Balancer je lepšie vytvoriť ho aspoň v dvoch podnetoch (pomáha, ak nastanú problémy v jednej zóne dostupnosti);

  • Zosilňovače

— vaše protokoly vyťažovača. Ako už bolo povedané, pre Classic Load Balancer 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 pre Classic Load Balancer:

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

A vo Application Load Balancer vidíme trochu iné rozhranie a celkovo iný prístup:

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

Zložky Load Balancer v2 (ALB a NLB)

Teraz sa podrobnejšie pozrime na vyťažovače druhej verzie Application Load Balancer a Network Load Balancer. Tieto vyťažovače majú svoje komponentné špecifiká. Napríklad sa objavilo také pojatie, ako sú Target Groups — inštancie (a funkcie). Vďaka tejto zložke máme možnosť určiť, na ktorú z Target Groups chceme smerovať prenos.

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

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

Jednoducho povedané, v Target Groups uvádzame inštancie, na ktoré bude prichádzať prenos. Ak v Classic Load Balancer jednoducho pripojíte inštancie k vyťažovaču, v Application Load Balancer najprv:

  • vytvoríte Load Balancer;
  • vytvoríte Target skupinu;
  • smerujete podľa potrebných portov alebo pravidiel Load Balancer na požadované Target Groups;
  • v cieľových skupinách určujete inštancie.

Takáto logika práce sa môže zdať zložitá, no v skutočnosti je pohodlnejšia.

Nasledujúca súčasť — Pravidlá Listener (pravidlá pre smerovanie). Toto sa už týka len Application Load Balancer. Ak v Network Load Balancer jednoducho vytvoríte Listener, ktorý posiela prenos na konkrétnu cieľovú skupinu, tak v Application Load Balancer je to všetko veselšie a pohodlnejšie.

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

Teraz si povieme pár slov o nasledujúcej súčasti — Elastic IP (statické adresy pre NLB). Ak sa pravidlá pre smerovanie Listener rules týkali iba Application Load Balancer, Elastic IP sa týka len Network Load Balancer.

Vytvoríme Network Load Balancer:

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

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

A práve v procese vytvárania uvidíme, že máme možnosť vybrať Elastic IP:

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

Elastic IP poskytuje jedinú IP adresu, ktorú je možné viazať na rôzne inštancie EC2 v priebehu času. Ak má inštancia EC2 Elastic IP adresu a táto inštancia je ukončená alebo zastavená, môžete okamžite spojiť novú inštanciu EC2 s adresou Elastic IP. Vaša aktuellen aplikácia tak nepreruší svoju činnosť, pretože aplikácie vidia stále tú istú IP adresu, aj keď sa skutočná EC2 zmenila.

Tu sú ešte jeden prípad použitia na tému, na čo je potrebné Elastic IP. Pozrite, vidíme 3 IP adresy, ale tie tu nezostanú navždy:

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

Amazon ich mení v priebehu času, môže to robiť každých 60 sekúnd (ale v praxi, samozrejme, zriedkavejšie). To znamená, že IP adresy sa môžu zmeniť. A v prípade Network Load Balancer môžete práve priradiť IP adresu a uvádzať ju vo svojich pravidlách, politikách atď.

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

Robíme závery

ELB zabezpečuje automatické rozdeľovanie prichádzajúceho prenosu medzi niekoľko cieľových objektov (kontajnery, inštancie Amazon EC2, IP adresy a funkcie Lambda). ELB je schopný rozdeľovať prenos s meniacou sa záťažou ako v jednej zóne dostupnosti, tak aj medzi viacerými zónami dostupnosti. Používateľ si môže vybrať z troch typov vyvažovačov, ktoré zabezpečujú vysokú dostupnosť, automatické škálovanie a dobrú ochranu. To všetko je dôležité pre zabezpečenie odolnosti vašich aplikácií.

Hlavné výhody:

  • vysoká dostupnosť. Zmluva o poskytovaní služieb predpokladá 99,99 % dostupnosti pre load balancer. Napríklad, niekoľko dostupnostných zón zaručuje, že prevádzka bude spracovaná iba prostredníctvom funkčných objektov. V skutočnosti je možné rozložiť záťaž aj na celom regióne, čím sa zabezpečí presmerovanie prevádzky na funkčné cieľové objekty v rôznych dostupnostných zónach;
  • bezpečnosť. ELB pracuje s Amazon VPC a poskytuje rôzne možnosti zabezpečenia — od integrovaného správy certifikátov, cez autentifikáciu používateľov až po dešifrovanie SSL/TLS. Spoločne to zabezpečuje centralized a flexibilné riadenie nastavení TLS;
  • elasticita. ELB dokáže spracovávať náhle zmeny sieťovej prevádzky. Hlboká integrácia s Auto Scaling zabezpečuje, že aplikácia má dostatok zdrojov, ak sa zmení zaťaženie, pričom nie je potrebný žiadny manuálny zásah;
  • flexibilita. Je možné aplikovať IP adresy na smerovanie požiadaviek k cieľovým objektom vašich aplikácií. To zaručuje flexibilitu pri virtualizácii cieľových aplikácií, čo umožňuje umiestniť viacero aplikácií na jeden inštanciu. Keďže aplikácie môžu používať jeden sieťový port a majú samostatné bezpečnostné skupiny, zjednodušuje to interakciu medzi aplikáciami, keď máme architektúru, povedzme, na báze mikroslužieb;
  • monitorovanie a audit. Je možné monitorovať aplikácie v reálnom čase pomocou funkcií Amazon CloudWatch. Hovoríme o metриках, denníkoch, sledovaní požiadaviek. Jednoducho povedané, budete schopní odhaľovať problémy a dosť presne určovať úzke miesta výkonnosti;
  • hybridná vyváženie záťaže. Možnosť vyváženia záťaže medzi lokálnymi zdrojmi a AWS pomocou rovnakého vyvažovača zjednodušuje migráciu alebo rozšírenie lokálnych aplikácií do cloudu. Zjednodušuje sa aj spracovanie zlyhaní s využitím cloudu.

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

  1. Elastic Load Balancing.
  2. Možnosti Elastic Load Balancing.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster