Cloud & IT Cert Prep · Lektion

Startmallar och ASG-konfiguration

Skapa en startmall med rätt AMI, instanstyp och användardata och koppla den sedan till en Auto Scaling Group med minsta, högsta och önskade kapacitet.

Lektion 1 av 413 steg

Startmallar och ASG-konfiguration är en gratis lektion i Cloud & IT Cert Prep på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cloud & IT Cert Prep, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cloud & IT Cert Prep innehåller totalt 4 lektioner.

Vad är en startmall?

En startmall är en versionshanterad ritning som anger för Auto Scaling Groups (och EC2 direkt) hur instanser ska startas. Den samlar AMI-ID, instanstyp, nyckelpar, säkerhetsgrupper och valfria användardata i ett enda återanvändbart dokument. Till skillnad från den äldre Launch Configuration stöder en startmall flera versioner och kan uppdateras utan att ASG:t behöver ersättas.

Skapa en startmall via CLI

Du kan skapa en startmall med AWS CLI med hjälp av create-launch-template. Parametern --launch-template-data tar emot ett JSON-objekt som definierar alla inställningar för instansen. Versionshantering gör det möjligt att iterera på mallen utan att påverka körande instanser förrän du är redo att distribuera.

aws ec2 create-launch-template \
  --launch-template-name 'MyAppTemplate' \
  --version-description 'v1 initial' \
  --launch-template-data '{
    "ImageId": "ami-0abcdef1234567890",
    "InstanceType": "t3.medium",
    "KeyName": "my-key-pair",
    "SecurityGroupIds": ["sg-0123456789abcdef0"],
    "UserData": "IyEvYmluL2Jhc2gKZWNobyAnSGVsbG8n"
  }'

Versioner och standardversioner för startmallar

Alla startmallar börjar med version 1. När du skapar en ny version kan du endast åsidosätta de fält som har ändrats – alla andra inställningar ärvs från källversionen. ASG:t kan konfigureras att använda en $Latest-version (alltid den nyaste) eller en $Default-version (den som uttryckligen har angetts som standard). Med $Default får du kontrollerade utrullningar, medan $Latest är praktiskt i utvecklingsmiljöer.

# Create a new version based on version 1, changing only instance type
aws ec2 create-launch-template-version \
  --launch-template-name 'MyAppTemplate' \
  --source-version 1 \
  --launch-template-data '{"InstanceType": "t3.large"}'

Grundläggande koncept för Auto Scaling Group

En Auto Scaling Group (ASG) hanterar en flotta av EC2-instanser inom angivna gränser: minimum (lägsta antal), maximum (högsta antal) och desired capacity (målvärdet för antalet instanser vid varje tidpunkt). När instanser misslyckas med hälsokontroller eller när en skalningsprincip aktiveras startar eller avslutar ASG automatiskt instanser, så att flottan håller sig på det önskade antalet mellan minimi- och maximigränsen.

Skapa en ASG kopplad till en Launch Template

När du skapar en ASG refererar du till en Launch Template (inte direkt till en specifik AMI). Du anger också de VPC-subnät där instanserna ska startas. Genom att fördela instanser över flera subnät (ett per AZ) får du inbyggd redundans över flera AZ:er – om en AZ slutar fungera startar ASG automatiskt ersättningsinstanser i de återstående AZ:erna.

aws autoscaling create-auto-scaling-group \
  --auto-scaling-group-name 'MyAppASG' \
  --launch-template 'LaunchTemplateName=MyAppTemplate,Version=$Default' \
  --min-size 2 \
  --max-size 10 \
  --desired-capacity 4 \
  --vpc-zone-identifier 'subnet-aaa111,subnet-bbb222,subnet-ccc333'

Hälsokontroller för ASG: EC2 kontra ELB

Som standard använder en ASG EC2-hälsokontroller, som endast markerar en instans som ohälsosam om den är stoppad, avslutad eller om hypervisorn rapporterar att den har slutat fungera. När du kopplar en lastbalanserare bör du byta till ELB-hälsokontroller, så att ASG ersätter instanser som körs men returnerar HTTP 5xx-fel. Detta är en vanlig tentafråga: välj alltid ELB-hälsokontroller när arkitekturen innehåller en lastbalanserare.

# Enable ELB health checks on an existing ASG
aws autoscaling update-auto-scaling-group \
  --auto-scaling-group-name 'MyAppASG' \
  --health-check-type ELB \
  --health-check-grace-period 300

Kapacitetsinställningar: min, max och önskat antal

Det är avgörande att ange rätt kapacitetsgränser. Minimum säkerställer att din applikation alltid kan hantera trafik (den går aldrig under detta värde). Maximum förhindrar okontrollerad skalning som kan överskrida tjänstegränser eller budget. Desired capacity är det initiala målet, och skalningsprinciper justerar det dynamiskt. Om du anger min=max=desired fungerar ASG som en grupp med fast storlek, vilket är användbart vid distributioner med Launch Template eller när kapaciteten ska vara låst.

Koppla en ALB-target group till en ASG

För applikationer i webbskiktet kopplar du ASG till en target group för Application Load Balancer. Varje ny instans som startas av ASG registreras automatiskt i target group, och avslutade instanser avregistreras automatiskt. Detta säkerställer att trafik endast går till friska instanser som körs. Du måste också ange hälsokontrolltypen till ELB, så att ASG känner till fel på lastbalanserarnivå.

aws autoscaling attach-load-balancer-target-groups \
  --auto-scaling-group-name 'MyAppASG' \
  --target-group-arns 'arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/MyTG/abc123'

User Data i Launch Templates

User data är ett skalskript (Base64-kodat) som körs en gång när en instans startar för första gången. I en Launch Template är det rätt plats för att installera paket, konfigurera agenter (CloudWatch, SSM) och hämta applikationskod. Se till att user data är idempotent – skript som kan köras säkert flera gånger förebygger problem under instansuppdateringar. För komplexa konfigurationer bör du anropa AWS Systems Manager eller ett verktyg för konfigurationshantering i stället för att bädda in stora skript.

#!/bin/bash
yum update -y
yum install -y amazon-cloudwatch-agent
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
  -a fetch-config -m ec2 -c ssm:/MyApp/CWConfig -s
# Start application
cd /opt/myapp && ./start.sh

Warm Pools för snabbare utökning

En Warm Pool initierar i förväg en uppsättning stoppade (eller körande) EC2-instanser i ett redo-läge utanför ASG. När ASG behöver skala ut hämtar den instanser från warm pool i stället för att starta instanser från grunden – vilket kraftigt minskar tiden det tar att lägga till kapacitet. Instanser i warm pool medför kostnader för stoppat tillstånd (endast EBS, inga CPU-kostnader), vilket gör detta mycket billigare än att hålla fullständigt körande reservinstanser.

Avslutningsprinciper och AZ-balans

När ASG skalar in måste den avgöra vilka instanser som ska avslutas. Standardinställningen för termination policy väljer först den AZ som har flest instanser (för att återställa balansen), sedan den äldsta Launch Template och därefter den instans som är närmast sin fakturerings timme. Du kan anpassa ordningen – välj till exempel OldestLaunchTemplate för att först ta bort instanser med gamla konfigurationer. ASG utför också automatiskt AZ-ombalansering när ett subnät blir tillgängligt eller efter manuella ändringar.

Snabbkontroll

Testa dina kunskaper om AWS Solutions Architect-koncept (SAA-C03) från den här lektionen.

Sammanfattning av lektionen

I den här lektionen har du lärt dig att Launch Templates tillhandahåller en versionshanterad och återanvändbar ritning för instanser som stöder flera versioner samt versionspekare som $Latest/$Default, att ASG-kapacitetsgränser (min/max/desired) styr flottans storlek med automatisk fördelning över flera AZ:er mellan subnät, och att ELB-hälsokontroller måste aktiveras när en ASG ligger bakom en lastbalanserare, så att fel på applikationsnivå utlöser ersättning. Nästa steg är att utforska skalningsprinciper, inklusive target tracking och step scaling.

Gratis att börja

Lär dig Cloud & IT Cert Prep med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
150
Lektioner
600

Vanliga frågor

Är lektionen ”Startmallar och ASG-konfiguration” gratis?

Ja – hela texten till ”Startmallar och ASG-konfiguration” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cloud & IT Cert Prep, kan Ni uppgradera till CoddyKit PRO. Kursen i Cloud & IT Cert Prep innehåller totalt 4 lektioner.

Vad lär jag mig i ”Startmallar och ASG-konfiguration”?

Skapa en startmall med rätt AMI, instanstyp och användardata och koppla den sedan till en Auto Scaling Group med minsta, högsta och önskade kapacitet. Ni övar på Cloud & IT Cert Prep med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Cloud & IT Cert Prep?

Du behöver inga förkunskaper. Utbildningen i Cloud & IT Cert Prep på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Startmallar och ASG-konfiguration”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Cloud & IT Cert Prep-lektionen?

Ja. Varje Cloud & IT Cert Prep-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Startmallar och ASG-konfiguration
  2. Skalningspolicyer: Target Tracking och Step Scaling
  3. Schemalagd och prediktiv skalning
  4. Instansuppdatering och livscykelhakar
← Tillbaka till Cloud & IT Cert Prep