Target groups en health checks
Registreer EC2-instances, IP-adressen of Lambda-functies als targets en configureer paden, drempelwaarden en intervallen voor health checks.
Target groups en health checks is een gratis Cloud & IT Cert Prep-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cloud & IT Cert Prep. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.
Wat zijn doelgroepen?
Een doelgroep is een logische verzameling doelen waarnaar de load balancer aanvragen routeert. Elke doelgroep heeft een doeltype, een protocol/poort en een configuratie voor statuscontroles. De load balancer verdeelt aanvragen over geregistreerde doelen in de doelgroep die de statuscontroles doorstaan.
Doelgroepen worden via listenerregels gekoppeld aan listeners van load balancers. Eén listener kan aanvragen naar meerdere doelgroepen routeren op basis van kenmerken van de aanvraag. Dit is het belangrijkste mechanisme achter routering op basis van paden en hosts in 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 30Doeltypen: instance, IP, Lambda
Doelgroepen ondersteunen drie doeltypen:
- instance: routeert naar EC2-instanties op basis van de instantie-ID; de load balancer stuurt verkeer naar de primaire netwerkinterface van de instantie op de opgegeven poort
- ip: routeert naar privé-IP-adressen—handig voor doelen in containers (ECS/EKS), on-premises servers die bereikbaar zijn via VPN/Direct Connect of secundaire IP-adressen van EC2-instanties
- lambda: routeert naar één Lambda-functie (alleen ALB); ALB converteert de HTTP-aanvraag naar een JSON-gebeurtenis en roept de functie synchroon aan
Het doeltype IP is vereist voor ECS-taken met de netwerkmodus awsvpc (elke taak krijgt een eigen IP-adres), voor EKS-pods en voor hybride architecturen met on-premises doelen.
Doelservers registreren
Je registreert doelservers handmatig (in de console of CLI) of automatisch (via koppeling aan een Auto Scaling Group of configuratie van een ECS-service) bij een doelgroep. Handmatig geregistreerde doelservers blijven in de groep totdat je ze expliciet deregistreert.
Bij ASG's koppel je de ASG aan een doelgroep. De ASG registreert automatisch nieuw gestarte instanties en deregistreert beëindigde instanties. Deze nauwe integratie met ASG is het standaardpatroon voor elastische computelagen: nieuwe instanties komen online en ontvangen verkeer zodra ze de statuscontrole doorstaan.
# 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=8080Configuratie van statuscontroles
Elke doelgroep heeft een bijbehorende statuscontrole die de load balancer gebruikt om te bepalen of een doelserver gezond is en verkeer mag ontvangen. De statuscontrole verstuurt periodiek verzoeken naar elke doelserver en beoordeelt het antwoord:
- Protocol: HTTP, HTTPS of TCP (voor NLB)
- Pad: het URL-pad dat moet worden opgevraagd (bijvoorbeeld
/healthof/ping) - Poort: de poort die moet worden gecontroleerd (standaard de poort van de doelgroep)
- Drempelwaarde voor gezond: het aantal opeenvolgende geslaagde controles voordat de doelserver als gezond wordt gemarkeerd
- Drempelwaarde voor ongezond: het aantal opeenvolgende mislukte controles voordat de doelserver als ongezond wordt gemarkeerd
- Interval: het aantal seconden tussen statuscontroles (5–300)
- Time-out: het aantal seconden dat op een antwoord wordt gewacht
Geslaagde statuscontrole: codes
Voor HTTP/HTTPS-statuscontroles geef je op welke HTTP-antwoordcodes een gezonde doelserver aangeven. De standaardwaarde is 200, maar je kunt bereiken zoals 200-299 of door komma's gescheiden waarden zoals 200,301,302 configureren.
Best practice: maak in je applicatie een speciaal /health-eindpunt dat alleen 200 retourneert wanneer alle kritieke afhankelijkheden beschikbaar zijn (databaseverbinding, cache, downstreamservice). Gebruik de hoofdpagina (/) niet als pad voor de statuscontrole als die dure bewerkingen uitvoert of authenticatie vereist.
# 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 15Statussen van doelservers: initieel, gezond, ongezond
Na registratie doorloopt een doelserver de volgende statussen:
- initial: ELB voert de eerste statuscontroles uit
- healthy: de vereiste opeenvolgende statuscontroles zijn geslaagd; de doelserver ontvangt verkeer
- unhealthy: de vereiste opeenvolgende statuscontroles zijn mislukt; de doelserver wordt uit de verdeling verwijderd
- draining: de deregistratie is bezig; bestaande verbindingen mogen worden voltooid, maar er worden geen nieuwe verbindingen verstuurd
- unused: de doelserver is in de groep geregistreerd, maar geen enkele listenerregel routeert momenteel naar deze groep
Houd de CloudWatch-statistieken UnHealthyHostCount en HealthyHostCount in de gaten om problemen met je vloot van doelservers te detecteren.
Deregistratievertraging (verbindingen laten leeglopen)
Deregistratievertraging (voorheen verbindingen laten leeglopen genoemd) is de tijd die ELB wacht totdat bestaande verbindingen zijn voltooid voordat een doelserver definitief wordt gederegistreerd. De standaardwaarde is 300 seconden (5 minuten). Tijdens deze periode worden geen nieuwe verzoeken naar de doelserver in kwestie verstuurd, maar verzoeken die al worden verwerkt mogen worden voltooid.
Voor snelle implementaties en beëindigingen door automatisch schalen kun je deze waarde verlagen naar 30–60 seconden als je applicatie verzoeken snel verwerkt. Voor langlopende bewerkingen (bestandsuploads, videobewerking) houd je de waarde lang genoeg om deze bewerkingen zonder onderbreking te voltooien.
# 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=30Algoritmen voor load balancing
Doelgroepen ondersteunen verschillende algoritmen voor load balancing:
- Round-robin (standaard voor ALB): verzoeken worden gelijkmatig om en om verdeeld — het meest geschikt wanneer alle doelservers gelijkwaardig zijn
- Minste openstaande verzoeken (ALB): elk nieuw verzoek wordt naar de doelserver met de minste verzoeken in verwerking gestuurd — beter voor werklasten met variabele duur, waarbij sommige verzoeken langer duren dan andere
- Flow-hash (NLB): de verdeling is gebaseerd op protocol, bron- en doel-IP-adres, bron- en doelpoort en TCP-volgnummer — hierdoor gaan alle pakketten in een TCP/UDP-stroom naar dezelfde doelserver
Schakel voor sessiegebaseerde applicaties waarbij alle verzoeken van een gebruiker dezelfde doelserver moeten bereiken sticky sessions in, in plaats van te vertrouwen op een round-robinverdeling.
Meerdere doelgroepen en routering met gewichten
Met één ALB-listenerregel kun je verkeer over meerdere doelgroepen verdelen met doelgroepen met gewichten. Je kunt bijvoorbeeld 90% van het verkeer naar een stabiele doelgroep en 10% naar een canary-doelgroep routeren voor blue-green-implementaties, zonder gewogen routering van Route 53 te gebruiken.
Doelgroepen met gewichten worden geconfigureerd op regelniveau van de listener. De gewichten zijn relatief: 90/10 stuurt 90% naar de eerste groep en 10% naar de tweede. Dit verschilt van gewogen routering over meerdere ALB's; hier vindt de verdeling plaats binnen één ALB-listenerregel.
Doelgroepen en ECS-integratie
Wanneer je ECS-services achter een ALB implementeert, wordt elke ECS-task bij de ALB-doelgroep geregistreerd met het ip-doeltype (voor de netwerkmodus awsvpc). De ECS-service beheert registratie en deregistratie automatisch: nieuwe tasks worden geregistreerd nadat ze de statuscontroles hebben doorstaan, en bij het stoppen van tasks wordt vóór beëindiging de deregistratievertraging toegepast.
Elke ECS-service kan met een specifieke poortoverschrijving worden geregistreerd. Hierdoor kunnen meerdere ECS-services één ALB delen via verschillende listenerregels (op basis van pad of host) met verschillende doelgroepen — een veelgebruikt microservicespatroon.
NLB-statuscontroles
Het gedrag van NLB-statuscontroles verschilt van dat van ALB:
- NLB ondersteunt de protocollen TCP, HTTP en HTTPS voor statuscontroles, ongeacht het listenerprotocol
- NLB-statuscontroles worden verstuurd vanaf de IP-adressen van de NLB in elke AZ — zorg ervoor dat beveiligingsgroepen verkeer vanaf de subnet-IP-adressen van de NLB toestaan, of gebruik de beveiligingsgroep van de NLB zelf
- Bij TCP-statuscontroles beschouwt NLB een doelserver als gezond wanneer die een TCP-verbinding op de opgegeven poort accepteert
- NLB-doelservers die statuscontroles niet doorstaan, worden per AZ verwijderd — als alle doelservers in een AZ ongezond zijn, kan NLB verkeer zoneoverschrijdend verdelen over gezonde doelservers in andere AZ's (als zoneoverschrijdende LB is ingeschakeld)
Korte controle
Test je begrip van de AWS Solutions Architect-concepten (SAA-C03) uit deze les.
Samenvatting van de les
In deze les heb je geleerd dat doelgroepen gezonde, geregistreerde doelservers bevatten van het type instantie, IP of Lambda, dat statuscontroles doelservers periodiek controleren om ongezonde doelservers uit de verdeling te verwijderen, en dat deregistratievertraging zorgt voor het gecontroleerd leeg laten lopen van verzoeken die nog worden verwerkt voordat een doelserver wordt verwijderd. Hierna bekijken we listenerregels en routering op basis van paden op de ALB.
Leer Cloud & IT Cert Prep 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
- 150
- Lessen
- 600
Veelgestelde vragen
Is de les “Target groups en health checks” gratis?
Ja — de volledige tekst van “Target groups en health checks” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cloud & IT Cert Prep wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.
Wat leer ik in “Target groups en health checks”?
Registreer EC2-instances, IP-adressen of Lambda-functies als targets en configureer paden, drempelwaarden en intervallen voor health checks. Je oefent met Cloud & IT Cert Prep 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 Cloud & IT Cert Prep te beginnen?
Ervaring vooraf is niet nodig. Cloud & IT Cert Prep 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 “Target groups en health checks”?
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 Cloud & IT Cert Prep?
Ja. Elke les over Cloud & IT Cert Prep 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
- ALB versus NLB versus GLB: wanneer gebruikt u welke
- Target groups en health checks
- Listener rules en routing op basis van paden
- SSL-terminatie en sticky sessions