Водич за увод у АВС Фаргате

AWS Fargate predstavlja tehnologiju koja se može primeniti uz Amazon ECS i Amazon EKS. Omogućava vam da pokrećete kontejnere bez potrebe za upravljanjem serverima ili klasterima Amazon EC2 instanci.

Fargate eliminiše potrebu za konfiguracijom, skaliranjem ili obezbeđivanjem klastera virtuelnih mašina za izvršavanje kontejnera. Nećete više morati da birate tipove servera, planirate skaliranje klastera ili optimizujete pakovanje klastera.

Možemo koristiti Fargate tip pokretanja ili Fargate provajder kapaciteta za pokretanje vaših Amazon ECS zadataka i servisa. Da biste koristili Fargate, potrebno je da spakujete svoju aplikaciju u kontejnere, definišete zahteve za operativni sistem, CPU i memoriju, konfigurišete mrežne i IAM politike, i potom je pokrenete.

Više nije potrebno održavati osnovni CPU i RAM kapacitet za hostovanje kontejnera. Jednostavno kažete AWS-u koliko resursa je potrebno zadatku, a ostatak prepustite AWS-u. Svaki Fargate zadatak ima svoju izolacionu barijeru, što znači da ne deli osnovno jezgro, CPU, memoriju ili elastični mrežni interfejs sa drugim zadacima.

Kako funkcioniše Fargate?

Fargate funkcioniše tako što vam omogućava da postavite kontejnere bez potrebe za postavljanjem ili upravljanjem infrastrukturom koja će ih hostovati. Vi kažete Fargate-u koje slike kontejnera želite da pokrenete i koliko CPU i memorijskih resursa želite da dodelite. Fargate tada automatski obezbeđuje host servere. Kada vaši kontejneri rade, plaćate samo za resurse koje koristite.

Fargate je računarski motor bez servera, jer eliminiše potrebu da krajnji korisnici upravljaju serverima koji hostuju kontejnere. Da budemo jasni, serveri su i dalje tu, ali njima upravlja AWS. Fargate ne treba mešati sa AWS Lambda, još jednom računarskom uslugom bez servera koja nije kreirana prvenstveno za kontejnere (iako Lambda sada podržava primenu slika kontejnera).

Kako Fargate pomaže?

AWS Fargate izračunava tačnu količinu računarske snage, memorije i drugih resursa koji su potrebni za vaše zadatke, tako da ne morate da brinete o izboru tipova instanci ili skaliranju kapaciteta klastera.

Omogućava vam da platite samo resurse koji su vam potrebni za rad sa vašim kontejnerima, dok se koriste, izbegavajući prekomerno obezbeđivanje i plaćanje servera koji vam nisu potrebni.

Fargate zadaci (podovi) se izvršavaju u sopstvenim jezgrima, što rezultira sigurnim i izolovanim računarskim okruženjem sa izolovanim radnim opterećenjem i povećanom bezbednošću.

Omogućava timovima da dizajniraju i pokreću aplikacije koristeći ECS ili EKS kontejnere bez potrebe da se bave dugotrajnim aktivnostima upravljanja infrastrukturom, kao što su skaliranje i obezbeđivanje servera ili zakrpe operativnih sistema.

Sa ugrađenim vezama sa drugim AWS uslugama, kao što je Amazon CloudWatch Container Insights, AWS Fargate pruža visok nivo vidljivosti. Takođe možete koristiti razne tehnologije trećih strana za prikupljanje evidencije i metrika.

Takođe, možemo efikasno da iskoristimo široku paletu AWS usluga kada koristimo kontejnere sa Fargate-om.

Fargate će neprestano pokretati i skalirati računarske resurse kako bi odgovarali zahtevima kontejnera, sprečavajući prekomerno obezbeđivanje i osiguravajući da ne plaćate resurse koje ne koristite. Možete izračunati i strategiju uštede, opcija Fargate Spot vam može uštedeti do 70% od uobičajenih troškova, ali je optimalna samo za aplikacije koje se mogu prekinuti.

Komponente Fargate-a

Klasteri

Logičko grupisanje zadataka ili servisa je Amazon ECS klaster. Klasteri se mogu koristiti za izolaciju vaših aplikacija. Kada koristite Fargate za obavljanje zadataka, on upravlja vašim resursima klastera.

Definicije zadataka

Definicija zadatka je tekstualna datoteka koja opisuje najmanje jedan od kontejnera vaše aplikacije. To je JSON datoteka. Može se koristiti za opisivanje do deset kontejnera istovremeno. Definicija zadatka vaše aplikacije služi kao nacrt. On određuje mnogobrojne parametre vaše aplikacije.

Na primer, možete ga koristiti za definisanje parametara operativnog sistema, kontejnera za korišćenje, portova za otvaranje za vašu aplikaciju i količinu podataka koje ćete koristiti sa kontejnerima u zadatku. Zahtevi vaše aplikacije određuju određene parametre dostupne za definisanje zadatka.

Zadaci

Zadatak je instanca definicije zadatka na nivou klastera. Kada kreirate definiciju zadatka za svoju aplikaciju u Amazon ECS-u, možete odabrati broj zadataka koji će se izvoditi na vašem klasteru. Možemo pokrenuti zadatak kao deo servisa ili kao zaseban proces.

Servisi

U Amazon ECS klasteru, možete koristiti Amazon ECS servis za istovremeno pokretanje i održavanje željenog broja zadataka. Planer servisa Amazon ECS pokreće drugu instancu na osnovu definicije vašeg zadatka ako bilo koji od vaših zadataka ne uspe ili se zaustavi iz bilo kog razloga. To radi da bi ga zamenio i održao broj zadataka u servisu na ispravnom nivou.

Operativni sistem i arhitektura CPU-a

Operativni sistemi koje Fargate podržava su Amazon Linux 2, Windows Server 2019 Full i Windows Server 2019 Core.

ARM i x86_64 su dve arhitekture dostupne za definisanje zadataka Amazon ECS. Ako koristite Windows kontejnere, morate imati arhitekturu procesora x86_64. Nasuprot tome, ako koristite Linux kontejnere, možete koristiti ARM64 arhitekturu za svoje ARM-bazirane aplikacije i x86_64 CPU arhitekturu.

ECS sa EC2 instancama vs. ECS sa AWS Fargate

U modelu EC2 instance, kontejneri se postavljaju na EC2 instance (VM) klastera. ECS njima upravlja zajedno sa zadacima koji su deo definicije zadatka.

Za 👍

  • Tip EC2 instance koji se ovde koristi je u potpunosti pod vašom kontrolom.
  • Možete koristiti spot instance koje smanjuju troškove do 90%.

Protiv 👎

  • Morate da vodite računa o bezbednosnim zakrpama i mrežnoj bezbednosti instanci; takođe, vi ste odgovorni za njihovu skalabilnost u klasteru.

U modelu Fargate, više ne morate da brinete o EC2 instancama ili serverima. Izaberite potrebnu konfiguraciju CPU-a i memorije, i Fargate će postaviti vaše kontejnere.

Za 👍

  • Ne morate da upravljate nijednim serverom.
  • AWS je odgovoran za dostupnost i skalabilnost, ali je i dalje dobra praksa odabrati ispravnu memoriju i CPU; u suprotnom, naša aplikacija može biti u opasnosti da postane nedostupna.
  • Ako odlučite da koristite Fargate Spot, možete dobiti do 70% popusta na Fargate cenu.

Protiv 👎

  • ECS sa AWS Fargate podržava samo jedan mrežni režim -awsvpc-. Kao rezultat toga, ovo ograničava vašu kontrolu nad mrežnim slojem.

EKS bez Fargate vs. EKS sa Fargate-om

U EKS-u bez Fargate modela, morate unapred odlučiti kolika grupa treba da bude. Čvorove uvek možete promeniti ručno kasnije, ali to je problematično u poređenju sa određivanjem idealne veličine od samog početka.

Za 👍

  • Ovaj model vam daje veću kontrolu na različite načine, kao što možete odrediti konfiguracione varijable kao što su HostNetwork i HostPort.
  • Fargate nije podržan u svim regionima, tako da radije koristite EKS bez Fargate-a ako želite da vaš kontejner bude dostupan u više regiona.

Protiv 👎

  • EKS bez Fargate-a je malo teži za korišćenje.

U EKS-u sa Fargate modelom, ne morate prethodno da specifikujete veličinu klastera.

Za 👍

  • EKS sa Fargate-om je sigurniji jer se pokreće unutar namenskih virtuelnih mašina. Činjenica da ne podržava privilegovani režim je svojevrstan bezbednosni mehanizam.
  • Dugoročno je jeftinije.

Protiv 👎

  • To vam daje manje kontrole na različite načine.

Zaključak

Fargate je izuzetno moćan i zreo alat. Štedi vam troškove, vreme i mnogo truda tako što umesto vas obavlja celokupno upravljanje infrastrukturom. Fargate je posebno koristan ako ste novi u kontejnerima i jednostavno želite da se fokusirate na izgradnju vaše aplikacije, a ne na njeno održavanje.