En introduksjonsguide til AWS Fargate

AWS Fargate er en teknologi som kan brukes med Amazon ECS og Amazon EKS. Den lar deg kjøre containere uten å administrere servere eller klynger av Amazon EC2-forekomster.

Fargate eliminerer behovet for å konfigurere, skalere eller klargjøre virtuelle maskinklynger for å kjøre containere. Det vil ikke være nødvendig å velge servertyper, planlegge klyngeskalering eller optimalisere klyngepakking.

Vi kan bruke Fargate-lanseringstypen eller en Fargate-kapasitetsleverandør til å kjøre Amazon ECS-oppgavene og -tjenestene dine. For å bruke Fargate kan du pakke applikasjonen din i containere, spesifisere kravene til operativsystem, CPU og minne, konfigurere nettverks- og IAM-policyer og starte den.

Det er ikke nødvendig å opprettholde en grunnleggende CPU og RAM-kapasitet for å være vert for containere. Vi kan fortelle AWS hvor mye ressurs en oppgave trenger og overlate resten av oppgaven til AWS. Hver Fargate-oppgave har sin isolasjonsbarriere, så den deler ikke den underliggende kjernen, CPU-en, minnet eller det elastiske nettverksgrensesnittet med andre oppgaver.

Hvordan fungerer Fargate?

Fargate fungerer ved å tillate deg å distribuere containere uten å sette opp eller administrere infrastrukturen som skal være vert for dem. Du forteller Fargate hvilke containerbilder du vil kjøre og hvor mange CPU- og minneressurser du ønsker å tilordne. Vertsserverne blir deretter automatisk klargjort av Fargate. Når containerne dine kjører, betaler du kun for ressursene som brukes.

Fargate er en serverløs databehandlingsmotor, siden den eliminerer behovet for sluttbrukere til å administrere serverne som er vert for containere. For å være tydelig, serverne er fortsatt der; AWS administrerer dem ganske enkelt. Fargate må ikke forveksles med AWS Lambda, en annen serverløs databehandlingstjeneste som ikke ble opprettet med tanke på containere (selv om Lamba nå støtter distribusjon av containerbilder).

  12 WordPress CV-tema for å skape beste inntrykk

Hvordan hjelper Fargate?

AWS Fargate beregner den nøyaktige mengden databehandling, minne og andre ressurser som kreves for oppgavene dine, slik at du ikke trenger å bekymre deg for å velge forekomsttyper eller skalere klyngekapasiteten.

Den lar deg betale for ressursene du trenger for å betjene containerne dine etter hvert som de brukes, unngå overprovisionering og betale for servere du ikke trenger.

Fargate-oppgaver (pods) utføres i sine egne kjerner, noe som resulterer i et trygt og isolert datamiljø med isolerte arbeidsbelastninger og økt sikkerhet.

Det gjør det mulig for team å designe og kjøre apper ved hjelp av ECS- eller EKS-beholdere uten å måtte håndtere tidkrevende infrastrukturadministrasjonsaktiviteter som skalering og sikring av servere eller patching av operativsystemer.

Med innebygde forbindelser med andre AWS-tjenester som Amazon CloudWatch Container Insights, leverer AWS Fargate et høyt nivå av observerbarhet. Du kan også bruke flere tredjepartsteknologier for å samle inn logger og beregninger.

Vi kan også effektivt utnytte det store utvalget av AWS-tjenester når vi bruker containere med Fargate.

Fargate vil hele tiden lansere og skalere dataressurser for å passe beholderens krav, forhindre overforsyning og sikre at du ikke betaler for ressurser du ikke bruker. Du kan også beregne en sparestrategi, Fargate Spot-alternativet kan spare deg for opptil 70 % avslag på vanlige kostnader, men det er bare optimalt for avbruddsbare applikasjoner.

Komponenter av Fargate

Klynger

En logisk gruppering av oppgaver eller tjenester er en Amazon ECS-klynge. Klynger kan brukes til å isolere applikasjonene dine. Når du bruker Fargate til å utføre oppgavene dine, administrerer den klyngressursene dine.

  Mestre hurtiglesing raskt med Readsy Web App

Oppgavedefinisjoner

En oppgavedefinisjon er en tekstfil som beskriver minst én av applikasjonens containere. Det er en JSON-fil. Den kan brukes til å beskrive opptil ti containere om gangen. Applikasjonens oppgavedefinisjon fungerer som en blåkopi. Den spesifiserer applikasjonens mange parametere.

Du kan for eksempel bruke den til å definere operativsystemparametere, beholdere som skal brukes, porter som skal åpnes for applikasjonen din, og datavolumer som skal brukes med beholderne i oppgaven. Kravene til applikasjonen din bestemmer de spesielle parameterne som er tilgjengelige for oppgavedefinisjon.

Oppgaver

En oppgave er en instansiering på klyngenivå av en oppgavedefinisjon. Når du har opprettet en oppgavedefinisjon for applikasjonen din i Amazon ECS, kan du velge antall oppgaver som skal kjøres på klyngen din. Vi kan kjøre en oppgave som en del av en tjeneste eller en egen prosess.

Tjenester

I en Amazon ECS-klynge kan du bruke en Amazon ECS-tjeneste for å kjøre og vedlikeholde ønsket antall oppgaver samtidig. Amazon ECS-tjenesteplanleggeren kjører en annen forekomst basert på oppgavedefinisjonen din hvis noen av oppgavene dine mislykkes eller stopper av en eller annen grunn. Den gjør dette for å erstatte den og holde antall oppgaver i tjenesten på riktig nivå.

Operativsystem og CPU-arkitektur

Operativsystemene som støttes av Fargate er Amazon Linux 2, Windows server 2019 Full og Windows server 2019 core.

ARM og X86_64 er de to arkitekturene som er tilgjengelige for Amazon ECS-oppgavedefinisjon. Hvis du bruker Windows-beholdere, må du ha en X86_64 CPU-arkitektur. Hvis du derimot bruker Linux-beholdere, kan du bruke ARM64-arkitekturen for dine ARM-baserte applikasjoner og X86_64 CPU-arkitekturen.

ECS med EC2-forekomster vs. ECS med AWS Fargate

I EC2-forekomstmodellen distribueres containere til klyngens EC2-forekomster (VM-er). ECS administrerer dem i forbindelse med oppgaver som er en del av oppgavedefinisjonen.

Fordeler 👍

  • Typen EC2-forekomst som brukes her er helt under din kontroll.
  • Du kan bruke spot-forekomster som reduserer kostnadene med opptil 90 %.
  Slik tilbakestiller du en ruter til fabrikkstandard

Ulemper 👎

  • Du må ta vare på sikkerhetsoppdateringer og nettverkssikkerhet for instansene; Du er også ansvarlig for deres skalerbarhet i klyngen.

I Fargate-modellen trenger du ikke lenger å være bekymret for EC2-forekomster eller servere. Velg CPU- og minnekonfigurasjonen som kreves, og Fargate vil distribuere containerne dine.

Fordeler 👍

  • Du trenger ikke å administrere noen servere.
  • AWS er ​​ansvarlig for tilgjengelighet og skalerbarhet, men det er fortsatt en god praksis å velge riktig minne og CPU; ellers kan applikasjonen vår risikere å bli utilgjengelig.
  • Hvis du bestemmer deg for å bruke Fargate Spot, kan du få opptil 70 % rabatt på Fargate-prisen.

Ulemper 👎

  • ECS med AWS Fargate støtter bare én nettverksmodus -awsvpc-. Som et resultat begrenser dette din kontroll over nettverkslaget.

EKS uten Fargate Vs. EKS med Fargate

I EKS uten Fargate-modellen må du bestemme hvor stor klyngen skal være på forhånd. Du kan alltid endre nodene manuelt senere, men det er plagsomt sammenlignet med å spesifisere den ideelle størrelsen fra starten.

Fordeler 👍

  • Denne modellen gir deg mer kontroll på forskjellige måter som du kan spesifisere konfigurasjonsvariabler som HostNetwork og HostPort.
  • Fargate støttes ikke i alle regioner, så du foretrekker å bruke EKS uten Fargate hvis du vil at containeren din skal være tilgjengelig i flere regioner.

Ulemper 👎

  • EKS uten Fargate er litt vanskelig å bruke.

I EKS med Fargate-modellen trenger du ikke spesifisere størrelsen på klynger på forhånd.

Fordeler 👍

  • EKS med Fargate er sikrere fordi de kjører i dedikerte virtuelle maskiner. Det faktum at den ikke støtter privilegert modus er en slags sikkerhetsfunksjon.
  • Det er billigere i lengden.

Ulemper 👎

  • Det gir deg mindre kontroll på ulike måter

Konklusjon

Fargate er et ekstremt kraftig og modent verktøy. Det sparer deg for kostnader, tid og mye krefter ved å gjøre all infrastrukturadministrasjonen for deg. Fargate er spesielt gunstig hvis du er ny på containere og bare ønsker å fokusere på å bygge applikasjonen din i stedet for å vedlikeholde den.