AWS Fargate je technologie, kterou lze použít s Amazon ECS a Amazon EKS. Umožňuje vám spouštět kontejnery bez správy serverů nebo clusterů instancí Amazon EC2.
Fargate eliminuje potřebu konfigurovat, škálovat nebo zajišťovat clustery virtuálních strojů pro spouštění kontejnerů. Nebude nutné vybírat druhy serverů, plánovat škálování clusteru nebo optimalizovat balení clusteru.
Ke spuštění vašich úloh a služeb Amazon ECS můžeme použít typ spuštění Fargate nebo poskytovatele kapacity Fargate. Chcete-li používat Fargate, můžete aplikaci zabalit do kontejnerů, zadat požadavky na operační systém, procesor a paměť, nakonfigurovat sítě a zásady IAM a spustit ji.
Pro hostitelské kontejnery není potřeba udržovat základní kapacitu CPU a RAM. Můžeme AWS sdělit, kolik prostředků úkol potřebuje, a zbytek úkolu nechat na AWS. Každá úloha Fargate má svou izolační bariéru, takže nesdílí základní jádro, CPU, paměť nebo elastické síťové rozhraní s jinými úlohami.
Jak Fargate funguje?
Fargate funguje tak, že vám umožňuje nasazovat kontejnery bez nastavování nebo správy infrastruktury, která je bude hostit. Fargate řeknete, které obrazy kontejneru chcete spustit a kolik CPU a paměťových zdrojů chcete přiřadit. Hostitelské servery jsou pak automaticky zajišťovány společností Fargate. Když jsou vaše kontejnery v provozu, platíte pouze za použité zdroje.
Fargate je bezserverový výpočetní stroj, protože eliminuje potřebu koncových uživatelů spravovat servery, které hostí kontejnery. Aby bylo jasno, servery tam stále jsou; AWS je jednoduše spravuje. Fargate nelze zaměňovat s AWS Lambda, další bezserverovou výpočetní službou, která nebyla vytvořena s ohledem na kontejnery (ačkoli Lamba nyní podporuje nasazení bitových kopií kontejnerů).
Jak Fargate pomáhá?
AWS Fargate vypočítá přesné množství výpočetních, paměťových a dalších zdrojů požadovaných pro vaše úkoly, takže se nemusíte starat o výběr druhů instancí nebo škálování kapacity clusteru.
Umožňuje vám platit za zdroje, které potřebujete k provozování vašich kontejnerů, když jsou používány, čímž se vyhnete nadměrnému poskytování a placení za servery, které nepotřebujete.
Úlohy Fargate (pody) se provádějí ve vlastních jádrech, což vede k bezpečnému a izolovanému výpočetnímu prostředí s izolovanou pracovní zátěží a zvýšenou bezpečností.
Umožňuje týmům navrhovat a provozovat aplikace pomocí kontejnerů ECS nebo EKS, aniž by se musely zabývat časově náročnými aktivitami správy infrastruktury, jako je škálování a zabezpečení serverů nebo záplatování operačních systémů.
Díky vestavěným propojením s dalšími službami AWS, jako je Amazon CloudWatch Container Insights, poskytuje AWS Fargate vysokou úroveň pozorovatelnosti. Ke shromažďování protokolů a metrik můžete také použít více technologií třetích stran.
Můžeme také efektivně využívat širokou škálu služeb AWS při používání kontejnerů s Fargate.
Fargate bude neustále spouštět a škálovat výpočetní zdroje tak, aby vyhovovaly požadavkům kontejneru, čímž zabrání nadměrnému poskytování a zajistí, že nebudete platit za zdroje, které nevyužijete. Můžete si také spočítat strategii úspor, možnost Fargate Spot vám může ušetřit až 70 % běžných nákladů, ale je optimální pouze pro přerušitelné aplikace.
Součásti Fargate
Shluky
Logickým seskupením úkolů nebo služeb je cluster Amazon ECS. Clustery lze použít k izolaci vašich aplikací. Když používáte Fargate k provádění svých úkolů, spravuje vaše prostředky clusteru.
Definice úkolů
Definice úlohy je textový soubor, který popisuje alespoň jeden z kontejnerů vaší aplikace. Je to soubor JSON. Může být použit k popisu až deseti nádob najednou. Definice úlohy vaší aplikace slouží jako plán. Určuje četné parametry vaší aplikace.
Můžete jej například použít k definování parametrů operačního systému, kontejnerů, které se mají použít, portů, které se mají otevřít pro vaši aplikaci, a objemů dat, které se mají použít s kontejnery v úloze. Požadavky vaší aplikace určují konkrétní parametry dostupné pro definici úlohy.
Úkoly
Úloha je instancí definice úlohy na úrovni clusteru. Jakmile vytvoříte definici úlohy pro vaši aplikaci v Amazon ECS, můžete si vybrat počet úloh, které se ve vašem clusteru poběží. Úlohu můžeme spustit jako součást služby nebo samostatného procesu.
Služby
V clusteru Amazon ECS můžete využít službu Amazon ECS ke spuštění a údržbě požadovaného počtu úloh současně. Plánovač služeb Amazon ECS spustí další instanci na základě vaší definice úlohy, pokud některá z vašich úloh z jakéhokoli důvodu selže nebo se zastaví. Dělá to proto, aby ji nahradil a udržoval počet úkolů ve službě na správné ú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.
ARM a X86_64 jsou dvě architektury dostupné pro definici úloh Amazon ECS. Pokud používáte kontejnery Windows, musíte mít architekturu CPU X86_64. Naproti tomu, pokud používáte linuxové kontejnery, 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 instance EC2 jsou kontejnery nasazeny do instancí EC2 (VM) clusteru. ECS je spravuje ve spojení s úkoly, které jsou součástí definice úkolu.
Klady 👍
- Typ zde použité instance EC2 je zcela pod vaší kontrolou.
- Můžete použít spotové instance, které snižují náklady až o 90 %.
Zápory 👎
- Musíte se postarat o bezpečnostní záplaty a zabezpečení sítě instancí; jste také odpovědní za jejich škálovatelnost v clusteru.
V modelu Fargate se již nemusíte starat o instance EC2 nebo servery. Vyberte požadovanou konfiguraci CPU a paměti a Fargate nasadí vaše kontejnery.
Klady 👍
- Nemusíte spravovat žádné servery.
- AWS je zodpovědné za dostupnost a škálovatelnost, ale stále je dobrým zvykem vybrat správnou paměť a CPU; jinak může být naše aplikace ohrožena nedostupností.
- Pokud se rozhodnete využít Fargate Spot, můžete získat až 70% slevu z ceny Fargate.
Zápory 👎
- ECS s AWS Fargate podporuje pouze jeden síťový režim -awsvpc-. Ve výsledku to omezuje vaši kontrolu nad síťovou vrstvou.
EKS bez Fargate vs. EKS s Fargate
V EKS bez modelu Fargate se musíte předem rozhodnout, jak velký by měl být cluster. Uzly můžete kdykoli později změnit ručně, ale je to problematické ve srovnání s určením ideální velikosti od začátku.
Klady 👍
- Tento model vám poskytuje více kontroly různými způsoby, jako je například zadání konfiguračních proměnných, jako je HostNetwork a HostPort.
- Fargate není podporován ve všech regionech, takže pokud chcete, aby byl váš kontejner dostupný ve více regionech, raději použijte EKS bez Fargate.
Zápory 👎
- EKS bez Fargate je trochu obtížné používat.
V EKS s modelem Fargate nemusíte předem specifikovat velikost clusterů.
Klady 👍
- EKS s Fargate je bezpečnější, protože běží na vyhrazených virtuálních strojích. Skutečnost, že nepodporuje privilegovaný režim, je určitým bezpečnostním prvkem.
- Z dlouhodobého hlediska je levnější.
Zápory 👎
- Poskytuje vám to méně kontroly různými způsoby
Závěr
Fargate je extrémně výkonný a vyspělý nástroj. Ušetří vám náklady, čas a spoustu úsilí tím, že veškerou správu infrastruktury udělá za vás. Fargate je zvláště výhodný, pokud s kontejnery teprve začínáte a chcete se jednoduše soustředit na vytváření vaší aplikace spíše než na její údržbu.