Target groups og health checks
Registrer EC2-instanser, IP-adresser eller Lambda-funktioner som targets, og konfigurer stier, grænseværdier og intervaller for health checks.
Target groups og health checks er en gratis Cloud & IT Cert Prep-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cloud & IT Cert Prep, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Hvad er målgrupper?
En målgruppe er en logisk samling af mål, som load balanceren router forespørgsler til. Hver målgruppe har en måltype, en protokol/port og en konfiguration for tilstandstjek. Load balanceren fordeler forespørgsler til registrerede mål i målgruppen, som består tilstandstjekkene.
Målgrupper knyttes til load balancer-lyttere gennem lytteregler. Én lytter kan route til flere målgrupper baseret på forespørgselsattributter. Dette er den centrale mekanisme bag sti-baseret og værtsbaseret routing i ALB.
# Create a target group for an ALB
aws elbv2 create-target-group \
--name my-web-targets \
--protocol HTTP \
--port 80 \
--vpc-id vpc-12345678 \
--target-type instance \
--health-check-path /health \
--health-check-interval-seconds 30Måltyper: Instance, IP, Lambda
Målgrupper understøtter tre måltyper:
- instance: router til EC2-instanser efter instans-ID; load balanceren sender trafik til instansens primære netværksinterface på den angivne port
- ip: router til private IP-adresser—nyttigt til mål i containere (ECS/EKS), lokale servere, der kan nås via VPN/Direct Connect, eller sekundære IP-adresser på EC2-instanser
- lambda: router til en enkelt Lambda-funktion (kun ALB); ALB konverterer HTTP-forespørgslen til en JSON-hændelse og kalder funktionen synkront
Måltypen IP er påkrævet for ECS-opgaver med netværkstilstanden awsvpc (hver opgave får sin egen IP), for EKS-pods og for hybride arkitekturer med lokale mål.
Registrering af mål
Du registrerer mål i en målgruppe manuelt (i konsollen eller CLI'en) eller automatisk (via tilknytning af en Auto Scaling Group eller konfiguration af en ECS-tjeneste). Mål, der registreres manuelt, forbliver i gruppen, indtil du eksplicit afregistrerer dem.
For ASG'er knytter du ASG'en til en målgruppe, hvorefter ASG'en automatisk registrerer nye instanser og afregistrerer afsluttede instanser. Denne tætte integration med ASG er standardmønsteret for elastiske computerlag – nye instanser kommer online og begynder at modtage trafik, så snart de består sundhedstjekket.
# Register EC2 instances with a target group
aws elbv2 register-targets \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-web-targets/abc123 \
--targets Id=i-1234567890abcdef0 Id=i-0987654321fedcba0
# Register IP targets (for containers/ECS awsvpc)
aws elbv2 register-targets \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-ip-targets/def456 \
--targets Id=10.0.0.5,Port=8080 Id=10.0.0.6,Port=8080Konfiguration af sundhedstjek
Hver målgruppe har et tilknyttet sundhedstjek, som load balanceren bruger til at afgøre, om et mål er sundt og kan modtage trafik. Sundhedstjekket sender periodiske anmodninger til hvert mål og evaluerer svaret:
- Protokol: HTTP, HTTPS eller TCP (for NLB)
- Sti: den URL-sti, der skal anmodes om (f.eks.
/healtheller/ping) - Port: den port, der skal kontrolleres (som standard målgruppens port)
- Tærskel for sund: sammenhængende vellykkede tjek, før målet markeres som sundt
- Tærskel for usund: sammenhængende mislykkede tjek, før målet markeres som usundt
- Interval: sekunder mellem sundhedstjek (5–300)
- Timeout: sekunder, der skal ventes på et svar
Sundhedstjekkets successtatuskoder
For HTTP-/HTTPS-sundhedstjek angiver du, hvilke HTTP-svarkoder der angiver et sundt mål. Standardværdien er 200, men du kan konfigurere intervaller som 200-299 eller kommaseparerede værdier som 200,301,302.
Bedste praksis er at oprette et dedikeret /health-slutpunkt i din applikation, som kun returnerer 200, når alle kritiske afhængigheder er tilgængelige (databaseforbindelse, cache, downstream-tjeneste). Brug ikke rod-URL'en (/) som sti til sundhedstjekket, hvis den udfører ressourcekrævende handlinger eller kræver godkendelse.
# Modify health check to accept 200-299
aws elbv2 modify-target-group \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-web-targets/abc123 \
--health-check-path /health \
--matcher HttpCode=200-299 \
--healthy-threshold-count 2 \
--unhealthy-threshold-count 3 \
--health-check-interval-seconds 15Måltilstande: initial, sundt, usundt
Et mål gennemløber disse tilstande efter registrering:
- initial: ELB udfører de første sundhedstjek
- healthy: har bestået det krævede antal sammenhængende sundhedstjek og modtager trafik
- unhealthy: har ikke bestået det krævede antal sammenhængende sundhedstjek og fjernes fra rotationen
- draining: afregistrering er i gang; eksisterende forbindelser får lov til at afslutte, men der sendes ingen nye forbindelser
- unused: er registreret i gruppen, men ingen listener-regel sender i øjeblikket trafik til denne gruppe
Overvåg CloudWatch-metrikkerne UnHealthyHostCount og HealthyHostCount for at opdage problemer med din målinfrastruktur.
Afregistreringsforsinkelse (forbindelsesafvikling)
Afregistreringsforsinkelse (tidligere kaldet forbindelsesafvikling) er den tid, ELB venter på, at eksisterende forbindelser afsluttes, før et mål endeligt afregistreres. Standardværdien er 300 sekunder (5 minutter). I denne periode sendes ingen nye anmodninger til det mål, der afregistreres, men anmodninger, der allerede er under behandling, får lov til at afslutte.
Ved hurtige udrulninger og afslutning af instanser på grund af automatisk skalering kan du overveje at reducere dette til 30–60 sekunder, hvis din applikation håndterer anmodninger hurtigt. Ved langvarige handlinger (filuploads, videobehandling) bør du beholde en tilstrækkelig lang forsinkelse til, at handlingerne kan afsluttes uden afbrydelser.
# Reduce deregistration delay to 30 seconds
aws elbv2 modify-target-group-attributes \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-web-targets/abc123 \
--attributes Key=deregistration_delay.timeout_seconds,Value=30Load balancing-algoritmer
Målgrupper understøtter forskellige load balancing-algoritmer:
- Round robin (ALB-standard): anmodninger fordeles jævnt efter tur – bedst, når alle mål er ens
- Færrest igangværende anmodninger (ALB): sender hver ny anmodning til det mål, der har færrest anmodninger under behandling – bedre til arbejdsbelastninger med varierende længde, hvor nogle anmodninger tager længere tid end andre
- Flow-hash (NLB): fordeler baseret på protokol, kilde-/destinations-IP, kilde-/destinationsport og TCP-sekvensnummer – sikrer, at alle pakker i et TCP-/UDP-flow sendes til det samme mål
For sessionsbaserede applikationer, hvor alle anmodninger fra en bruger skal nå det samme mål, skal du aktivere sticky sessions i stedet for at være afhængig af round-robin-fordeling.
Flere målgrupper og vægtet routing
En enkelt ALB-listenerregel kan fordele trafik på tværs af flere målgrupper med vægtede målgrupper. Du kan f.eks. sende 90 % af trafikken til en stabil målgruppe og 10 % til en canary-målgruppe ved blue-green-udrulninger – uden at bruge vægtet routing i Route 53.
Vægtede målgrupper konfigureres på listenerregel-niveau. Vægtene er relative: 90/10 sender 90 % til den første gruppe og 10 % til den anden. Det adskiller sig fra vægtet routing på tværs af flere ALB'er; her foregår det inden for en enkelt ALB-listenerregel.
Målgrupper og ECS-integration
Når du udruller ECS-tjenester bag en ALB, registreres hver ECS-opgave i ALB-målgruppen ved hjælp af ip-måltypen (for awsvpc-netværkstilstand). ECS-tjenesten håndterer registrering og afregistrering automatisk: nye opgaver registreres, når de har bestået sundhedstjek, og stoppede opgaver udløser afregistreringsforsinkelsen før afslutning.
Hver ECS-tjeneste kan registreres med en specifik tilsidesættelse af porten, så flere ECS-tjenester kan dele en enkelt ALB via forskellige listenerregler (sti- eller værtsbaserede) med forskellige målgrupper – et almindeligt mikrotjenestemønster.
NLB-sundhedstjek
NLB-sundhedstjek fungerer anderledes end ALB-sundhedstjek:
- NLB understøtter sundhedstjekprotokollerne TCP, HTTP og HTTPS uanset listenerens protokol
- NLB-sundhedstjek sendes fra NLB'ens IP-adresser i hver AZ – sørg for, at sikkerhedsgrupper tillader trafik fra NLB-undernettets IP-adresser, eller brug selve NLB'ens sikkerhedsgruppe
- Ved TCP-sundhedstjek anser NLB et mål for sundt, hvis det accepterer en TCP-forbindelse på den angivne port
- NLB-mål, der ikke består sundhedstjek, fjernes pr. AZ – hvis alle mål i en AZ er usunde, kan NLB udføre load balancing på tværs af zoner til sunde mål i andre AZ'er (hvis load balancing på tværs af zoner er aktiveret)
Hurtigt tjek
Test din forståelse af begreberne fra denne lektion i AWS Solutions Architect (SAA-C03).
Opsummering af lektionen
I denne lektion har du lært, at målgrupper indeholder sunde, registrerede mål af typen instans, IP eller Lambda, at sundhedstjek med jævne mellemrum kontrollerer mål for at fjerne usunde mål fra rotationen, og at afregistreringsforsinkelse sikrer en kontrolleret afvikling af anmodninger under behandling, før mål fjernes. Næste gang undersøger vi listenerregler og stibaseret routing på ALB'en.
Lær Cloud & IT Cert Prep med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 150
- Lektioner
- 600
Ofte stillede spørgsmål
Er lektionen “Target groups og health checks” gratis?
Ja — hele teksten til “Target groups og health checks” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cloud & IT Cert Prep-kurset, skal du opgradere til CoddyKit PRO. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Target groups og health checks”?
Registrer EC2-instanser, IP-adresser eller Lambda-funktioner som targets, og konfigurer stier, grænseværdier og intervaller for health checks. Du øver dig i Cloud & IT Cert Prep med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cloud & IT Cert Prep?
Der kræves ingen tidligere erfaring. Cloud & IT Cert Prep på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Target groups og health checks”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cloud & IT Cert Prep-lektion?
Ja. Alle Cloud & IT Cert Prep-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- ALB vs NLB vs GLB: Hvornår skal De bruge hvad
- Target groups og health checks
- Listenerregler og sti-baseret routing
- SSL-terminering og sticky sessions