Nejvyšší čas vyzkoušet CaaS. Fargate rapidně snižuje ceny.

AWS letos v lednu výrazně snížilo cenu služby Fargate. Kvůli relativně vysokému pricingu, který je založen na počtu využívaných CPU a RAM, nebyla služba nijak masivně využívána. Momentálně se ale dostanete s cenou až o 40% níže. Pokud jste si tedy nebyli doteď 100% jisti, jestli je Fargate pro vás, teď je ten nejlepší čas jej otestovat. Víte k čemu přesně slouží?

AWS Fargate umožňuje provozovat aplikační kontejnery bez nutnosti spravovat základní infrastrukturu - servery (clustery), na kterých kontejnery poběží. Řeší za vás škálování, provisioning i konfiguraci. Někdy je Fargate nazýván tzv. CaaS (Container as a Service), což jej relativně dobře vystihuje. Aby si ale pod danou službou něco představilo i méně technické publikum, pokusím se ji přiblížit na metafoře výrobní společnosti. Začnu tím, že obrazně popíšu základní možnosti provozu aplikačních kontejnerů a postupně se dostanu až k Fargatu.

Představte si, že pracujete ve výrobní společnosti, která má rozeseté továrny po celé Evropě a vy máte na starost vymyslet způsob, jak budete řešit logistiku mezi jednotlivými lokalitami. Začněme od toho nejméně náročného, ale taky nejméně efektivního scénáře: koupíte si jeden kamion, od kterého očekáváte, že bude obhospodařovat veškerý transport. Brzy se však objeví problém - jeden kamion na všechny lokace nestačí a tak musíte přikoupit kamiony další. O jejich provoz se musíte starat (měnit gumy, olej,...), zaměstnávat řidiče atd. Tato varianta už je relativně náročná na údržbu, ale zase splňuje většinu vašich potřeb - téměř vždy zvládnete vše doručit včas. Je však potřeba být připraven i na krizové situace, tzn., že musíte mít nakoupeny další kamiony do zásoby. Tyto nadbytečné kamiony ale většinu času jen nepotřebně stojí. Navíc musíte mít vždy dostatek řidičů a s počtem kamionů roste i náročnost údržby. Čím víc vaše podnikání roste, tím náročnější je na údržbu, a dřív nebo později nadejde chvíle, kdy už na to všechno sami nestačíte. Je čas najmout si firmu, která se o kamiony bude starat za vás. Najmutí firmy je poměrně pohodlné řešení. Pořád, ale vlastníte určitý počet vozidel, které vám buď nemusí vždy stačit nebo mohou být naopak naprosto nevyužitá.

Takto by se velmi zjednodušeně daly popsat různé možnosti provozu kontejnerů. Můžete je provozovat na vlastním HW nebo v Cloudu, k orchestraci můžete používat různé nástroje (K8s, Docker Swarm) a orchestrační nástroje můžete provozovat sami nebo je za vás může spravovat někdo jiný (GKE, ECS, EKS,...).

Společným jmenovatelem všech těchto způsobů, jak kontejnery provozovat, je nutnost starat se o servery, na kterých vše poběží (nebo alespoň specifikovat jejich parametry, když se budeme bavit o provozu kontejnerů v Cloudu). V žádném z jmenovaných případů to nefunguje tak, že někam pošlete kontejner, uvaříte si kafe, hodíte nohy na stůl a jen se díváte, jak všechno krásně funguje.

A co kdybyste mohli všechna tato řešení hodit za hlavu (a hodit nohy na stůl :)) a od začátku si najmout firmu, která by za vás vše vyřešila? Nemuseli byste nakupovat žádné kamiony, stačilo by firmě říct co chceme doručit, kdy a kde má být, a ona už by vše sama zařídila. Nebyl by potřeba žádný vozový park, ani neustále dostupní řidiči. A přesně tahle “firma” je ve světě cloudu Fargate, která umožňuje provozovat kontejnery bez nutnosti starat se o instance na kterých běží.

S novým pricingem už služba nevychází o moc dráž než samotná EC2, pro ukázku:

(pozn. autora - EC2 je služba, která poskytuje výpočetní výkon a poskytuje jen virtuální instance. Záleží pak na vás, co na těchto instancích provozujete a taky se sami o provoz staráte. Oproti tomu Fargate, přestože se také jedná o compute službu, má tu výhodu, že vás vůbec nemusí zajímat, na jaké instanci kontejnery běží. Služba se už opravdu hodně blíží tzv. “serverless”. Můžete tedy maximum času věnovat pouze psaní kódu a vývoji produktu.)

c5.xlarge AWS Fargate (same number of CPU and RAM)

\$0.20 0.22712

Souhrn možností provozování kontejnerů na AWS:

  • ECS - systém pro provoz docker kontejnerů - “docker as a service” od Amazonu.
  • EKS - managend Kubernetes, “kubernetes as a service” od AWS
  • Fargate - AWS “Container manager”

Netvrdíme, že Fargate je služba pro každého, ale nyní určitě stojí za to si jej alespoň otestovat.