En introduktionsvejledning til AWS Fargate

AWS Fargate er en teknologi, der kan bruges sammen med Amazon ECS og Amazon EKS. Det giver dig mulighed for at køre containere uden at administrere servere eller klynger af Amazon EC2-instanser.

Fargate eliminerer behovet for at konfigurere, skalere eller klargøre virtuelle maskinklynger til at udføre containere. Der vil ikke være behov for at vælge servertyper, planlægge klyngeskalering eller optimere klyngepakning.

Vi kan bruge Fargate-lanceringstypen eller en Fargate-kapacitetsudbyder til at køre dine Amazon ECS-opgaver og -tjenester. For at bruge Fargate kan du pakke din applikation i containere, angive kravene til operativsystem, CPU og hukommelse, konfigurere netværks- og IAM-politikker og starte den.

Der er ingen grund til at opretholde en basis-CPU og RAM-kapacitet til at være vært for containere. Vi kan fortælle AWS, hvor meget ressource en opgave har brug for og overlade resten af ​​opgaven til AWS. Hver Fargate-opgave har sin isolationsbarriere, så den deler ikke den underliggende kerne, CPU, hukommelse eller elastiske netværksgrænseflade med andre opgaver.

Hvordan virker Fargate?

Fargate fungerer ved at give dig mulighed for at implementere containere uden at opsætte eller administrere den infrastruktur, der skal hoste dem. Du fortæller Fargate, hvilke containerbilleder du vil køre, og hvor mange CPU- og hukommelsesressourcer du ønsker at tildele. Værtsserverne bliver derefter automatisk klargjort af Fargate. Når dine containere kører, betaler du kun for de brugte ressourcer.

Fargate er en serverløs computermaskine, da den eliminerer behovet for slutbrugere til at administrere de servere, der hoster containere. For at være klar, er serverne der stadig; AWS administrerer dem simpelthen. Fargate skal ikke forveksles med AWS Lambda, en anden serverløs computertjeneste, der ikke blev oprettet med containere i tankerne (selvom Lamba nu understøtter udrulning af containerbilleder).

  28 Bedste gratis fotoredigeringssoftware til pc

Hvordan hjælper Fargate?

AWS Fargate beregner den nøjagtige mængde af databehandling, hukommelse og andre ressourcer, der kræves til dine opgaver, så du ikke behøver at bekymre dig om at vælge instanstyper eller skalere klyngekapaciteten.

Det giver dig mulighed for at betale for de ressourcer, du har brug for til at betjene dine containere, efterhånden som de bruges, så du undgår overprovisionering og betaler for servere, du ikke har brug for.

Fargate-opgaver (pods) udføres i deres egne kerner, hvilket resulterer i et sikkert og isoleret computermiljø med isolerede arbejdsbelastninger og øget sikkerhed.

Det gør det muligt for teams at designe og køre apps ved hjælp af ECS- eller EKS-containere uden at skulle håndtere tidskrævende infrastrukturstyringsaktiviteter såsom skalering og sikring af servere eller patching af operativsystemer.

Med indbyggede forbindelser med andre AWS-tjenester som Amazon CloudWatch Container Insights, leverer AWS Fargate et højt niveau af observerbarhed. Du kan også bruge flere tredjepartsteknologier til at indsamle logfiler og metrics.

Vi kan også effektivt udnytte det store udvalg af AWS-tjenester, når vi bruger containere med Fargate.

Fargate vil konstant lancere og skalere computerressourcer, så de passer til containerens krav, hvilket forhindrer overforsyning og sikrer, at du ikke betaler for ressourcer, du ikke bruger. Du kan også beregne en besparelsesstrategi, Fargate Spot-muligheden kan spare dig op til 70 % i rabat på almindelige omkostninger, men det er kun optimalt til afbrydelige applikationer.

Komponenter af Fargate

Klynger

En logisk gruppering af opgaver eller tjenester er en Amazon ECS-klynge. Klynger kan bruges til at isolere dine applikationer. Når du bruger Fargate til at udføre dine opgaver, administrerer den dine klyngressourcer.

  32 mest stillede spørgsmål og svar til MuleSoft-interview

Opgavedefinitioner

En opgavedefinition er en tekstfil, der beskriver mindst én af din applikations containere. Det er en JSON-fil. Det kan bruges til at beskrive op til ti beholdere ad gangen. Din applikations opgavedefinition fungerer som en blueprint. Den specificerer din applikations mange parametre.

Du kan f.eks. bruge det til at definere operativsystemparametre, containere, der skal bruges, porte, der skal åbnes for din applikation, og datamængder, der skal bruges sammen med containerne i opgaven. Kravene til din applikation bestemmer de særlige parametre, der er tilgængelige for opgavedefinition.

Opgaver

En opgave er en instansiering på klyngeniveau af en opgavedefinition. Når du har oprettet en opgavedefinition for din applikation i Amazon ECS, kan du vælge antallet af opgaver, der skal køre på din klynge. Vi kan køre en opgave som en del af en service eller en separat proces.

Tjenester

I en Amazon ECS-klynge kan du bruge en Amazon ECS-tjeneste til at køre og vedligeholde dit ønskede antal opgaver samtidigt. Amazon ECS-tjenesteplanlæggeren kører en anden instans baseret på din opgavedefinition, hvis nogen af ​​dine opgaver mislykkes eller stopper af en eller anden grund. Det gør det for at erstatte det og holde antallet af opgaver i tjenesten på det korrekte niveau.

Operativsystem og CPU-arkitektur

Operativsystemerne, der understøttes af Fargate, er Amazon Linux 2, Windows Server 2019 Full og Windows Server 2019 Core.

ARM og X86_64 er de to arkitekturer, der er tilgængelige for Amazon ECS-opgavedefinition. Hvis du bruger Windows-containere, skal du have en X86_64 CPU-arkitektur. I modsætning hertil, hvis du bruger Linux-containere, kan du bruge ARM64-arkitekturen til dine ARM-baserede applikationer og X86_64 CPU-arkitekturen.

ECS med EC2-instanser vs. ECS med AWS Fargate

I EC2-instansmodellen udrulles containere til klyngens EC2-instanser (VM’er). ECS administrerer dem i forbindelse med opgaver, der er en del af opgavedefinitionen.

Fordele 👍

  • Den type EC2-instans, der bruges her, er helt under din kontrol.
  • Du kan bruge spot-forekomster, som reducerer omkostningerne med op til 90 %.
  Sådan indstilles en automatisk udløbsdato for Google Drev-links

Ulemper 👎

  • Du skal sørge for sikkerhedsrettelser og netværkssikkerhed for instanserne; også, du er ansvarlig for deres skalerbarhed i klyngen.

I Fargate-modellen behøver du ikke længere være bekymret for EC2-instanser eller -servere. Vælg den krævede CPU og hukommelseskonfiguration, og Fargate vil implementere dine containere.

Fordele 👍

  • Du behøver ikke at administrere nogen servere.
  • AWS er ​​ansvarlig for tilgængelighed og skalerbarhed, men det er stadig en god praksis at vælge den korrekte hukommelse og CPU; Ellers kan vores applikation risikere at blive utilgængelig.
  • Hvis du beslutter dig for at bruge Fargate Spot, kan du få op til 70% rabat på Fargate-prisen.

Ulemper 👎

  • ECS med AWS Fargate understøtter kun én netværkstilstand -awsvpc-. Som et resultat begrænser dette din kontrol over netværkslaget.

EKS uden Fargate Vs. EKS med Fargate

I EKS uden Fargate-modellen skal du på forhånd beslutte, hvor stor klyngen skal være. Du kan altid ændre noderne manuelt senere, men det er besværligt i forhold til at angive den ideelle størrelse fra starten.

Fordele 👍

  • Denne model giver dig mere kontrol på forskellige måder, som du kan angive konfigurationsvariabler som HostNetwork og HostPort.
  • Fargate er ikke understøttet i alle regionerne, så du foretrækker at bruge EKS uden Fargate, hvis du ønsker, at din container skal være tilgængelig i flere regioner.

Ulemper 👎

  • EKS uden Fargate er lidt svær at bruge.

I EKS med Fargate-modellen behøver du ikke på forhånd at angive størrelsen på klynger.

Fordele 👍

  • EKS med Fargate er mere sikker, fordi de kører inde i dedikerede virtuelle maskiner. Det faktum, at det ikke understøtter privilegeret tilstand, er en slags sikkerhedsfunktion.
  • Det er billigere i længden.

Ulemper 👎

  • Det giver dig mindre kontrol på forskellige måder

Konklusion

Fargate er et ekstremt kraftfuldt og modent værktøj. Det sparer dig for omkostninger, tid og en masse kræfter ved at udføre al infrastrukturstyringen for dig. Fargate er især fordelagtig, hvis du er ny inden for containere og blot ønsker at fokusere på at bygge din applikation frem for at vedligeholde den.