Vyrovnávání zátěže s AWS ELB

Ahoj všichni! Kurz začíná dnes "AWS pro vývojáře", v souvislosti s níž jsme uspořádali odpovídající tematický webinář věnovaný recenzi ELB. Podívali jsme se na typy balancerů a vytvořili jsme několik instancí EC2 s balancerem. Studovali jsme i další příklady použití.

Vyrovnávání zátěže s AWS ELB

Po poslechu webináře, Budeš:

  • pochopit, co je to AWS Load Balancing;
  • znát typy Elastic Load Balancer a jeho součásti;
  • použijte ve své praxi AWS ELB.

Proč to vůbec potřebuješ vědět?

  • užitečné, pokud plánujete absolvovat certifikační zkoušky AWS;
  • toto je jednoduchý způsob rozložení zátěže mezi servery;
  • Toto je jednoduchý způsob, jak přidat Lambda do vaší služby (ALB).

Vedla otevřenou lekci Rišat Teregulov, systémový inženýr v marketingové společnosti pro vývoj a podporu webových stránek.

úvod

Co je to Elastic Load Balancer, je vidět na níže uvedeném diagramu, který ukazuje jednoduchý příklad:

Vyrovnávání zátěže s AWS ELB

Load Balancer přijímá požadavky a distribuuje je mezi instancemi. Máme jednu samostatnou instanci, jsou zde funkce Lambda a existuje skupina AutoScaling (skupina serverů).

Typy AWS ELB

1. Podívejme se na hlavní typy:

Klasický Load Balancer. Úplně první nástroj pro vyrovnávání zatížení od AWS funguje na 4. i 7. vrstvě OSI a podporuje HTTP, HTTPS, TCP a SSL. Poskytuje základní vyrovnávání zátěže napříč několika instancemi Amazon EC2 a funguje na úrovni požadavku i připojení. Pojďme to otevřít (zvýrazněno šedě):

Vyrovnávání zátěže s AWS ELB

Tento vyvažovač je považován za zastaralý, proto se doporučuje používat pouze v určitých případech. Například pro aplikace, které byly vytvořeny v síti EC2-Classic. V jeho vytvoření nám v zásadě nikdo nebrání:

Vyrovnávání zátěže s AWS ELB

2. Nástroj pro vyrovnávání zatížení sítě. Vhodné pro velké zatížení, pracuje na OSI Layer 4 (lze použít v EKS a ECS), jsou podporovány TCP, UDP a TLS.

Network Load Balancer směruje provoz na cíle v Amazon VPC a je schopen zpracovat miliony požadavků za sekundu s ultra nízkou latencí. Navíc je optimalizován tak, aby zvládal vzorce provozu s náhlými a měnícími se zatíženími.

3. Application Load Balancer. Pracuje na vrstvě 7, má podporu Lambda, podporuje pravidla na úrovni záhlaví a cesty, podporuje HTTP a HTTPS.
Poskytuje pokročilé směrování požadavků zaměřené na poskytování aplikací postavených na moderních architekturách, včetně mikroslužeb a kontejnerů. Nasměruje provoz na cíle v Amazon VPC na základě obsahu požadavku.

Pro mnoho uživatelů byl Application Load Balancer první volbou, která nahradila klasický Load Balancer, protože TCP není tak běžné jako HTTP.

Pojďme si ho vytvořit také, v důsledku čehož budeme mít již dva load balancery:

Vyrovnávání zátěže s AWS ELB

Komponenty pro vyvážení zatížení

Společné komponenty bilance zátěže (společné pro všechny balancery):

  • Zásady protokolování přístupu

— vaše přístupové protokoly ELB. Chcete-li provést nastavení, přejděte na Popis a vyberte tlačítko „Upravit atributy“:

Vyrovnávání zátěže s AWS ELB

Poté zadáme S3Bucket - úložiště objektů Amazon:

Vyrovnávání zátěže s AWS ELB

  • Systém

— vnitřní nebo vnější vyvažovač. Jde o to, zda váš LoadBalancer musí přijímat externí adresy, aby byl přístupný zvenčí, nebo to může být váš interní loadbalancer;

  • Skupiny zabezpečení

— kontrola přístupu k balanceru. V podstatě se jedná o firewall na vysoké úrovni.

Vyrovnávání zátěže s AWS ELB

Vyrovnávání zátěže s AWS ELB

  • Podsítě

— podsítě uvnitř vašeho VPC (a podle toho i zóna dostupnosti). Podsítě jsou specifikovány při vytváření. Pokud jsou VPC omezeny regionem, pak jsou podsítě omezeny zónami dostupnosti. Při vytváření Load Balanceru je lepší jej vytvořit alespoň ve dvou podsítích (pomáhá, pokud nastanou problémy s jednou zónou dostupnosti);

  • Posluchači

– vaše vyvažovací protokoly. Jak již bylo zmíněno dříve, pro Classic Load Balancer to může být HTTP, HTTPS, TCP a SSL, pro Network Load Balancer - TCP, UDP a TLS, pro Application Load Balancer - HTTP a HTTPS.

Příklad pro Classic Load Balancer:

Vyrovnávání zátěže s AWS ELB

Ale v nástroji Application Load Balancer vidíme trochu jiné rozhraní a obecně jinou logiku:

Vyrovnávání zátěže s AWS ELB

Komponenty Load Balancer v2 (ALB a NLB)

Nyní se podíváme blíže na balancery verze 2 Application Load Balancer a Network Load Balancer. Tyto balancery mají své vlastní prvky. Objevil se například takový koncept jako Cílové skupiny – instance (a funkce). Díky této komponentě máme možnost specifikovat, na kterou z Cílových skupin chceme návštěvnost směřovat.

Vyrovnávání zátěže s AWS ELB

Vyrovnávání zátěže s AWS ELB

Zjednodušeně řečeno, v cílových skupinách specifikujeme případy, kdy bude návštěvnost přicházet. Pokud ve stejném Classic Load Balancer jednoduše okamžitě připojíte intenzitu k balanceru, pak v Application Load Balancer nejprve:

  • vytvořit Load Balancer;
  • vytvořit Cílovou skupinu;
  • přímo přes požadované porty nebo pravidla Load Balanceru na požadované cílové skupiny;
  • v Cílové skupiny přiřazujete instance.

Tato provozní logika se může zdát složitější, ale ve skutečnosti je pohodlnější.

Další složkou je Pravidla posluchače (pravidla pro směrování). To platí pouze pro Application Load Balancer. Pokud v nástroji Network Load Balancer jednoduše vytvoříte Listener a ten odesílá provoz do konkrétní cílové skupiny, pak v nástroji Application Load Balancer vše zábavnější a pohodlnější.

Vyrovnávání zátěže s AWS ELB

Nyní si řekněme pár slov o další komponentě - Elastické IP (statické adresy pro NLB). Pokud pravidla směrování pravidel Listener ovlivnila pouze nástroj pro vyrovnávání zatížení aplikací, pak elastická IP ovlivnila pouze nástroj pro vyrovnávání zatížení sítě.

Pojďme vytvořit nástroj pro vyrovnávání zatížení sítě:

Vyrovnávání zátěže s AWS ELB

Vyrovnávání zátěže s AWS ELB

A právě během procesu vytváření uvidíme, že máme možnost vybrat Elastic IP:

Vyrovnávání zátěže s AWS ELB

Elastic IP poskytuje jedinou IP adresu, kterou lze v průběhu času přidružit k různým instancím EC2. Pokud má instance EC2 elastickou IP adresu a tato instance je ukončena nebo zastavena, můžete okamžitě přiřadit novou instanci EC2 k elastické IP adrese. Vaše aktuální aplikace však nepřestane fungovat, protože aplikace stále vidí stejnou IP adresu, i když se skutečný EC2 změnil.

zde je jiný případ použití na téma, proč je potřeba Elastic IP. Podívejte, vidíme 3 IP adresy, ale nezůstanou zde navždy:

Vyrovnávání zátěže s AWS ELB

Amazon je v průběhu času mění, třeba každých 60 sekund (ale v praxi samozřejmě méně často). To znamená, že IP adresy se mohou měnit. A v případě Network Load Balancer můžete pouze svázat IP adresu a uvést ji ve svých pravidlech, zásadách atd.

Vyrovnávání zátěže s AWS ELB

Vyvodit závěry

ELB poskytuje automatickou distribuci příchozího provozu mezi více cílů (kontejnery, instance Amazon EC2, IP adresy a funkce Lambda). ELB je schopno distribuovat provoz s různou zátěží jak v rámci jedné zóny dostupnosti, tak napříč více zónami dostupnosti. Uživatel si může vybrat ze tří typů balancerů, které poskytují vysokou dostupnost, automatické škálování a dobrou ochranu. To vše je důležité pro zajištění odolnosti vašich aplikací proti chybám.

Hlavní výhody:

  • vysoká dostupnost. Servisní smlouva předpokládá 99,99% dostupnost pro load balancer. Například více zón dostupnosti zajišťuje, že provoz zpracovávají pouze zdravé objekty. Ve skutečnosti můžete vyvážit zatížení v celém regionu a přesměrovat provoz na zdravé cíle v různých zónách dostupnosti;
  • zabezpečení. ELB spolupracuje s Amazon VPC a poskytuje různé možnosti zabezpečení – integrovanou správu certifikátů, ověřování uživatelů a dešifrování SSL/TLS. Vše dohromady poskytuje centralizovanou a flexibilní správu nastavení TLS;
  • pružnost. ELB zvládne náhlé změny v síťovém provozu. A hluboká integrace s automatickým škálováním poskytuje aplikaci dostatek zdrojů, pokud se zatížení změní, aniž by vyžadovala ruční zásah;
  • flexibilita. Adresy IP můžete použít ke směrování požadavků na cíle vašich aplikací. To poskytuje flexibilitu při virtualizaci cílových aplikací, což dává možnost hostovat více aplikací v jedné instanci. Protože aplikace mohou používat jeden síťový port a mají oddělené skupiny zabezpečení, komunikace mezi aplikacemi je zjednodušena, když máme, řekněme, architekturu založenou na mikroslužbách;
  • monitorování a audit. Pomocí funkcí Amazon CloudWatch můžete sledovat aplikace v reálném čase. Bavíme se o metrikách, logech, sledování požadavků. Jednoduše řečeno, budete schopni poměrně přesně identifikovat problémy a přesně určit slabá místa výkonu;
  • hybridní vyvažování zátěže. Schopnost vyrovnávat zatížení mezi místními prostředky a AWS pomocí stejného nástroje pro vyrovnávání zatížení usnadňuje migraci nebo rozšíření místních aplikací do cloudu. Řešení poruch je také zjednodušeno pomocí cloudu.

Pokud vás zajímají podrobnosti, zde je několik dalších užitečných odkazů z oficiálních stránek Amazonu:

  1. Elastické vyvažování zátěže.
  2. Možnosti elastického vyvažování zátěže.

Zdroj: www.habr.com

Přidat komentář