Úvodní příručka k AWS Fargate

AWS Fargate představuje technologii, kterou lze využívat s Amazon ECS a Amazon EKS. Umožňuje spouštění kontejnerů bez nutnosti správy serverů nebo clusterů instancí Amazon EC2.

Fargate odstraňuje potřebu konfigurace, škálování a zajišťování clusterů virtuálních strojů pro provoz kontejnerů. Není třeba se zabývat výběrem typů serverů, plánováním škálování clusteru či optimalizací jeho využití.

Pro spouštění úloh a služeb Amazon ECS lze zvolit typ spuštění Fargate nebo poskytovatele kapacity Fargate. Chcete-li Fargate používat, stačí aplikaci zabalit do kontejnerů, specifikovat požadavky na operační systém, procesor a paměť, nastavit sítě a IAM pravidla a aplikaci spustit.

Pro hostování kontejnerů není nutné udržovat základní kapacitu CPU a RAM. Můžete sdělit AWS, jaké zdroje úloha vyžaduje, a zbytek již zařídí AWS. Každá úloha Fargate má vlastní izolační bariéru, takže nesdílí základní jádro, CPU, paměť ani elastické síťové rozhraní s ostatními úlohami.

Jak Fargate funguje?

Fargate umožňuje nasazovat kontejnery bez nutnosti zřizovat nebo spravovat infrastrukturu, na které běží. Fargate sdělíte, které obrazy kontejnerů chcete spustit a jaké množství CPU a paměťových zdrojů jim chcete přidělit. Hostitelské servery jsou poté automaticky zajištěny Fargate. Po spuštění kontejnerů platíte pouze za spotřebované zdroje.

Fargate je bezserverové výpočetní řešení, jelikož eliminuje nutnost spravovat servery, na kterých kontejnery běží. Pro upřesnění, servery samozřejmě existují, jen je spravuje AWS. Fargate by se neměl zaměňovat s AWS Lambda, další bezserverovou službou, která nebyla původně navržena pro kontejnery (ačkoli Lambda již nasazení kontejnerových obrazů podporuje).

Jak Fargate pomáhá?

AWS Fargate automaticky vypočítá přesné množství výpočetních, paměťových a dalších zdrojů potřebných pro vaše úlohy. Nemusíte se tak starat o výběr typů instancí nebo škálování kapacity clusteru.

Platíte pouze za zdroje, které skutečně využíváte k provozování kontejnerů, čímž se vyhnete nadměrnému zajišťování a placení za nepotřebné servery.

Úlohy Fargate (pody) běží ve vlastních jádrech, což zajišťuje bezpečné a izolované výpočetní prostředí s oddělenou pracovní zátěží a vyšší úrovní zabezpečení.

Umožňuje týmům navrhovat a provozovat aplikace pomocí kontejnerů ECS nebo EKS, bez nutnosti se zabývat časově náročnými činnostmi správy infrastruktury, jako je škálování a zabezpečení serverů či aktualizace operačních systémů.

Díky integraci s dalšími službami AWS, jako je Amazon CloudWatch Container Insights, nabízí AWS Fargate vysokou úroveň sledovatelnosti. K monitoringu logů a metrik můžete využít i různé technologie třetích stran.

Při používání kontejnerů s Fargate můžete efektivně využívat širokou škálu služeb AWS.

Fargate automaticky spouští a škáluje výpočetní zdroje dle požadavků kontejneru, čímž zabraňuje nadměrnému zajišťování zdrojů a zajišťuje, že platíte pouze za to, co skutečně spotřebujete. Můžete také využít strategii úspor s Fargate Spot, který může snížit náklady až o 70 %, avšak je vhodný pouze pro aplikace s tolerancí k přerušení.

Součásti Fargate

Clustery

Cluster Amazon ECS je logické seskupení úloh nebo služeb. Clustery můžete využít k izolaci aplikací. Při použití Fargate ke spouštění úloh jsou zdroje clusteru spravovány automaticky.

Definice úloh

Definice úlohy je textový soubor, který popisuje minimálně jeden kontejner vaší aplikace. Jedná se o soubor JSON. Může popisovat až deset kontejnerů najednou. Definice úlohy vaší aplikace slouží jako plán. Určuje řadu parametrů vaší aplikace.

Můžete ji například použít k definování parametrů operačního systému, kontejnerů, které se mají použít, portů, které se mají pro aplikaci otevřít, a objemů dat používaných s kontejnery v úloze. Požadavky vaší aplikace určují specifické parametry dostupné v definici úlohy.

Úlohy

Úloha je instancí definice úlohy na úrovni clusteru. Po vytvoření definice úlohy v Amazon ECS můžete vybrat počet úloh, které se mají v clusteru spouštět. Úlohu lze spustit jako součást služby nebo jako samostatný proces.

Služby

Ve clusteru Amazon ECS můžete použít službu Amazon ECS k souběžnému spouštění a udržování požadovaného počtu úloh. Plánovač služeb Amazon ECS spustí novou instanci dle definice úlohy, pokud z jakéhokoli důvodu dojde k selhání nebo zastavení některé z úloh. Tím se zajistí náhrada a udržuje se počet úloh ve službě na požadované úrovni.

Operační systém a architektura CPU

Operační systémy podporované Fargate jsou Amazon Linux 2, Windows Server 2019 Full a Windows Server 2019 core.

Pro definice úloh Amazon ECS jsou dostupné dvě architektury: ARM a X86_64. Používáte-li kontejnery Windows, musíte použít architekturu CPU X86_64. Pokud však používáte kontejnery Linux, můžete použít architekturu ARM64 pro aplikace založené na ARM a architekturu CPU X86_64.

ECS s instancemi EC2 vs. ECS s AWS Fargate

V modelu s instancemi EC2 jsou kontejnery nasazeny do instancí EC2 (VM) v clusteru. ECS je spravuje ve spojení s úkoly, které jsou součástí definice úlohy.

Výhody 👍

  • Typ instance EC2, kterou použijete, je zcela pod vaší kontrolou.
  • Můžete využít spotové instance, které mohou snížit náklady až o 90 %.

Nevýhody 👎

  • Musíte se starat o bezpečnostní záplaty a zabezpečení sítě instancí; také zodpovídáte za jejich škálovatelnost v clusteru.

V modelu Fargate se již nemusíte starat o instance EC2 nebo servery. Vyberete požadovanou konfiguraci CPU a paměti a Fargate vaše kontejnery nasadí.

Výhody 👍

  • Nemusíte spravovat žádné servery.
  • AWS je zodpovědná za dostupnost a škálovatelnost, nicméně je vhodné správně zvolit paměť a CPU; jinak může být dostupnost aplikace ohrožena.
  • Pokud se rozhodnete využít Fargate Spot, můžete ušetřit až 70 % z ceny Fargate.

Nevýhody 👎

  • ECS s AWS Fargate podporuje pouze jeden síťový režim -awsvpc-. To omezuje vaši kontrolu nad síťovou vrstvou.

EKS bez Fargate vs. EKS s Fargate

U EKS bez modelu Fargate musíte předem rozhodnout o velikosti clusteru. Uzly můžete ručně změnit i později, ale je to náročnější než určení ideální velikosti na začátku.

Výhody 👍

  • Tento model vám poskytuje větší kontrolu, například v možnostech nastavení konfiguračních proměnných, jako jsou HostNetwork a HostPort.
  • Fargate není podporován ve všech regionech. Pokud chcete mít kontejner dostupný ve více regionech, je lepší použít EKS bez Fargate.

Nevýhody 👎

  • EKS bez Fargate je poněkud obtížnější na používání.

U EKS s modelem Fargate nemusíte předem specifikovat velikost clusterů.

Výhody 👍

  • EKS s Fargate je bezpečnější, protože běží na vyhrazených virtuálních strojích. Nepodporování privilegovaného režimu je dalším bezpečnostním prvkem.
  • Z dlouhodobého hlediska je levnější.

Nevýhody 👎

  • Poskytuje menší kontrolu v různých aspektech.

Závěr

Fargate je mimořádně výkonný a pokročilý nástroj. Šetří vám náklady, čas a spoustu úsilí tím, že veškerou správu infrastruktury udělá za vás. Fargate je obzvláště výhodný, pokud s kontejnery teprve začínáte a chcete se primárně soustředit na vývoj aplikace, a ne na její údržbu.