Target Groups und Health Checks
Registrieren Sie EC2-Instances, IP-Adressen oder Lambda-Funktionen als Targets und konfigurieren Sie Pfade, Schwellenwerte und Intervalle für Health Checks.
Target Groups und Health Checks ist eine kostenlose AWS Solutions Architect-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AWS Solutions Architect-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.
Was sind Zielgruppen?
Eine Zielgruppe ist eine logische Sammlung von Zielen, an die der Load Balancer Anfragen weiterleitet. Jede Zielgruppe verfügt über einen Zieltyp, ein Protokoll/einen Port und eine Konfiguration für Zustandsprüfungen. Der Load Balancer verteilt Anfragen auf die registrierten Ziele der Zielgruppe, die die Zustandsprüfungen bestehen.
Zielgruppen werden über Listener-Regeln mit Listenern von Load Balancern verknüpft. Ein Listener kann Anfragen anhand von Anfrageattributen an mehrere Zielgruppen weiterleiten. Dies ist der zentrale Mechanismus hinter pfad- und hostbasiertem Routing im 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 30Zieltypen: Instance, IP, Lambda
Zielgruppen unterstützen drei Zieltypen:
- instance: leitet anhand der Instance-ID an EC2-Instanzen weiter; der Load Balancer sendet den Datenverkehr über die primäre Netzwerkschnittstelle der Instanz an den angegebenen Port
- ip: leitet an private IP-Adressen weiter – nützlich für Ziele in Containern (ECS/EKS), On-Premises-Server, die über VPN/Direct Connect erreichbar sind, oder sekundäre IPs von EC2-Instanzen
- lambda: leitet an eine einzelne Lambda-Funktion weiter (nur ALB); der ALB wandelt die HTTP-Anfrage in ein JSON-Ereignis um und ruft die Funktion synchron auf
Der Zieltyp IP ist für ECS-Tasks mit dem Netzwerkmodus awsvpc (jeder Task erhält eine eigene IP), für EKS-Pods und für hybride Architekturen mit On-Premises-Zielen erforderlich.
Ziele registrieren
Sie registrieren Ziele manuell (über die Konsole oder CLI) oder automatisch (durch die Zuordnung einer Auto Scaling Group oder die Konfiguration eines ECS-Service) bei einer Zielgruppe. Manuell registrierte Ziele bleiben in der Gruppe, bis Sie sie ausdrücklich deregistrieren.
Bei ASGs ordnen Sie die ASG einer Zielgruppe zu. Die ASG registriert neu gestartete Instances automatisch und deregistriert beendete Instances. Diese enge Integration mit ASGs ist das Standardmuster für elastische Compute-Tiers: Neue Instances werden gestartet und empfangen Datenverkehr, sobald sie den Health Check bestehen.
# 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=8080Health-Check-Konfiguration
Jede Zielgruppe verfügt über einen zugehörigen Health Check, mit dem der Load Balancer ermittelt, ob ein Ziel gesund ist und Datenverkehr empfangen darf. Der Health Check sendet regelmäßig Anfragen an jedes Ziel und wertet die Antwort aus:
- Protokoll: HTTP, HTTPS oder TCP (für NLBs)
- Pfad: der anzufordernde URL-Pfad (z. B.
/healthoder/ping) - Port: der zu prüfende Port (standardmäßig der Port der Zielgruppe)
- Schwellenwert für „gesund“: aufeinanderfolgende erfolgreiche Prüfungen, bevor das Ziel als gesund markiert wird
- Schwellenwert für „ungesund“: aufeinanderfolgende fehlgeschlagene Prüfungen, bevor das Ziel als ungesund markiert wird
- Intervall: Sekunden zwischen den Health Checks (5–300)
- Timeout: Sekunden, die auf eine Antwort gewartet wird
Erfolgreiche Health-Check-Statuscodes
Bei HTTP-/HTTPS-Health-Checks legen Sie fest, welche HTTP-Antwortcodes ein gesundes Ziel anzeigen. Standardmäßig ist dies 200. Sie können jedoch auch Bereiche wie 200-299 oder durch Kommas getrennte Werte wie 200,301,302 konfigurieren.
Bewährte Vorgehensweise: Erstellen Sie in Ihrer Anwendung einen dedizierten Endpunkt /health, der nur dann 200 zurückgibt, wenn alle kritischen Abhängigkeiten verfügbar sind (Datenbankverbindung, Cache, nachgelagerter Service). Verwenden Sie nicht die Stamm-URL (/) als Health-Check-Pfad, wenn dabei aufwendige Vorgänge ausgeführt werden oder eine Authentifizierung erforderlich ist.
# 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 15Zustände von Zielen: Initial, Healthy, Unhealthy
Nach der Registrierung durchläuft ein Ziel die folgenden Zustände:
- initial: ELB führt die ersten Health Checks durch
- healthy: Die erforderliche Anzahl aufeinanderfolgender Health Checks wurde bestanden; das Ziel empfängt Datenverkehr
- unhealthy: Die erforderliche Anzahl aufeinanderfolgender Health Checks wurde nicht bestanden; das Ziel wird aus der Verteilung entfernt
- draining: Die Deregistrierung läuft; bestehende Verbindungen dürfen abgeschlossen werden, es werden jedoch keine neuen Verbindungen gesendet
- unused: Das Ziel ist in der Gruppe registriert, aber derzeit leitet keine Listener-Regel Datenverkehr an diese Gruppe weiter
Überwachen Sie die CloudWatch-Metriken UnHealthyHostCount und HealthyHostCount, um Probleme mit Ihrer Zielflotte zu erkennen.
Deregistrierungsverzögerung (Connection Draining)
Die Deregistrierungsverzögerung (früher Connection Draining genannt) bezeichnet die Zeit, die ELB auf den Abschluss bestehender Verbindungen wartet, bevor ein Ziel endgültig deregistriert wird. Der Standardwert beträgt 300 Sekunden (5 Minuten). Während dieses Zeitraums werden keine neuen Anfragen an das Ziel gesendet, dessen Deregistrierung läuft. Bereits laufende Anfragen dürfen jedoch abgeschlossen werden.
Für schnelle Deployments und das Beenden von Instances durch Auto Scaling können Sie den Wert auf 30–60 Sekunden reduzieren, wenn Ihre Anwendung Anfragen schnell verarbeitet. Bei lang laufenden Vorgängen (Dateiuploads, Videoverarbeitung) sollten Sie einen ausreichend langen Zeitraum wählen, damit diese Vorgänge ohne Unterbrechung abgeschlossen werden können.
# 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-Algorithmen
Zielgruppen unterstützen verschiedene Load-Balancing-Algorithmen:
- Round Robin (ALB-Standard): Anfragen werden abwechselnd gleichmäßig verteilt – am besten geeignet, wenn alle Ziele gleichwertig sind
- Least outstanding requests (ALB): Jede neue Anfrage wird an das Ziel mit den wenigsten laufenden Anfragen gesendet – besser geeignet für Workloads mit unterschiedlicher Laufzeit, bei denen manche Anfragen länger dauern als andere
- Flow hash (NLB): Die Verteilung basiert auf Protokoll, Quell-/Ziel-IP, Quell-/Zielport und TCP-Sequenznummer. Dadurch werden alle Pakete eines TCP-/UDP-Flows an dasselbe Ziel gesendet
Bei sitzungsbasierten Anwendungen, bei denen alle Anfragen eines Benutzers dasselbe Ziel erreichen müssen, aktivieren Sie Sticky Sessions, anstatt sich auf die Round-Robin-Verteilung zu verlassen.
Mehrere Zielgruppen und gewichtetes Routing
Eine einzelne ALB-Listener-Regel kann Datenverkehr mithilfe von gewichteten Zielgruppen auf mehrere Zielgruppen verteilen. Sie können beispielsweise 90 % des Datenverkehrs an eine stabile Zielgruppe und 10 % an eine Canary-Zielgruppe weiterleiten, um Blue-Green-Deployments durchzuführen – ohne gewichtetes Routing in Route 53 zu verwenden.
Gewichtete Zielgruppen werden auf Ebene der Listener-Regel konfiguriert. Die Gewichtungen sind relativ: Bei 90/10 werden 90 % an die erste Gruppe und 10 % an die zweite gesendet. Dies unterscheidet sich vom gewichteten Routing über mehrere ALBs. Hier erfolgt die Verteilung innerhalb einer einzelnen ALB-Listener-Regel.
Zielgruppen- und ECS-Integration
Wenn Sie ECS-Services hinter einem ALB bereitstellen, wird jede ECS-Task mithilfe des ip target type bei der ALB-Zielgruppe registriert (bei Verwendung des Netzwerkmodus awsvpc). Der ECS-Service verwaltet die Registrierung und Deregistrierung automatisch: Neue Tasks werden registriert, nachdem sie die Health Checks bestanden haben, und beim Stoppen von Tasks wird vor deren Beendigung die Deregistrierungsverzögerung ausgelöst.
Jeder ECS-Service kann mit einer bestimmten Portüberschreibung registriert werden. Dadurch können mehrere ECS-Services über unterschiedliche Listener-Regeln (pfad- oder hostbasiert) und verschiedene Zielgruppen einen einzelnen ALB gemeinsam nutzen – ein gängiges Muster für Microservices.
NLB-Health-Checks
Das Verhalten von NLB-Health-Checks unterscheidet sich von dem eines ALB:
- NLB unterstützt die Health-Check-Protokolle TCP, HTTP und HTTPS unabhängig vom Listener-Protokoll
- NLB-Health-Checks werden von den IP-Adressen des NLB in jeder AZ gesendet. Stellen Sie sicher, dass Sicherheitsgruppen Datenverkehr von den Subnetz-IP-Adressen des NLB zulassen, oder verwenden Sie die Sicherheitsgruppe des NLB selbst
- Bei TCP-Health-Checks betrachtet NLB ein Ziel als gesund, wenn es eine TCP-Verbindung am angegebenen Port akzeptiert
- NLB-Ziele, die Health Checks nicht bestehen, werden pro AZ entfernt. Wenn alle Ziele einer AZ ungesund sind, kann NLB den Load Balancing über Availability Zones hinweg auf gesunde Ziele in anderen AZs verteilen (sofern Cross-Zone Load Balancing aktiviert ist)
Kurzer Test
Testen Sie Ihr Verständnis der Konzepte aus dieser Lektion für die AWS Solutions Architect-Prüfung (SAA-C03).
Zusammenfassung der Lektion
In dieser Lektion haben Sie gelernt: Zielgruppen enthalten gesunde registrierte Ziele vom Typ Instance, IP oder Lambda, Health Checks prüfen Ziele regelmäßig, um ungesunde Ziele aus der Verteilung zu entfernen, und die Deregistrierungsverzögerung sorgt für ein kontrolliertes Auslaufen laufender Anfragen, bevor ein Ziel entfernt wird. Als Nächstes sehen wir uns Listener-Regeln und pfadbasiertes Routing auf dem ALB an.
Häufig gestellte Fragen
Ist die Lektion „Target Groups und Health Checks“ kostenlos?
Ja — der vollständige Text von „Target Groups und Health Checks“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AWS Solutions Architect-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Target Groups und Health Checks“?
Registrieren Sie EC2-Instances, IP-Adressen oder Lambda-Funktionen als Targets und konfigurieren Sie Pfade, Schwellenwerte und Intervalle für Health Checks. Du übst AWS Solutions Architect mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AWS Solutions Architect zu starten?
Keine Vorkenntnisse erforderlich. AWS Solutions Architect auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Target Groups und Health Checks“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AWS Solutions Architect-Lektion Code schreiben und ausführen?
Ja. Jede AWS Solutions Architect-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- ALB vs. NLB vs. GLB: Wann Sie welchen verwenden
- Target Groups und Health Checks
- Listener-Regeln und pfadbasiertes Routing
- SSL-Terminierung und Sticky Sessions