AWS Solutions Architect · Les

EC2 Launch Type versus Fargate

Vergelijk het zelf beheren van EC2-containerinstanties met het gebruik van Fargate voor serverloze containeruitvoering en begrijp de kostenafwegingen.

Les 2 van 413 stappen

EC2 Launch Type versus Fargate is een gratis AWS Solutions Architect-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject AWS Solutions Architect. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AWS Solutions Architect bevat in totaal 4 lessen.

Twee manieren om ECS-taken uit te voeren

ECS biedt twee launch types die bepalen waar je containers worden uitgevoerd: met het EC2 launch type worden containers uitgevoerd op EC2-instanties die je binnen het cluster inricht en beheert; het Fargate launch type is een serverloze rekenengine waarbij AWS de onderliggende servers volledig beheert. De taakdefinitie en serviceconfiguratie zijn vrijwel identiek voor beide. Het belangrijkste verschil is wie verantwoordelijk is voor infrastructuurbeheer en welk kostenmodel wordt gebruikt.

EC2-launchtype: volledige controle

Met het EC2 launch type registreer je EC2-instanties als containerinstanties in het cluster met behulp van de ECS Container Agent (vooraf geïnstalleerd op voor ECS geoptimaliseerde AMI's). Je kiest instantietypen, beheert instellingen op besturingssysteemniveau, past aangepaste beveiligingsbaselines toe en gebruikt Spot Instances om kosten te besparen. ECS plaatst taken over je geregistreerde instanties op basis van strategieën voor bin-packing of spreiding. Je bent verantwoordelijk voor het patchen, schalen en onderhouden van de onderliggende EC2-vloot.

# 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: serverloze containers

Met Fargate geef je per taak de CPU en het geheugen op, waarna AWS de onderliggende rekenresources onzichtbaar beschikbaar stelt. Je hoeft geen EC2-instanties te registreren, te patchen of te schalen: AWS beheert dit allemaal. Taken krijgen hun eigen geïsoleerde kernel (via Firecracker-micro-VM's), wat zorgt voor sterkere beveiligingsisolatie dan EC2-containerinstanties, waarbij meerdere taken dezelfde host delen. Voor Fargate is de netwerkmodus awsvpc vereist. Dat betekent dat elke taak een eigen ENI en VPC-IP-adres krijgt.

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"
    }
  }'

Vergelijking van kostenmodellen

De kostenmodellen verschillen fundamenteel. EC2-lanceringstype: je betaalt voor de onderliggende EC2-instanties, ongeacht of er taken worden uitgevoerd, maar je kunt Reserved Instances of Savings Plans gebruiken voor korting en Spot Instances voor tot 90% besparing bij onderbreekbare werklasten. Fargate: je betaalt alleen voor de vCPU en het geheugen die elke taak per seconde verbruikt; er zijn geen kosten voor inactiviteit tussen taken. Voor piek- of batchwerklasten is Fargate vaak goedkoper; voor werklasten met constant hoge benutting kunnen EC2-instanties met Reserved Instances goedkoper zijn.

Fargate Spot voor kostenbesparing

Fargate Spot biedt Fargate-rekenresources tegen aanzienlijk lagere prijzen (tot 70% korting), in ruil voor de mogelijkheid dat taken worden onderbroken wanneer AWS de capaciteit weer nodig heeft. Fargate Spot is ideaal voor batchverwerking, CI/CD-pijplijnen en ontwikkel- en stagingomgevingen. Configureer een capaciteitsaanbiedersstrategie om Fargate (on demand) en Fargate Spot te combineren: gebruik base=1 voor Fargate om ten minste één gegarandeerde taak te behouden, en gebruik weight-waarden om de resterende capaciteit over beide te verdelen.

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'

Wanneer kies je het EC2-lanceringstype?

Kies het EC2-lanceringstype wanneer je het volgende nodig hebt: GPU-instanties (Fargate biedt beperkte GPU-ondersteuning), specifieke instantietypen die niet beschikbaar zijn in Fargate, aangepaste configuratie van het besturingssysteem (kernelafstemming, aangepaste stuurprogramma's), netwerkprestaties waarvoor plaatsingsgroepen of verbeterde netwerken nodig zijn, Windows-containers (EC2 ondersteunt Windows Server-containers; Fargate ondersteunt Windows, maar met beperkingen), of wanneer je de resources constant met hoge benutting uitvoert en EC2 Reserved Instances een aanzienlijk kostenvoordeel bieden ten opzichte van facturering per seconde bij Fargate.

Wanneer kies je Fargate?

Kies Fargate wanneer je het volgende wilt: de beheeroverhead van EC2 elimineren (geen patches voor het besturingssysteem en geen schaling van het cluster), alleen betalen voor wat je gebruikt per seconde, piek- of batchwerklasten uitvoeren die geen ongebruikte EC2-capaciteit rechtvaardigen, sterkere isolatie van taken bereiken via Firecracker-micro-VM's, of de ontwikkeling versnellen door je volledig op applicatiecode te richten. Voor het SAA-C03-examen is Fargate de standaardaanbeveling voor nieuwe ECS-werklasten, tenzij er een specifieke EC2-vereiste wordt genoemd.

ECS-capaciteitsaanbieders

Capaciteitsaanbieders abstraheren de rekenlaag van ECS-services. Voor EC2 is een capaciteitsaanbieder gekoppeld aan een Auto Scaling Group. ECS schaalt de ASG automatisch wanneer taken niet kunnen worden geplaatst wegens onvoldoende capaciteit. Voor Fargate zijn FARGATE en FARGATE_SPOT ingebouwde capaciteitsaanbieders. Als je een capaciteitsaanbiedersstrategie voor een service definieert, kun je on-demand en Spot/Fargate Spot combineren. Zo krijg je nauwkeurige controle over de afweging tussen kosten en beschikbaarheid per werklast.

Vergelijking van operationele overhead

De operationele overhead verschilt aanzienlijk per lanceringstype. Het EC2-lanceringstype vereist: selectie en updates van AMI's, configuratie van EC2 Auto Scaling, patches voor het besturingssysteem via SSM of aangepaste scripts, capaciteitsbeheer van containerinstanties en beveiligingsversterking op instantieniveau. Fargate elimineert dit allemaal: AWS verwerkt de patches voor het Fargate-platform, je hoeft geen instanties te beheren en je hoeft geen clustercapaciteit te plannen. Fargate biedt echter minder flexibiliteit voor aanpassingen op besturingssysteemniveau en het afstemmen van netwerkprestaties.

CPU en geheugen voor Fargate-taken bepalen

Taakdefinities voor Fargate moeten CPU en geheugen opgeven uit een vaste reeks combinaties. CPU-waarden: 256, 512, 1024, 2048, 4096, 8192, 16384 (in vCPU-eenheden, waarbij 1024 = 1 vCPU). Het geheugen moet binnen de toegestane bereiken per CPU-waarde vallen; bij 256 CPU is bijvoorbeeld 512-2048 MB geheugen toegestaan. Containers binnen de taak delen de CPU- en geheugenlimiet van de taak. De juiste omvang is belangrijk: Fargate brengt precies in rekening wat je opgeeft. Overprovisioning verspilt dus geld zonder daadwerkelijk prestatievoordeel wanneer de werklasten door de CPU worden begrensd.

# 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 voor foutopsporing

Met ECS Exec kun je rechtstreeks in een actieve container een interactieve shellsessie openen (zowel bij EC2 als Fargate), zonder SSH of bastionhosts. Onder de motorkap gebruikt het AWS Systems Manager Session Manager. Schakel dit in voor de service en gebruik de CLI-opdracht execute-command om een bash-sessie te starten. Dit is bijzonder waardevol voor het opsporen van problemen in containers in productie. De taakrol heeft ssmmessages:CreateControlChannel en gerelateerde SSM-machtigingen nodig.

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

Korte kennistoets

Toets je begrip van de AWS Solutions Architect-concepten (SAA-C03) uit deze les.

Samenvatting van de les

In deze les heb je geleerd dat het EC2-lanceringstype volledige controle geeft over instantietypen en de configuratie van het besturingssysteem, maar dat je daarvoor de onderliggende vloot moet beheren. Dit is ideaal voor GPU's, gespecialiseerde hardware of werklasten met constant hoge benutting. Fargate elimineert infrastructuurbeheer met facturering per seconde per taak en sterke isolatie via Firecracker. Dit is ideaal voor de meeste web- en API-werklasten en batchtaken. Fargate Spot verlaagt de kosten met tot 70% voor werklasten die onderbrekingen kunnen verdragen. Hierna verkennen we Amazon ECR voor het opslaan en ophalen van containerinstallatiekopieën.

Gratis beginnen

Leer AWS Solutions Architect met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “EC2 Launch Type versus Fargate” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad AWS Solutions Architect, waaronder “EC2 Launch Type versus Fargate”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus AWS Solutions Architect bevat in totaal 4 lessen.

Wat leer ik in “EC2 Launch Type versus Fargate”?

Vergelijk het zelf beheren van EC2-containerinstanties met het gebruik van Fargate voor serverloze containeruitvoering en begrijp de kostenafwegingen. Je oefent met AWS Solutions Architect door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met AWS Solutions Architect te beginnen?

Ervaring vooraf is niet nodig. AWS Solutions Architect op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “EC2 Launch Type versus Fargate”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over AWS Solutions Architect?

Ja. Elke les over AWS Solutions Architect bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. ECS-clusters, taakdefinities en services
  2. EC2 Launch Type versus Fargate
  3. ECR: containerimages opslaan en ophalen
  4. Automatisch schalen en load balancing van ECS-services
← Terug naar AWS Solutions Architect