Zustand der Zielgruppe - Elastic Load Balancing

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Zustand der Zielgruppe

Standardmäßig gilt eine Zielgruppe als fehlerfrei, solange sie mindestens ein fehlerfreies Ziel hat. Wenn Sie eine große Flotte haben, reicht es nicht aus, nur ein fehlerfreies Ziel zu haben, das den Datenverkehr bereitstellt. Stattdessen können Sie eine Mindestanzahl oder einen Prozentsatz von Zielen angeben, die fehlerfrei sein müssen, und angeben, welche Aktionen der Load Balancer ergreift, wenn die fehlerfreien Ziele unter den angegebenen Schwellenwert fallen. Dies verbessert die Verfügbarkeit.

Maßnahmen bei fehlerhaftem Zustand

Sie können fehlerhafte Schwellenwerte für die folgenden Aktionen konfigurieren:

  • DNS-Failover – Wenn die fehlerfreien Ziele in einer Zone unter den Schwellenwert fallen, markieren wir die IP-Adressen des Load-Balancer-Knotens für die Zone im DNS als fehlerhaft. Wenn Clients den DNS-Namen des Load Balancers auflösen, wird der Datenverkehr daher nur an fehlerfreie Zonen weitergeleitet.

  • Routing-Failover – Wenn die fehlerfreien Ziele in einer Zone unter den Schwellenwert fallen, sendet der Load Balancer den Datenverkehr an alle Ziele, die für den Load-Balancer-Knoten verfügbar sind, einschließlich fehlerhafter Ziele. Dies erhöht die Wahrscheinlichkeit, dass eine Client-Verbindung erfolgreich ist, insbesondere wenn Ziele vorübergehend die Integritätsprüfungen nicht bestehen, und verringert das Risiko, dass die fehlerfreien Ziele überlastet werden.

Anforderungen und Überlegungen

  • Wenn Sie beide Arten von Schwellenwerten für eine Aktion angeben (Anzahl und Prozentsatz), ergreift der Load Balancer die Aktion, wenn einer der Schwellenwerte überschritten wird.

  • Wenn Sie Schwellenwerte für beide Aktionen angeben, muss der Schwellenwert für DNS-Failover größer oder gleich dem Schwellenwert für Routing-Failover sein, sodass der DNS-Failover entweder mit oder vor dem Routing-Failover erfolgt.

  • Wenn Sie den Schwellenwert als Prozentsatz angeben, berechnen wir den Wert dynamisch auf der Grundlage der Gesamtzahl der Ziele, die bei den Zielgruppen registriert sind.

  • Die Gesamtzahl der Ziele hängt davon ab, ob zonenübergreifendes Load Balancing deaktiviert oder aktiviert ist. Wenn zonenübergreifendes Load Balancing deaktiviert ist, sendet jeder Knoten Datenverkehr nur an die Ziele in seiner eigenen Zone, was bedeutet, dass die Schwellenwerte für die Anzahl der Ziele in jeder aktivierten Zone separat gelten. Wenn zonenübergreifende Load Balancing aktiviert ist, sendet jeder Knoten Datenverkehr an alle aktivierten Ziele, was bedeutet, dass die angegebenen Schwellenwerte für die Gesamtanzahl der Ziele in allen aktivierten Zonen gelten. Weitere Informationen finden Sie unter Zonenübergreifendes Load Balancing.

  • Beim DNS-Failover entfernen wir die IP-Adressen für die fehlerhaften Zonen aus dem DNS-Hostnamen für den Load Balancer. Der DNS-Cache des lokalen Clients kann diese IP-Adressen jedoch enthalten, bis die time-to-live (TTL) im DNS-Eintrag abläuft (60 Sekunden).

  • Wenn ein DNS-Failover auftritt, wirkt sich dies auf alle Zielgruppen aus, die dem Load Balancer zugeordnet sind. Stellen Sie sicher, dass Sie in Ihren verbleibenden Zonen über genügend Kapazität verfügen, um diesen zusätzlichen Datenverkehr zu bewältigen, insbesondere wenn das zonenübergreifende Load Balancing deaktiviert ist.

  • Wenn beim DNS-Failover alle Load-Balancer-Zonen als fehlerhaft eingestuft werden, sendet der Load Balancer Datenverkehr an alle Zonen, einschließlich der fehlerhaften Zonen.

  • Neben der Frage, ob genügend fehlerfreie Ziele vorhanden sind, die zu einem DNS-Failover führen könnten, gibt es noch andere Faktoren, z. B. den Zustand der Zone.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie Zustandseinstellungen für Zielgruppen angewendet werden.

Szenario
  • Ein Load Balancer, der zwei Availability Zones, A und B, unterstützt

  • Jede Availability Zone enthält 10 registrierte Ziele

  • Die Zielgruppe hat die folgenden Zustandseinstellungen für Zielgruppen:

    • DNS-Failover – 50 %

    • Routing-Failover – 50 %

  • Sechs Ziele fallen in der Availability Zone B aus

Wenn zonenübergreifendes Load Balancing deaktiviert ist
  • Der Load-Balancer-Knoten in jeder Availability Zone kann Datenverkehr nur an die 10 Ziele in seiner Availability Zone senden.

  • In der Availability Zone A gibt es 10 fehlerfreie Ziele, sodass der erforderliche Prozentsatz fehlerfreier Ziele erreicht wird. Der Load Balancer verteilt weiterhin den Datenverkehr zwischen den 10 fehlerfreien Zielen.

  • In der Availability Zone B gibt es nur 4 fehlerfreie Ziele, was 40 % der Ziele für den Load-Balancer-Knoten in Availability Zone B entspricht. Da dies weniger ist als der erforderliche Prozentsatz fehlerfreier Ziele, ergreift der Load Balancer die folgenden Aktionen:

    • DNS-Failover – Die Availability Zone B ist im DNS als fehlerhaft markiert. Da Clients den Load-Balancer-Namen nicht in den Load-Balancer-Knoten in Availability Zone B auflösen können und Availability Zone A fehlerfrei ist, senden Clients neue Verbindungen zur Availability Zone A.

    • Routing-Failover – Wenn neue Verbindungen explizit an Availability Zone B gesendet werden, verteilt der Load Balancer den Datenverkehr an alle Ziele in Availability Zone B, einschließlich der fehlerhaften Ziele. Dadurch werden Ausfälle bei den verbleibenden fehlerlosen Zielen verhindert.

Wenn zonenübergreifendes Load Balancing aktiviert ist
  • Jeder Load-Balancer-Knoten kann Datenverkehr an alle 20 registrierten Ziele in beiden Availability Zones senden.

  • Es gibt 10 fehlerfreie Ziele in Availability Zone A und 4 fehlerfreie Ziele in Availability Zone B, also insgesamt 14 fehlerfreie Ziele. Das sind 70 % der Ziele für die Load-Balancer-Knoten in beiden Availability Zones, wodurch der erforderliche Prozentsatz fehlerfreier Ziele erreicht wird.

  • Der Load Balancer verteilt den Datenverkehr zwischen den 14 fehlerfreien Zielen in beiden Availability Zones.

Ändern der Zustandseinstellungen der Zielgruppe

Sie können die Zustandseinstellungen für Ihre Zielgruppe wie folgt ändern.

So ändern Sie die Zustandseinstellungen für eine Zielgruppe mithilfe der Konsole
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich unter Load Balancing die Option Load Balancer aus.

  3. Wählen Sie den Namen der Zielgruppe aus, um deren Detailseite zu öffnen.

  4. Klicken Sie auf der Registerkarte Attribute auf Bearbeiten.

  5. Überprüfen Sie, ob zonenübergreifendes Load Balancing aktiviert oder deaktiviert ist. Aktualisieren Sie diese Einstellung nach Bedarf, um sicherzustellen, dass Sie über genügend Kapazität verfügen, um den zusätzlichen Datenverkehr zu bewältigen, falls eine Zone ausfällt.

  6. Erweitern Sie die Anforderungen an den Zustand der Zielgruppe.

  7. Wir empfehlen, dass Sie als Konfigurationstyp die Option Einheitliche Konfiguration wählen, wodurch für beide Aktionen derselbe Schwellenwert festgelegt wird.

  8. Führen Sie für Anforderungen für fehlerfreie Zustände einen der folgenden Schritte aus:

    • Wählen Sie Mindestanzahl fehlerfreier Ziele aus und geben Sie dann eine Zahl zwischen 1 und der maximalen Anzahl von Zielen für Ihre Zielgruppe ein.

    • Wählen Sie Mindestprozentsatz fehlerfreier Ziele und geben Sie dann eine Zahl zwischen 1 und 100 ein.

  9. Wählen Sie Änderungen speichern aus.

Um die Gesundheitseinstellungen für Zielgruppen zu ändern, verwenden Sie AWS CLI

Verwenden Sie den modify-target-group-attributes-Befehl. Im folgenden Beispiel wird der Schwellenwert für den fehlerfreien Zustand für beide Aktionen mit einem fehlerhaften Zustand auf 50 % festgelegt.

aws elbv2 modify-target-group-attributes \ --target-group-arn arn:aws:elasticloadbalancing:region:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 \ --attributes Key=target_group_health.dns_failover.minimum_healthy_targets.percentage,Value=50 \ Key=target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage,Value=50

Verbindungsabbruch für fehlerhafte Ziele

Der Verbindungsabbruch ist standardmäßig aktiviert. Wenn das Ziel eines Network Load Balancer die konfigurierten Integritätsprüfungen nicht besteht und als fehlerhaft eingestuft wird, beendet der Load Balancer bestehende Verbindungen und beendet das Routing neuer Verbindungen zum Ziel. Wenn der Verbindungsabbruch deaktiviert ist, gilt das Ziel immer noch als fehlerhaft und empfängt keine neuen Verbindungen. Etablierte Verbindungen bleiben jedoch aktiv, sodass sie problemlos geschlossen werden können.

Der Verbindungsabbruch für fehlerhafte Ziele kann für jede Zielgruppe individuell festgelegt werden.

So ändern Sie die Einstellung für den Verbindungsabbruch mithilfe der Konsole
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich unter Load Balancing die Option Load Balancer aus.

  3. Wählen Sie den Namen der Zielgruppe aus, um deren Detailseite zu öffnen.

  4. Klicken Sie in der Registerkarte Attribute auf Bearbeiten.

  5. Wählen Sie unter Verwaltung des fehlerhaften Zustands von Zielen aus, ob die Option Verbindungen beenden, wenn Ziele fehlerhaft werden aktiviert oder deaktiviert sein soll.

  6. Wählen Sie Änderungen speichern aus.

Um die Einstellung für den Verbindungsabbruch zu ändern, verwenden Sie AWS CLI

Verwenden Sie den modify-target-group-attributesBefehl mit dem target_health_state.unhealthy.connection_termination.enabled Attribut.

Ungesundes Entleerungsintervall

Wichtig

Der Verbindungsabbruch muss deaktiviert werden, bevor das Intervall für fehlerhafte Entleerungen aktiviert wird.

Ziele in diesem unhealthy.draining Status gelten als fehlerhaft, empfangen keine neuen Verbindungen, behalten aber bestehende Verbindungen für das konfigurierte Intervall bei. Das Verbindungsintervall für fehlerhafte Verbindungen bestimmt, wie lange das Ziel in dem Status verbleibt, bevor er in den unhealthy.draining Status wechselt. unhealthy Wenn das Ziel während des Verbindungsintervalls für fehlerhafte Verbindungen die Zustandsprüfungen bestanden hat, wird healthy sein Status erneut geändert. Wenn eine Abmeldung ausgelöst wird, wird der Status des Ziels geändert draining und das Zeitlimit für die Abmeldeverzögerung beginnt.

Das Intervall für ungesunde Entleerungen kann für jede Zielgruppe individuell festgelegt werden.

Um das Intervall für fehlerhafte Entleerungen mithilfe der Konsole zu ändern
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich unter Load Balancing die Option Load Balancer aus.

  3. Wählen Sie den Namen der Zielgruppe aus, um deren Detailseite zu öffnen.

  4. Klicken Sie auf der Registerkarte Attribute auf Bearbeiten.

  5. Vergewissern Sie sich, dass unter Verwaltung des fehlerhaften Zustands von Zielen die Option Verbindungen beenden, wenn Ziele fehlerhaft werden, deaktiviert ist.

  6. Geben Sie einen Wert für Intervall für fehlerhafte Entleerung ein.

  7. Wählen Sie Änderungen speichern aus.

Um das Intervall für fehlerhafte Entleerungen zu ändern, verwenden Sie den AWS CLI

Verwenden Sie den modify-target-group-attributesBefehl mit dem target_health_state.unhealthy.draining_interval_seconds Attribut.

Verwenden des Route-53-DNS-Failover für Ihren Load Balancer

Wenn Sie mithilfe von Route 53 DNS-Abfragen an Ihren Load Balancer leiten, können Sie mithilfe von Route 53 auch DNS-Failover für Ihren Load Balancer konfigurieren. In einer Failover-Konfiguration prüft Route 53 die Integrität der Zielgruppen für den Load Balancer, um zu ermitteln, ob diese verfügbar sind. Wenn keine funktionsfähigen Ziele für den Load Balancer registriert sind oder der Load Balancer selbst fehlerhaft ist, leitet Route 53 den Datenverkehr an eine andere verfügbare Ressource, z. B. einen fehlerfreien Load Balancer oder eine statische Website in Amazon S3, weiter.

Beispiel: Sie haben eine Webanwendung www.example.com und möchten, dass redundante Instances hinter zwei Load Balancers in verschiedenen Regionen laufen. Sie möchten, dass der Datenverkehr in erster Linie auf den Load Balancer in einer Region weitergeleitet wird, und der Load Balancer in der anderen Region soll bei Ausfällen als Sicherung dienen. Wenn Sie DNS Failover konfigurieren, können Sie einen primären und einen sekundären (Sicherung) Load Balancer festlegen. Route 53 leitet den Datenverkehr direkt zum primären Load Balancer, und wenn dieser nicht verfügbar ist, wird der Datenverkehr zum sekundären Load Balancer geleitet.

Verwenden von „Zielintegrität auswerten“
  • Wenn die Option „Zielintegrität auswerten“ für einen Aliaseintrag für einen Network Load Balancer auf Yes festgelegt ist, wertet Route 53 die Integrität der durch den alias target-Wert angegebenen Ressource aus. Für einen Network Load Balancer verwendet Route 53 die mit dem Load Balancer verknüpften Zustandsprüfungen für Zielgruppen.

  • Wenn alle Zielgruppen in einem Network Load Balancer fehlerfrei sind, markiert Route 53 den Aliaseintrag als fehlerfrei. Wenn eine Zielgruppe mindestens ein gesundes Ziel enthält, ist die Zustandsprüfung für die Zielgruppe erfolgreich. Route 53 gibt dann Datensätze gemäß Ihrer Routing-Richtlinie zurück. Wenn die Failover-Routing-Richtlinie verwendet wird, gibt Route 53 den primären Datensatz zurück.

  • Wenn eine der Zielgruppen in einem Network Load Balancer fehlerhaft ist, besteht der Aliaseintrag die Route-53-Zustandsprüfung (Fail-Open) nicht. Bei Verwendung von „Zielintegrität auswerten“ würde dies die Failover-Routing-Richtlinie nicht erfüllen.

  • Wenn alle Zielgruppen in einem Network Load Balancer leer sind (keine Ziele), betrachtet Route 53 den Datensatz als fehlerhaft (Fail-Open). Bei Verwendung von „Zielintegrität auswerten“ würde dies die Failover-Routing-Richtlinie nicht erfüllen.

Weitere Informationen finden Sie unter Konfigurieren von DNS-Failover im Entwicklerhandbuch für Amazon Route 53.