Målgrupper og helsesjekker
Registrer EC2-instanser, IP-adresser eller Lambda-funksjoner som mål, og konfigurer stier, terskler og intervaller for helsesjekker.
Målgrupper og helsesjekker 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.
Hva er målgrupper?
En målgruppe er en logisk samling av mål som lastbalansereren ruter forespørsler til. Hver målgruppe har en måltype, en protokoll/port og en konfigurasjon for helsekontroller. Lastbalansereren fordeler forespørsler til de registrerte målene i målgruppen som består helsekontrollene.
Målgrupper knyttes til lyttere på lastbalansereren gjennom lytteregler. Én lytter kan rute til flere målgrupper basert på egenskapene ved forespørselen. Dette er den sentrale mekanismen bak stibasert og vertsbasert ruting 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 støtter tre måltyper:
- instance: ruter til EC2-instanser etter instans-ID; lastbalansereren sender trafikk til instansens primære nettverksgrensesnitt på den angitte porten
- ip: ruter til private IP-adresser—nyttig for mål i containere (ECS/EKS), lokale servere som er tilgjengelige via VPN/Direct Connect, eller sekundære IP-adresser på EC2-instanser
- lambda: ruter til én Lambda-funksjon (bare ALB); ALB konverterer HTTP-forespørselen til en JSON-hendelse og påkaller funksjonen synkront
Måltypen IP er nødvendig for ECS-oppgaver med nettverksmodusen awsvpc (hver oppgave får sin egen IP), for EKS-pods og for hybride arkitekturer med lokale mål.
Registrering av mål
De registrerer mål i en målgruppe manuelt (i konsollen eller CLI) eller automatisk (via tilknytning til en Auto Scaling-gruppe eller konfigurasjon av en ECS-tjeneste). Mål som registreres manuelt, forblir i gruppen til De eksplisitt avregistrerer dem.
For ASG-er knytter De ASG-en til en målgruppe, og ASG-en registrerer automatisk nye instanser og avregistrerer terminerte instanser. Denne tette integrasjonen med ASG er standardmønsteret for elastiske databehandlingslag – nye instanser blir tilgjengelige og begynner å motta trafikk så snart de består helsesjekken.
# 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=8080Konfigurering av helsesjekk
Hver målgruppe har en tilknyttet helsesjekk som lastbalansereren bruker til å avgjøre om et mål er friskt og kvalifisert til å motta trafikk. Helsesjekken sender periodiske forespørsler til hvert mål og evaluerer svaret:
- Protokoll: HTTP, HTTPS eller TCP (for NLB)
- Bane: URL-banen som skal forespørres (f.eks.
/healtheller/ping) - Port: porten som skal kontrolleres (som standard porten til målgruppen)
- Grense for frisk: antall sammenhengende vellykkede kontroller før målet markeres som friskt
- Grense for usunn: antall sammenhengende mislykkede kontroller før målet markeres som usunt
- Intervall: antall sekunder mellom helsesjekkene (5–300)
- Tidsavbrudd: antall sekunder det skal ventes på et svar
Vellykkede statuskoder for helsesjekk
For HTTP-/HTTPS-helsesjekker angir De hvilke HTTP-svarkoder som indikerer at et mål er friskt. Standardverdien er 200, men De kan konfigurere områder som 200-299 eller kommaseparerte verdier som 200,301,302.
Beste praksis er å opprette et eget /health-endepunkt i applikasjonen som bare returnerer 200 når alle kritiske avhengigheter er tilgjengelige (databasetilkobling, hurtigbuffer og nedstrømstjeneste). Ikke bruk rot-URL-en (/) som bane for helsesjekken hvis den utfører kostbare operasjoner eller krever autentisering.
# 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åltilstander: Initial, Healthy, Unhealthy
Et mål går gjennom disse tilstandene etter registrering:
- initial: ELB utfører de første helsesjekkene
- healthy: har bestått det påkrevde antallet sammenhengende helsesjekker og mottar trafikk
- unhealthy: har ikke bestått det påkrevde antallet sammenhengende helsesjekker og er fjernet fra rotasjonen
- draining: avregistrering pågår; eksisterende tilkoblinger får fullføre, men ingen nye tilkoblinger sendes
- unused: er registrert i gruppen, men ingen lytterregel ruter for øyeblikket til denne gruppen
Overvåk CloudWatch-metrikkene UnHealthyHostCount og HealthyHostCount for å oppdage problemer med målparken.
Forsinkelse ved avregistrering (tilkoblingstømming)
Forsinkelse ved avregistrering (tidligere kalt connection draining) er tiden ELB venter på at eksisterende tilkoblinger skal fullføres før et mål endelig avregistreres. Standardverdien er 300 sekunder (5 minutter). I denne perioden sendes ingen nye forespørsler til målet som avregistreres, men forespørsler som allerede er under behandling, får fullføre.
Ved raske utrullinger og termineringer på grunn av automatisk skalering kan De vurdere å redusere dette til 30–60 sekunder hvis applikasjonen behandler forespørsler raskt. For langvarige operasjoner (filopplastinger og videobehandling) bør De beholde en tilstrekkelig lang forsinkelse til at operasjonene kan fullføres uten avbrudd.
# 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=30Lastbalanseringsalgoritmer
Målgrupper støtter ulike lastbalanseringsalgoritmer:
- Round robin (standard for ALB): forespørsler fordeles jevnt etter tur – best når alle mål er likeverdige
- Least outstanding requests (ALB): hver ny forespørsel sendes til målet med færrest forespørsler under behandling – bedre for arbeidsbelastninger med varierende lengde, der noen forespørsler tar lengre tid enn andre
- Flow hash (NLB): fordeler basert på protokoll, kilde-/destinasjons-IP, kilde-/destinasjonsport og TCP-sekvensnummer – sikrer at alle pakker i en TCP-/UDP-flyt går til samme mål
For øktbaserte applikasjoner der alle forespørsler fra en bruker må nå samme mål, bør De aktivere sticky sessions i stedet for å stole på round-robin-fordeling.
Flere målgrupper og vektet ruting
Én ALB-lytterregel kan fordele trafikk på tvers av flere målgrupper med vektede målgrupper. De kan for eksempel rute 90 % av trafikken til en stabil målgruppe og 10 % til en canary-målgruppe ved blågrønne utrullinger – uten å bruke vektet ruting i Route 53.
Vektede målgrupper konfigureres på lytterregel-nivå. Vektene er relative: 90/10 sender 90 % til den første gruppen og 10 % til den andre. Dette skiller seg fra vektet ruting på tvers av flere ALB-er; her skjer fordelingen innenfor én ALB-lytterregel.
Målgrupper og ECS-integrasjon
Når De distribuerer ECS-tjenester bak en ALB, registreres hver ECS-oppgave i ALB-målgruppen ved hjelp av ip target type (for nettverksmodusen awsvpc). ECS-tjenesten håndterer registrering og avregistrering automatisk: nye oppgaver registreres etter at de har bestått helsesjekkene, og oppgaver som stoppes, utløser en forsinkelse ved avregistrering før terminering.
Hver ECS-tjeneste kan registreres med en bestemt portoverstyring. Dermed kan flere ECS-tjenester dele én ALB via ulike lytterregler (bane- eller vertsbaserte) med ulike målgrupper – et vanlig mikrotjenestemønster.
NLB-helsesjekker
Helsesjekkatferden til NLB skiller seg fra ALB:
- NLB støtter helsesjekkprotokollene TCP, HTTP og HTTPS, uavhengig av lytterprotokollen
- NLB-helsesjekker sendes fra NLB-ens IP-adresser i hver AZ – sørg for at sikkerhetsgruppene tillater trafikk fra IP-adressene til NLB-ens delnett, eller bruk sikkerhetsgruppen til selve NLB-en
- For TCP-helsesjekker anser NLB et mål som friskt hvis det godtar en TCP-tilkobling på den angitte porten
- NLB-mål som ikke består helsesjekkene, fjernes per AZ – hvis alle mål i en AZ er usunne, kan NLB utføre lastbalansering på tvers av soner mot friske mål i andre AZ-er (hvis lastbalansering på tvers av soner er aktivert)
Kunnskapssjekk
Test forståelsen Deres av AWS Solutions Architect-konsepter (SAA-C03) fra denne leksjonen.
Oppsummering av leksjonen
I denne leksjonen har De lært at målgrupper inneholder friske, registrerte mål av typen instans, IP eller Lambda, at helsesjekker undersøker mål med jevne mellomrom for å fjerne usunne mål fra rotasjonen, og at forsinkelse ved avregistrering sørger for kontrollert tømming av forespørsler som er under behandling, før målet fjernes. Neste gang skal vi se nærmere på lytterregler og bane- basert ruting på ALB.
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 «Målgrupper og helsesjekker» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien AWS Solutions Architect, inkludert «Målgrupper og helsesjekker», 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 «Målgrupper og helsesjekker»?
Registrer EC2-instanser, IP-adresser eller Lambda-funksjoner som mål, og konfigurer stier, terskler og intervaller for helsesjekker. 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 «Målgrupper og helsesjekker»?
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
- ALB vs NLB vs GLB: Når bør De bruke hva
- Målgrupper og helsesjekker
- Listenerregler og stibasert ruting
- SSL-terminering og klebrige økter