AWS Fargate: Kjør containere uten serveradministrasjon!

AWS Fargate: En Innføring

AWS Fargate er en teknologi som integreres med Amazon ECS og Amazon EKS, og tilbyr en metode for å kjøre containere uten å måtte administrere servere eller klynger av Amazon EC2-instanser. Dette gir en betydelig forenkling av prosessen.

Fargate eliminerer behovet for å konfigurere, skalere eller klargjøre virtuelle maskinklynger for å håndtere containere. Det innebærer at du ikke lenger må tenke på valg av servertyper, planlegging av klyngeskalering eller optimalisering av klyngepakking. Alt dette håndteres av Fargate.

For å kjøre Amazon ECS-oppgaver og -tjenester, kan vi velge Fargate-starttypen eller bruke en Fargate-kapasitetsleverandør. For å bruke Fargate, pakker du applikasjonen din i containere, spesifiserer kravene til operativsystem, CPU og minne, setter opp nettverks- og IAM-policyer, og starter den. Fargate tar seg av resten.

Det er ikke nødvendig å opprettholde en minimumskapasitet for CPU og RAM for å hoste containere. Du forteller AWS hvor mye ressurser en oppgave trenger, og AWS tar seg av resten. Hver Fargate-oppgave har sin egen isolerte barriere og deler ikke underliggende kjerne, CPU, minne eller elastisk nettverksgrensesnitt med andre oppgaver. Dette gir økt sikkerhet og stabilitet.

Hvordan fungerer Fargate?

Fargate tillater deg å distribuere containere uten å måtte sette opp eller administrere den underliggende infrastrukturen. Du oppgir hvilke containerbilder du ønsker å kjøre, og hvor mange CPU- og minneressurser du vil allokere. Fargate sørger automatisk for klargjøring av de nødvendige serverne. Du betaler kun for de ressursene som faktisk brukes av containerne dine.

Fargate fungerer som en serverløs databehandlingsmotor, da den eliminerer behovet for at brukere skal håndtere serverne som containerne kjører på. Det er viktig å merke seg at selv om serverne fortsatt eksisterer, administreres de fullstendig av AWS. Fargate er forskjellig fra AWS Lambda, som er en annen serverløs tjeneste som ikke opprinnelig var designet for containere (selv om Lambda nå støtter distribusjon av containerbilder).

Hva er fordelene med Fargate?

AWS Fargate beregner nøyaktig den mengden datakraft, minne og andre ressurser som trengs for dine oppgaver. Dette eliminerer behovet for å bekymre seg for å velge instanstyper eller skalere klyngekapasiteten manuelt.

Du betaler kun for de ressursene containerne dine bruker, noe som reduserer risikoen for overprovisionering og dermed unngår unødvendige kostnader for ubrukte serverressurser.

Fargate-oppgaver kjøres i sine egne isolerte kjerner, noe som gir et sikkert og isolert datamiljø med separate arbeidsmengder og forbedret sikkerhet. Dette er viktig for applikasjoner som håndterer sensitiv data.

Team kan utvikle og kjøre applikasjoner ved hjelp av ECS- eller EKS-containere uten å måtte håndtere tidkrevende oppgaver som å skalere og sikre servere eller oppdatere operativsystemer. Dette frigjør tid til å fokusere på utvikling.

Med integrert støtte for AWS-tjenester som Amazon CloudWatch Container Insights, tilbyr AWS Fargate høy grad av observerbarhet. Det er også mulig å bruke tredjepartsteknologier for å samle inn logger og metrikker.

Fargate muliggjør effektiv utnyttelse av det brede spekteret av AWS-tjenester for containeriserte applikasjoner.

Fargate skalerer kontinuerlig ressurser for å matche containernes behov, noe som hindrer overprovisionering og sikrer at du ikke betaler for ubrukte ressurser. Med Fargate Spot-alternativet kan du spare opptil 70 % på vanlige kostnader, men det er mest egnet for applikasjoner som kan håndtere avbrudd.

Komponenter av Fargate

Klynger

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

Oppgavedefinisjoner

En oppgavedefinisjon er en tekstfil, typisk i JSON-format, som beskriver minst én av applikasjonens containere. Den kan beskrive opptil ti containere. Oppgavedefinisjonen fungerer som en mal og spesifiserer en rekke parametere for applikasjonen.

For eksempel kan du definere operativsystemparametere, hvilke containere som skal brukes, porter som skal åpnes for applikasjonen, og datavolumer som skal benyttes. De spesifikke parameterne som er tilgjengelige, avhenger av applikasjonens krav.

Oppgaver

En oppgave er en instans av en oppgavedefinisjon som kjører i en klynge. Når du har laget en oppgavedefinisjon for applikasjonen din i Amazon ECS, kan du bestemme hvor mange oppgaver som skal kjøres. Du kan kjøre en oppgave som en del av en tjeneste eller som en separat prosess.

Tjenester

En Amazon ECS-tjeneste i en Amazon ECS-klynge håndterer et bestemt antall oppgaver. Hvis en oppgave mislykkes eller stopper, starter tjenesteplanleggeren automatisk en ny instans av oppgaven basert på oppgavedefinisjonen. Dette sikrer at tjenesten alltid opprettholder det ønskede antallet oppgaver.

Operativsystem og CPU-arkitektur

Fargate støtter operativsystemene Amazon Linux 2, Windows Server 2019 Full og Windows Server 2019 Core.

Når det gjelder CPU-arkitektur, tilbyr Fargate ARM og X86_64. For Windows-containere er X86_64 obligatorisk. Linux-containere kan bruke både ARM64 (for ARM-baserte applikasjoner) og X86_64.

ECS med EC2-instanser vs. ECS med AWS Fargate

I EC2-instansmodellen distribueres containere til EC2-instanser (virtuelle maskiner) i klyngen, som administreres av ECS i henhold til oppgavedefinisjonen.

Fordeler 👍

  • Du har full kontroll over typen EC2-instans som brukes.
  • Du kan bruke spot-instanser for å redusere kostnadene med opptil 90 %.

Ulemper 👎

  • Du er ansvarlig for sikkerhetsoppdateringer, nettverkssikkerhet og skalering av instansene i klyngen.

I Fargate-modellen slipper du å bekymre deg for EC2-instanser eller servere. Du velger CPU- og minnekonfigurasjonen, og Fargate distribuerer containerne dine.

Fordeler 👍

  • Ingen behov for serveradministrasjon.
  • AWS håndterer tilgjengelighet og skalerbarhet. Det er likevel viktig å velge riktig minne og CPU for å sikre applikasjonens stabilitet.
  • Med Fargate Spot kan du oppnå opptil 70 % rabatt.

Ulemper 👎

  • ECS med AWS Fargate støtter kun nettverksmodusen -awsvpc-. Dette gir mindre kontroll over nettverkslaget.

EKS uten Fargate vs. EKS med Fargate

I EKS uten Fargate-modellen må du definere klyngens størrelse på forhånd. Du kan justere nodene senere, men det er mer praktisk å spesifisere den ideelle størrelsen fra starten.

Fordeler 👍

  • Du har mer kontroll med konfigurasjonsvariabler som HostNetwork og HostPort.
  • Fargate er ikke tilgjengelig i alle regioner. Derfor kan det være nødvendig å bruke EKS uten Fargate dersom du vil at containeren din skal være tilgjengelig i flere regioner.

Ulemper 👎

  • EKS uten Fargate kan være noe vanskeligere å bruke.

Med EKS med Fargate-modellen slipper du å definere størrelsen på klyngen på forhånd.

Fordeler 👍

  • EKS med Fargate er sikrere fordi arbeidsbelastningene kjøres i dedikerte virtuelle maskiner. Fraværet av privilegert modus forbedrer sikkerheten.
  • Det er ofte mer kostnadseffektivt på lang sikt.

Ulemper 👎

  • Du har mindre kontroll over noen aspekter av konfigurasjonen.

Konklusjon

Fargate er et kraftig verktøy som gir store besparelser i kostnader, tid og innsats. Det automatiserer infrastrukturadministrasjonen, slik at du kan fokusere på applikasjonsutvikling. Fargate er spesielt fordelaktig for de som er nye innen containere og ønsker å fokusere på applikasjonsutviklingen i stedet for å administrere underliggende infrastruktur.