AWS Solutions Architect · leksjon

EC2-lanseringstype kontra Fargate

Sammenlign det å administrere EC2-containerinstanser selv med å bruke Fargate til serverløs kjøring av containere, og forstå kostnadsavveiningene

Leksjon 2 av 413 trinn

EC2-lanseringstype kontra Fargate er en gratis leksjon i AWS Solutions Architect på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AWS Solutions Architect, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AWS Solutions Architect inneholder totalt 4 leksjoner.

To måter å kjøre ECS-oppgaver på

ECS tilbyr to launch types som bestemmer hvor containerne kjører: EC2 launch type kjører containere på EC2-instanser som De klargjør og administrerer i klyngen, mens Fargate launch type er en serverløs beregningsmotor der AWS håndterer de underliggende serverne fullstendig. Oppgavedefinisjonen og tjenestekonfigurasjonen er nesten identiske mellom dem – den viktigste forskjellen er ansvaret for infrastrukturadministrasjon og kostnadsmodellen.

EC2 launch type: full kontroll

Med EC2 launch type registrerer De EC2-instanser som containerinstanser i klyngen ved hjelp av ECS Container Agent (forhåndsinstallert på ECS-optimaliserte AMI-er). De velger instanstyper, styrer innstillinger på operativsystemnivå, bruker egne sikkerhetsbaselinjer og kan bruke Spot Instances for å redusere kostnadene. ECS plasserer oppgaver på de registrerte instansene basert på strategier for bin-pakking eller spredt plassering. De har selv ansvar for patching, skalering og vedlikehold av den underliggende EC2-flåten.

# Launch an ECS-optimised EC2 instance that joins the cluster
# User data for ECS container agent
#!/bin/bash
echo ECS_CLUSTER=MyAppCluster >> /etc/ecs/ecs.config
echo ECS_ENABLE_CONTAINER_METADATA=true >> /etc/ecs/ecs.config

Fargate: Serverløse containere

Med Fargate angir du CPU og minne per task, og AWS klargjør den underliggende databehandlingen uten at du ser den. Det finnes ingen EC2-instanser som må registreres, oppdateres eller skaleres – AWS håndterer alt dette. Tasker får sin egen isolerte kjerne (via Firecracker-mikroVM-er), noe som gir sterkere sikkerhetsisolasjon enn EC2-containerinstanser, der flere tasker deler samme vert. Fargate krever nettverksmodusen awsvpc, noe som betyr at hver task får sin egen ENI og VPC-IP-adresse.

aws ecs run-task \
  --cluster 'MyAppCluster' \
  --task-definition 'myapp-task:5' \
  --launch-type FARGATE \
  --network-configuration '{
    "awsvpcConfiguration": {
      "subnets": ["subnet-aaa111"],
      "securityGroups": ["sg-xyz"],
      "assignPublicIp": "ENABLED"
    }
  }'

Sammenligning av kostnadsmodeller

Kostnadsmodellene er grunnleggende forskjellige. EC2-lanseringstype: Du betaler for de underliggende EC2-instansene (uavhengig av om tasker kjører), men kan bruke Reserved Instances eller Savings Plans for rabatt og Spot Instances for opptil 90 % besparelse på arbeidsbelastninger som tåler avbrudd. Fargate: Du betaler bare for vCPU og minne som hver task bruker per sekund – ingen kostnad for inaktiv kapasitet mellom tasker. For arbeidsbelastninger med store variasjoner eller batchkjøring er Fargate ofte billigere. For arbeidsbelastninger med jevnt høy utnyttelse kan EC2 med Reserved Instances være billigere.

Fargate Spot for kostnadsbesparelser

Fargate Spot tilbyr Fargate-databehandling til betydelig reduserte priser (opptil 70 % rabatt) mot at det er mulig at kapasiteten avbrytes når AWS trenger den tilbake. Fargate Spot egner seg godt til batchbehandling, CI/CD-pipelines og utviklings- og testmiljøer. Konfigurer en kapasitetsleverandørstrategi for å kombinere Fargate (on-demand) og Fargate Spot: bruk base=1 på Fargate for å sikre minst én garantert task, og bruk weight-verdier til å fordele den resterende kapasiteten mellom begge.

aws ecs create-service \
  --cluster 'MyAppCluster' \
  --service-name 'BatchService' \
  --task-definition 'batch-task:1' \
  --desired-count 10 \
  --capacity-provider-strategy \
    'capacityProvider=FARGATE,weight=1,base=1' \
    'capacityProvider=FARGATE_SPOT,weight=4'

Når du bør velge EC2-lanseringstype

Velg EC2-lanseringstype når du trenger: GPU-instanser (Fargate har begrenset GPU-støtte), bestemte instanstyper som ikke er tilgjengelige i Fargate, tilpasset OS-konfigurasjon (justering av kjernen, egendefinerte drivere), nettverksytelse som krever plasseringsgrupper eller forbedret nettverk, Windows-containere (EC2 støtter Windows Server-containere, mens Fargate støtter Windows med begrensninger), eller når du kjører med jevnt høy utnyttelse og EC2 Reserved Instances gir en betydelig kostnadsfordel sammenlignet med fakturering per sekund i Fargate.

Når du bør velge Fargate

Velg Fargate når du ønsker å: fjerne administrasjonsarbeidet med EC2 (ingen OS-oppdateringer eller klyngeskalering), bare betale for det du bruker per sekund, kjøre arbeidsbelastninger med store variasjoner eller batchkjøring som ikke forsvarer inaktiv EC2-kapasitet, oppnå sterkere isolasjon av tasker via Firecracker-mikroVM-er eller fremskynde utviklingen ved å fokusere utelukkende på applikasjonskoden. Fargate er standardanbefalingen for nye ECS-arbeidsbelastninger på SAA-C03-eksamen, med mindre et spesifikt EC2-krav er oppgitt.

ECS-kapasitetsleverandører

Kapasitetsleverandører abstraherer databehandlingslaget fra ECS-tjenester. For EC2 kobler en kapasitetsleverandør seg til en Auto Scaling-gruppe – ECS skalerer ASG-en automatisk når tasker ikke kan plasseres på grunn av utilstrekkelig kapasitet. For Fargate er FARGATE og FARGATE_SPOT innebygde kapasitetsleverandører. Når du definerer en kapasitetsleverandørstrategi for en tjeneste, kan du kombinere on-demand og Spot/Fargate Spot. Det gir finstemt kontroll over avveiningen mellom kostnad og tilgjengelighet for hver arbeidsbelastning.

Sammenligning av driftsmessig arbeidsmengde

Den driftsmessige arbeidsmengden varierer betydelig mellom lanseringstypene. EC2-lanseringstype krever: valg og oppdatering av AMI, konfigurasjon av EC2 Auto Scaling, OS-oppdateringer via SSM eller egendefinerte skript, kapasitetsstyring av containerinstanser og sikkerhetsherding på instansnivå. Fargate eliminerer alt dette – AWS håndterer oppdatering av Fargate-plattformen, du trenger ikke administrere instanser, og du trenger ikke planlegge klyngekapasitet. Fargate gir imidlertid mindre fleksibilitet for tilpasning på OS-nivå og finjustering av nettverksytelsen.

Dimensjonering av CPU og minne for Fargate-tasker

Fargate-taskdefinisjoner må angi CPU og minne fra et fast sett med kombinasjoner. CPU-verdier: 256, 512, 1024, 2048, 4096, 8192, 16384 (i vCPU-enheter, der 1024 = 1 vCPU). Minnet må ligge innenfor de tillatte områdene for hver CPU-verdi – for eksempel tillater 256 CPU 512–2048 MB minne. Containere i tasken deler taskens grense for CPU og minne. Det er viktig å dimensjonere riktig: Fargate fakturerer nøyaktig det du angir, så overdimensjonering sløser med penger uten å gi noen faktisk ytelsesfordel dersom arbeidsbelastningen er CPU-begrenset.

# Valid Fargate combinations
# 256 CPU (.25 vCPU): 512, 1024, or 2048 MB
# 512 CPU (.5 vCPU): 1024 to 4096 MB
# 1024 CPU (1 vCPU): 2048 to 8192 MB
# 2048 CPU (2 vCPU): 4096 to 16384 MB
# 4096 CPU (4 vCPU): 8192 to 30720 MB

ECS Exec for feilsøking

ECS Exec lar deg åpne en interaktiv shell-økt direkte i en container som kjører (både på EC2 og Fargate), uten SSH eller bastionverter. Funksjonen bruker AWS Systems Manager Session Manager under panseret. Aktiver den på tjenesten, og bruk execute-command-CLI-en til å starte en bash-økt. Dette er svært nyttig når du skal feilsøke problemer i containere i produksjon. Task-rollen trenger ssmmessages:CreateControlChannel og relaterte SSM-tillatelser.

aws ecs execute-command \
  --cluster 'MyAppCluster' \
  --task 'abc123def456' \
  --container 'myapp' \
  --interactive \
  --command '/bin/bash'

Kort kontroll

Test forståelsen din av AWS Solutions Architect-konsepter (SAA-C03) fra denne leksjonen.

Oppsummering av leksjonen

I denne leksjonen lærte du at EC2-lanseringstype gir full kontroll over instanstyper og OS-konfigurasjon, men krever at du administrerer den underliggende instansparken – noe som egner seg godt for GPU-er, spesialisert maskinvare eller arbeidsbelastninger med jevnt høy utnyttelse. Fargate fjerner infrastrukturadministrasjon gjennom fakturering per sekund for tasker og sterk isolasjon med Firecracker – noe som egner seg godt for de fleste web-/API-arbeidsbelastninger og batchjobber. Fargate Spot reduserer kostnadene med opptil 70 % for arbeidsbelastninger som tåler avbrudd. Neste tema er Amazon ECR for lagring og henting av containeravbildninger.

Gratis å komme i gang

Lær deg AWS Solutions Architect med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «EC2-lanseringstype kontra Fargate» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien AWS Solutions Architect, inkludert «EC2-lanseringstype kontra Fargate», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i AWS Solutions Architect inneholder totalt 4 leksjoner.

Hva lærer jeg i «EC2-lanseringstype kontra Fargate»?

Sammenlign det å administrere EC2-containerinstanser selv med å bruke Fargate til serverløs kjøring av containere, og forstå kostnadsavveiningene Du øver på AWS Solutions Architect med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med AWS Solutions Architect?

Ingen tidligere erfaring er nødvendig. AWS Solutions Architect på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «EC2-lanseringstype kontra Fargate»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne AWS Solutions Architect-leksjonen?

Ja. Alle AWS Solutions Architect-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. ECS-klynger, oppgavedefinisjoner og tjenester
  2. EC2-lanseringstype kontra Fargate
  3. ECR: Lagring og henting av containeravbildninger
  4. Automatisk skalering og lastbalansering av ECS-tjenester
← Tilbake til AWS Solutions Architect