View a markdown version of this page

Bearbeiten Sie die Zielgruppenattribute für Ihren Application Load Balancer - 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.

Bearbeiten Sie die Zielgruppenattribute für Ihren Application Load Balancer

Nachdem Sie eine Zielgruppe für Ihren Application Load Balancer erstellt haben, können Sie deren Zielgruppenattribute bearbeiten.

Verzögerung der Registrierungsaufhebung

Elastic Load Balancing stoppt das Senden von Anforderungen an Ziele, deren Registrierung aufgehoben wird. Standardmäßig wartet Elastic Load Balancing 300 Sekunden, bevor die Registrierungsaufhebung abgeschlossen wird. So können laufende Anforderungen an das Ziel abgeschlossen werden. Um die Zeitdauer zu ändern, die Elastic Load Balancing wartet, müssen Sie den Wert für die Verzögerung der Registrierungsaufhebung anpassen.

Der ursprüngliche Zustand eines Ziels, dessen Registrierung aufgehoben wird, lautet draining. Nach Ablauf der Verzögerung der Registrierungsaufhebung wird die Registrierungsaufhebung abgeschlossen und der Zustand es Ziels lautet unused. Wenn das Ziel Teil einer Auto-Scaling-Gruppe ist, kann es beendet und ersetzt werden.

Falls ein Ziel, dessen Registrierung aufgehoben wird, keine aktiven Anforderungen und keine aktiven Verbindungen aufweist, wird der Aufhebungsprozess von Elastic Load Balancing sofort abgeschlossen, ohne auf das Verstreichen der Verzögerung für die Registrierungsaufhebung zu warten. Auch wenn die Zielregistrierung aufgehoben wurde, wird bis zum Ablauf des Timeouts der Verzögerung der Registrierungsaufhebung draining als Status des Ziels angezeigt. Nach Ablauf des Timeouts wechselt das Ziel in einen unused-Zustand.

Wenn ein Ziel, dessen Registrierung aufgehoben wird, die Verbindung beendet, bevor die Verzögerung der Registrierungsaufhebung abgelaufen ist, erhält der Client eine 500-Level-Fehlerantwort.

Console
Um den Wert für die Verzögerung bei der Abmeldung zu aktualisieren
  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 Target Groups (Zielgruppen) 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. In der Verwaltung der Zielabmeldung Bereich, geben Sie einen neuen Wert ein für Verzögerung bei der Abmeldung.

  6. Wählen Sie Änderungen speichern aus.

AWS CLI
Um den Wert für die Verzögerung bei der Abmeldung zu aktualisieren

Verwenden Sie den Befehl modify-target-group-attributes zusammen mit dem Attribut deregistration_delay.timeout_seconds.

aws elbv2 modify-target-group-attributes \ --target-group-arn target-group-arn \ --attributes "Key=deregistration_delay.timeout_seconds,Value=60"
CloudFormation
Um den Wert für die Verzögerung bei der Abmeldung zu aktualisieren

Aktualisieren Sie den AWS::ElasticLoadBalancingV2:TargetGroup Ressource, die enthalten soll deregistration_delay.timeout_seconds Attribut.

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: HTTP Port: 80 TargetType: ip VpcId: !Ref myVPC TargetGroupAttributes: - Key: "deregistration_delay.timeout_seconds" Value: "60"

Weiterleitungsalgorithmus

Ein Routing-Algorithmus ist eine Methode, die vom Load Balancer verwendet wird, um zu bestimmen, welche Ziele Anfragen erhalten. Der Rundkehlchen Der Routing-Algorithmus wird standardmäßig verwendet, um Anfragen auf Zielgruppenebene weiterzuleiten. Der am wenigsten ausstehende Anfragen und gewichtet nach dem Zufallsprinzip Je nach den Anforderungen Ihrer Anwendung sind auch Routing-Algorithmen verfügbar. Eine Zielgruppe kann jeweils nur einen aktiven Routing-Algorithmus haben, der Routing-Algorithmus kann jedoch bei Bedarf aktualisiert werden.

Wenn Sie Sticky Sessions aktivieren, wird der ausgewählte Routing-Algorithmus für die anfängliche Zielauswahl verwendet. Zukünftige Anfragen desselben Clients werden unter Umgehung des ausgewählten Routing-Algorithmus an dasselbe Ziel weitergeleitet. Wenn Sie den Zieloptimierer aktiviert haben, kann der Routing-Algorithmus nur Round-Robin-Algorithmen verwendet werden.

Hin- und Rückspiel
  • Der Round-Robin-Routing-Algorithmus leitet Anfragen gleichmäßig an gesunde Ziele in der Zielgruppe weiter, und zwar in sequentieller Reihenfolge.

  • Dieser Algorithmus wird häufig verwendet, wenn die eingegangenen Anfragen eine ähnliche Komplexität aufweisen, die registrierten Ziele eine ähnliche Verarbeitungsfähigkeit aufweisen oder wenn Sie Anfragen gleichmäßig auf die Ziele verteilen müssen.

Am wenigsten ausstehende Anfragen
  • Der Routing-Algorithmus für die wenigsten ausstehenden Anfragen leitet Anfragen an die Ziele mit der geringsten Anzahl laufender Anfragen weiter.

  • Dieser Algorithmus wird häufig verwendet, wenn die eingegangenen Anfragen unterschiedlich komplex sind und die registrierten Ziele sich in ihrer Verarbeitungsfähigkeit unterscheiden.

  • Wenn ein Load Balancer, der unterstützt HTTP/2 verwendet Ziele, die nur unterstützen HTTP/1.1, es konvertiert die Anfrage in mehrere HTTP/1.1 Anfragen. In dieser Konfiguration behandelt der Algorithmus für die am wenigsten ausstehenden Anfragen jede HTTP/2 Anfrage als mehrere Anfragen.

  • Bei der Verwendung WebSockets, das Ziel wird mit dem Algorithmus für die am wenigsten ausstehenden Anfragen ausgewählt. Nachdem das Ziel ausgewählt wurde, stellt der Load Balancer eine Verbindung zum Ziel her und sendet alle Nachrichten über diese Verbindung.

  • Der Routing-Algorithmus für Anfragen, der am wenigsten aussteht, kann nicht im langsamen Startmodus verwendet werden.

Nach dem Zufallsprinzip gewichtet
  • Der gewichtete Zufalls-Routing-Algorithmus leitet Anfragen gleichmäßig an gesunde Ziele in der Zielgruppe weiter, und zwar in zufälliger Reihenfolge.

  • Dieser Algorithmus unterstützt die Abschwächung von Anomalien mit automatischen Zielgewichten (ATW).

  • Der Algorithmus für gewichtetes zufälliges Routing kann nicht im langsamen Startmodus verwendet werden.

  • Der Algorithmus für gewichtetes zufälliges Routing kann nicht bei langwierigen Sitzungen verwendet werden.

Console
Um den Routing-Algorithmus zu aktualisieren
  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 Target Groups (Zielgruppen) 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. In der Konfiguration des Verkehrs Fenster, für Algorithmus für den Lastenausgleich, wählen Rundenturnier, Am wenigsten ausstehende Anfragen, oder Zufällig gewichtet.

  6. Wählen Sie Änderungen speichern aus.

AWS CLI
Um den Routing-Algorithmus zu aktualisieren

Verwenden Sie den Befehl modify-target-group-attributes zusammen mit dem Attribut load_balancing.algorithm.type.

aws elbv2 modify-target-group-attributes \ --target-group-arn target-group-arn \ --attributes "Key=load_balancing.algorithm.type,Value=least_outstanding_requests"
CloudFormation
Um den Routing-Algorithmus zu aktualisieren

Aktualisieren Sie den AWS::ElasticLoadBalancingV2:TargetGroup Ressource, die enthalten soll load_balancing.algorithm.type Attribut.

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: HTTP Port: 80 TargetType: ip VpcId: !Ref myVPC TargetGroupAttributes: - Key: "load_balancing.algorithm.type" Value: "least_outstanding_requests"

Modus des langsamen Hochfahrens

Standardmäßig beginnt ein Ziel mit dem Empfang seines vollständigen Anteils an Anfragen, sobald es bei einer Zielgruppe registriert ist und die anfängliche Zustandsprüfung bestanden hat. Der Modus des langsamen Hochfahrens bietet Zielen mehr Zeit zum Warmlaufen, bevor der Load Balancer ihnen den vollständigen Anteil an Anfragen sendet.

Nachdem Sie das langsame Hochfahren für eine Zielgruppe aktiviert haben, wechseln die Ziele in den Modus des langsamen Hochfahrens, wenn sie von der Zielgruppe als fehlerfrei eingestuft werden. Ein Ziel im Modus des langsamen Hochfahrens beendet diesen, wenn die konfigurierte Dauer des langsamen Hochfahrens abgelaufen ist oder das Ziel fehlerhaft ist. Der Load Balancer erhöht linear die Anzahl von Anfragen, die er im Modus des langsamen Hochfahrens an ein Ziel senden kann. Nachdem ein fehlerfreies Ziel den Modus des langsamen Hochfahrens beendet hat, kann der Load Balancer diesem den vollständigen Anteil von Anfragen senden.

Überlegungen
  • Wenn Sie das langsame Hochfahren für eine Zielgruppe aktivieren, gehen die bei der Zielgruppe registrierten fehlerfreien Ziele nicht in den Modus des langsamen Hochfahrens über.

  • Wenn Sie das langsame Hochfahren für eine leere Zielgruppe aktivieren und dann mit einer einzigen Registrierungsoperation auf ein Ziel anwenden, dann gehen diese Ziele nicht in den Modus des langsamen Hochfahrens über. Neu registrierte Ziele gehen nur dann in den Modus des langsamen Hochfahrens über, wenn mindestens ein fehlerfreies Ziel vorhanden ist, das sich nicht im Modus des langsamen Hochfahrens befindet.

  • Wenn Sie die Registrierung eines Ziels im Modus des langsamen Hochfahrens aufheben, beendet das Ziel den Modus des langsamen Hochfahrens. Wenn Sie dasselbe Ziel erneut registrieren, wechselt es in den Modus des langsamen Hochfahrens, wenn es von der Zielgruppe als fehlerfrei eingestuft wird.

  • Wenn ein Ziel im Modus des langsamen Hochfahrens fehlerhaft ist, beendet das Ziel den Modus des langsamen Hochfahrens. Wenn das Ziel dann fehlerfrei ist, wechselt es wieder in den Modus des langsamen Hochfahrens.

  • Sie können den langsamen Startmodus nicht aktivieren, wenn Sie den verwenden am wenigsten ausstehende Anfragen oder gewichtet nach dem Zufallsprinzip Routing-Algorithmen.

Console
Um den Wert für die Dauer des langsamen Starts zu aktualisieren
  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 Target Groups (Zielgruppen) 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. In der Konfiguration des Verkehrs Bereich, geben Sie einen neuen Wert ein für Langsame Startdauer. Um den langsamen Startmodus zu deaktivieren, geben Sie 0 ein.

  6. Wählen Sie Änderungen speichern aus.

AWS CLI
Um den Wert für die Dauer des langsamen Starts zu aktualisieren

Verwenden Sie den Befehl modify-target-group-attributes zusammen mit dem Attribut slow_start.duration_seconds.

aws elbv2 modify-target-group-attributes \ --target-group-arn target-group-arn \ --attributes "Key=slow_start.duration_seconds,Value=30"
CloudFormation
Um den Wert für die Dauer des langsamen Starts zu aktualisieren

Aktualisieren Sie den AWS::ElasticLoadBalancingV2:TargetGroup Ressource, die enthalten soll slow_start.duration_seconds Attribut.

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: HTTP Port: 80 TargetType: ip VpcId: !Ref myVPC TargetGroupAttributes: - Key: "slow_start.duration_seconds" Value: "30"

Gesundheitseinstellungen

Standardmäßig überwachen Application Load Balancer den Zustand von Zielen und leiten Anfragen an fehlerfreie Ziele weiter. Wenn der Load Balancer jedoch nicht über genügend fehlerfreie Ziele verfügt, sendet er automatisch Datenverkehr an alle registrierten Ziele (Fail-Open). Sie können die Zielgruppen-Integritätseinstellungen für Ihre Zielgruppe ändern, um die Schwellenwerte für DNS-Failover und Routing-Failover zu definieren. Weitere Informationen finden Sie unter Zustand der Zielgruppe.

Console
Um die Integritätseinstellungen für Zielgruppen 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. Ü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.

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

Verwenden Sie den Befehl modify-target-group-attributes. 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 target-group-arn \ --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"
CloudFormation
Um die Gesundheitseinstellungen für Zielgruppen zu ändern

Aktualisieren Sie das AWS::ElasticLoadBalancingV2:TargetGroup Ressource. Im folgenden Beispiel wird der Schwellenwert für den fehlerfreien Zustand für beide Aktionen mit einem fehlerhaften Zustand auf 50 % festgelegt.

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: HTTP Port: 80 TargetType: ip VpcId: !Ref myVPC TargetGroupAttributes: - 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"

Cross-zone Lastenausgleich

Die Knoten für Ihren Load Balancer verteilen Anforderungen von Clients auf registrierte Ziele. Wenn zonenübergreifendes Load Balancing aktiviert ist, verteilt jeder Load Balancer-Knoten den Datenverkehr gleichmäßig auf die registrierten Ziele in allen registrierten Availability Zones. Wenn zonenübergreifendes Load Balancing deaktiviert ist, verteilt jeder Load Balancer-Knoten den Datenverkehr gleichmäßig nur auf die registrierten Ziele in seiner Availability Zone. Dies könnte verwendet werden, wenn zonale Ausfalldomänen regionalen vorzuziehen sind, um sicherzustellen, dass eine fehlerfreie Zone nicht von einer fehlerhaften Zone beeinträchtigt wird, oder um die allgemeine Latenz zu verbessern.

Bei Application Load Balancern ist der zonenübergreifende Load Balancing immer auf Load Balancer-Ebene aktiviert und kann nicht ausgeschaltet werden. Für Zielgruppen wird standardmäßig die Load-Balancer-Einstellung verwendet. Sie können die Standardeinstellung jedoch überschreiben, indem Sie den zonenübergreifenden Load Balancing auf Zielgruppenebene explizit ausschalten.

Überlegungen
  • Die Zielgruppenbindung wird nicht unterstützt, wenn zonenübergreifendes Load Balancing deaktiviert ist.

  • Lambda-Funktionen als Ziele werden nicht unterstützt, wenn zonenübergreifendes Load Balancing deaktiviert ist.

  • Beim Versuch, das zonenübergreifende Load Balancing über die ModifyTargetGroupAttributes-API zu deaktivieren, wenn bei Zielen der Parameter AvailabilityZone auf all gesetzt ist, tritt ein Fehler auf.

  • Bei der Registrierung von Zielen ist der AvailabilityZone-Parameter erforderlich. Spezifische Availability Zone-Werte sind nur zulässig, wenn zonenübergreifendes Load Balancing deaktiviert ist. Andernfalls wird der Parameter ignoriert und als all behandelt.

Bewährte Methoden
  • Planen Sie für jede Zielgruppe genügend Zielkapazität für alle Availability Zones ein, die Sie voraussichtlich nutzen werden. Wenn Sie nicht genügend Kapazität für alle teilnehmenden Availability Zones einplanen können, empfehlen wir Ihnen, das zonenübergreifende Load Balancing aktiviert zu lassen.

  • Wenn Sie Ihren Application Load Balancer mit mehreren Zielgruppen konfigurieren, stellen Sie sicher, dass alle Zielgruppen innerhalb der konfigurierten Region an denselben Availability Zones teilnehmen. Dadurch soll verhindert werden, dass eine Availability Zone leer ist, während das zonenübergreifende Load Balancing deaktiviert ist, da dies für alle HTTP-Anfragen, die in die leere Availability Zone gelangen, einen 503-Fehler auslöst.

  • Vermeiden Sie das Erstellen leerer Subnetze. Application Load Balancer stellen zonale IP-Adressen über DNS für die leeren Subnetze zur Verfügung, was 503-Fehler bei HTTP-Anfragen auslöst.

  • Es kann vorkommen, dass eine Zielgruppe mit deaktiviertem zonenübergreifendem Load Balancing über genügend geplante Zielkapazität pro Availability Zone verfügt, aber alle Ziele in einer Availability Zone fehlerhaft werden. Wenn es mindestens eine Zielgruppe mit ausschließlich fehlerhaften Zielen gibt, werden die IP-Adressen der Load Balancer-Knoten aus dem DNS entfernt. Sobald die Zielgruppe mindestens ein fehlerfreies Ziel hat, werden die IP-Adressen im DNS wiederhergestellt.

Wenn zonenübergreifendes Load Balancing deaktivieren

Sie können das zonenübergreifende Load Balancing für Ihre Application Load Balancer-Zielgruppen jederzeit deaktivieren.

Console
Um den zonenübergreifenden Lastenausgleich zu deaktivieren
  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 Target Groups (Zielgruppen) 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. In der Konfiguration der Zielauswahl Bereich, wählen Sie Aus zum Cross-zone Lastenausgleich.

  6. Wählen Sie Änderungen speichern aus.

AWS CLI
Um den zonenübergreifenden Lastenausgleich auszuschalten

Verwenden Sie den Befehl modify-target-group-attributes und legen Sie für das Attribut load_balancing.cross_zone.enabled den Wert false fest.

aws elbv2 modify-target-group-attributes \ --target-group-arn target-group-arn \ --attributes "Key=load_balancing.cross_zone.enabled,Value=false"
CloudFormation
So deaktivieren Sie den zonenübergreifenden Lastenausgleich

Aktualisieren Sie das AWS::ElasticLoadBalancingV2:TargetGroup Ressource, die enthalten soll load_balancing.cross_zone.enabled Attribut.

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: HTTP Port: 80 TargetType: ip VpcId: !Ref myVPC TargetGroupAttributes: - Key: "load_balancing.cross_zone.enabled" Value: "false"

Zonenübergreifendes Load Balancing aktivieren

Sie können das zonenübergreifende Load Balancing für Ihre Application Load Balancer-Zielgruppen jederzeit aktivieren. Die Einstellung für das zonenübergreifende Load Balancing auf Zielgruppenebene hat Vorrang vor der Einstellung auf Load-Balancer-Ebene.

Console
Um den zonenübergreifenden Lastenausgleich zu deaktivieren
  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 Target Groups (Zielgruppen) 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. In der Konfiguration der Zielauswahl Bereich, wählen Sie Ein zum Cross-zone Lastenausgleich.

  6. Wählen Sie Änderungen speichern aus.

AWS CLI
Um den zonenübergreifenden Lastenausgleich zu aktivieren

Verwenden Sie den Befehl modify-target-group-attributes und legen Sie für das Attribut load_balancing.cross_zone.enabled den Wert true fest.

aws elbv2 modify-target-group-attributes \ --target-group-arn target-group-arn \ --attributes "Key=load_balancing.cross_zone.enabled,Value=true"
CloudFormation
So aktivieren Sie den zonenübergreifenden Lastenausgleich

Aktualisieren Sie das AWS::ElasticLoadBalancingV2:TargetGroup Ressource, die enthalten soll load_balancing.cross_zone.enabled Attribut.

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: HTTP Port: 80 TargetType: ip VpcId: !Ref myVPC TargetGroupAttributes: - Key: "load_balancing.cross_zone.enabled" Value: "true"

Automatische Zielgewichte (ATW)

Automatische Zielgewichte (ATW) überwachen ständig die Ziele, auf denen Ihre Anwendungen ausgeführt werden, und erkennen signifikante Leistungsabweichungen, sogenannte Anomalien. ATW bietet die Möglichkeit, die Menge des zu Zielen geleiteten Datenverkehrs durch Erkennung von Datenanomalien in Echtzeit dynamisch anzupassen.

Automatic Target Weights (ATW) erkennt automatisch Anomalien für jeden Application Load Balancer in Ihrem Konto. Wenn anomale Ziele identifiziert werden, kann ATW automatisch versuchen, sie zu stabilisieren, indem es die Menge des Traffics, an die sie weitergeleitet werden, reduziert, was als Anomalieabwehr bezeichnet wird. ATW optimiert kontinuierlich die Verkehrsverteilung, um die Erfolgsraten pro Ziel zu maximieren und gleichzeitig die Ausfallraten der Zielgruppen zu minimieren.

Überlegungen:
  • Die Anomalieerkennung überwacht derzeit HTTP 5xx-Antwortcodes, die von Ihren Zielen kommen, und Verbindungsfehler zu Ihren Zielen. Die Anomalieerkennung ist immer aktiviert und kann nicht ausgeschaltet werden.

  • ATW wird nicht unterstützt, wenn Lambda als Ziel verwendet wird.

Anomalie-Erkennung

Die ATW-Anomalieerkennung überwacht alle Ziele, die eine signifikante Abweichung im Verhalten von anderen Zielen in ihrer Zielgruppe aufweisen. Diese Abweichungen, sogenannte Anomalien, werden ermittelt, indem die prozentualen Fehler eines Ziels mit den prozentualen Fehlern anderer Ziele in der Zielgruppe verglichen werden. Bei diesen Fehlern kann es sich sowohl um Verbindungsfehler als auch um HTTP-Fehlercodes handeln. Zielpersonen, die deutlich höhere Werte als ihre Mitbewerber melden, werden dann als anomal eingestuft.

Für die Erkennung von Anomalien sind mindestens drei gesunde Ziele in der Zielgruppe erforderlich. Wenn ein Ziel bei einer Zielgruppe registriert wird, muss es die Gesundheitschecks bestehen, bevor es Traffic empfängt. Sobald das Ziel anfängt, Traffic zu empfangen, beginnt ATW mit der Überwachung des Ziels und veröffentlicht kontinuierlich das Ergebnis der Anomalie. Bei Zielen ohne Anomalien lautet das Ergebnis der Anomalie normal. Bei Zielen mit Anomalien lautet das Ergebnis der Anomalie anomalous.

Die Erkennung von ATW-Anomalien funktioniert unabhängig von den Gesundheitschecks der Zielgruppe. Ein Ziel kann zwar alle Gesundheitschecks der Zielgruppe bestehen, aber aufgrund einer erhöhten Fehlerquote trotzdem als anomal eingestuft werden. Werden Ziele anomal, wirkt sich das nicht auf den Status der Zielgruppen-Gesundheitschecks aus.

Status der Erkennung einer Anomalie

Sie können den aktuellen Status der Anomalieerkennung einsehen. Die folgenden Werte sind möglich:

  • normal — Es wurden keine Anomalien festgestellt.

  • anomalous — Es wurden Anomalien festgestellt.

Console
Um den Status der Anomalieerkennung einzusehen
  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 Target Groups (Zielgruppen) aus.

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

  4. Wählen Sie die Registerkarte Ziele.

  5. Innerhalb der Registrierte Ziele Tabelle, die Ergebnis der Erkennung von Anomalien In der Spalte wird der Anomaliestatus jedes Ziels angezeigt.

AWS CLI
Um den Status der Anomalieerkennung anzuzeigen

Verwenden Sie den Befehl describe-target-health. Im folgenden Beispiel wird der Status für jedes Ziel in der angegebenen Zielgruppe angezeigt.

aws elbv2 describe-target-health \ --target-group-arn target-group-arn \ --include AnomalyDetection

Minderung von Anomalien

Die Abwehr von ATW-Anomalien leitet den Verkehr automatisch von anomalen Zielen weg und gibt ihnen die Möglichkeit, sich zu erholen.

Anforderung

Die Funktion zur Abschwächung von Anomalien von ATW ist nur verfügbar, wenn Sie die Nach dem Zufallsprinzip gewichtet Routing-Algorithmus.

Während der Schadensbegrenzung:
  • ATW passt die Menge des Verkehrs, der an anomale Ziele weitergeleitet wird, regelmäßig an. Derzeit erfolgt der Zeitraum alle fünf Sekunden.

  • ATW reduziert die Menge des Datenverkehrs, der zu anomalen Zielen geleitet wird, auf das Mindestvolumen, das zur Abwehr von Anomalien erforderlich ist.

  • Bei Zielen, die nicht mehr als anomal erkannt werden, wird nach und nach mehr Verkehr zu ihnen geleitet, bis sie die Parität mit anderen normalen Zielen in der Zielgruppe erreicht haben.

Console
Um die Abschwächung von Anomalien zu aktivieren
  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 Target Groups (Zielgruppen) 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. In der Konfiguration des Verkehrs Bereich, überprüfen Sie, ob der ausgewählte Wert für Algorithmus für den Lastenausgleich ist Zufällig gewichtet.

    Wenn der Algorithmus für gewichtete Zufälle anfänglich ausgewählt wird, ist die Anomalieerkennung standardmäßig aktiviert.

  6. Unter Abschwächung von Anomalien, stellen Sie sicher, dass Schalten Sie die Abschwächung von Anomalien ein ist ausgewählt.

  7. Wählen Sie Änderungen speichern aus.

AWS CLI
Um die Abschwächung von Anomalien zu aktivieren

Verwenden Sie den Befehl modify-target-group-attributes zusammen mit dem Attribut load_balancing.algorithm.anomaly_mitigation.

aws elbv2
Status der Schadensbegrenzung

Sie können überprüfen, ob ATW eine Schadensbegrenzung für ein Ziel durchführt. Die folgenden Werte sind möglich:

  • yes — Die Schadensbegrenzung ist im Gange.

  • no — Die Schadensbegrenzung ist nicht im Gange.

Console
Um den Status der Abschwächung von Anomalien einzusehen
  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 Target Groups (Zielgruppen) aus.

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

  4. Wählen Sie die Registerkarte Ziele.

  5. Innerhalb der Registrierte Ziele In der Tabelle können Sie den Status der Abschwächung von Anomalien für jedes Ziel in der Wirksame Schadensbegrenzung Spalte.

AWS CLI
Um den Status der Abschwächung von Anomalien anzuzeigen

Verwenden Sie den Befehl describe-target-health. Im folgenden Beispiel wird der Status für jedes Ziel in der angegebenen Zielgruppe angezeigt.

aws elbv2 describe-target-health \ --target-group-arn target-group-arn \ --include AnomalyDetection

Sticky Sessions

Standardmäßig leitet ein Application Load Balancer jede Anforderung getrennt an ein registriertes Ziel weiter, basierend auf dem ausgewählten Load-Balancing-Algorithmus. Sie können jedoch das Feature „Sticky Session“ (auch als gebundene Sitzungen bezeichnet) verwenden, damit der Load Balancer die Sitzung eines Benutzers an ein bestimmtes Ziel binden kann. So wird sichergestellt, dass alle Anforderungen, die während der Sitzung vom Benutzer gesendet werden, an dasselbe Ziel weitergeleitet werden. Dieses Feature ist nützlich für Server, die Zustandsinformationen verwalten, um Clients eine kontinuierliche Erfahrung zu bieten. Um Sticky Sessions zu verwenden, muss der Client Cookies unterstützen.

Application Load Balancer unterstützen sowohl dauerbasierte Cookies als auch anwendungsbasierte Cookies. Sticky Sessions werden auf Ebene der Zielgruppe aktiviert. Sie können für Ihre Zielgruppen eine Kombination aus auf Dauer basierenden Sticky Sessions, anwendungsbasierten Sticky Sessions und keine Sticky Sessions verwenden.

Bei der Verwaltung von Sticky Sessions ist es besonders wichtig festzulegen, wie lange der Load Balancer die Anforderung des Benutzers an das gleiche Ziel leiten soll. Wenn Ihre Anwendung über ein eigenes Sitzungscookie verfügt, können Sie anwendungsbasierte Sticky Session verwenden. Das Sitzungscookie der Load-Balancer-Sitzung hält dann die durch das Sitzungscookie der Anwendung festgelegte Dauer ein. Wenn Ihre Anwendung kein eigenes Sitzungscookie hat, können Sie auf Dauer basierende Sticky Sessions verwenden, um ein Load-Balancer-Sitzungscookie mit einer von Ihnen angegebenen Dauer zu generieren.

Der Inhalt der von Load Balancern generierten Cookies wird mit einem rotierenden Schlüssel verschlüsselt. Sie können vom Load Balancer generierte Cookies nicht entschlüsseln oder ändern.

Bei beiden Stickiness-Typen setzt der Application Load Balancer den Ablauf der von ihm generierten Cookies nach jeder Anforderung zurück. Wenn ein Cookie abläuft, ist die Sitzung keine Sticky Session mehr und der Client sollte das Cookie aus seinem Cookiespeicher entfernen.

Voraussetzungen
  • Und HTTP/HTTPS Load Balancer.

  • Mindestens eine funktionierende Instance in jeder Availability Zone.

Überlegungen
  • Sticky Sessions werden nicht unterstützt, wenn zonenübergreifendes Load Balancing deaktiviert ist. Versuche, Sticky Sessions zu aktivieren, während der zonenübergreifende Load Balancing deaktiviert ist, schlagen fehl.

  • Bei anwendungsbasierten Cookies müssen die Namen der Cookies für jede Zielgruppe einzeln angegeben werden. Bei dauerbasierten Cookies ist AWSALB jedoch der einzige Name, der für alle Zielgruppen verwendet wird.

  • Wenn Sie mehrere Ebenen von Application Load Balancern nutzen, können Sie mit anwendungsbasierten Cookies Sticky Sessions auf allen Ebenen aktivieren. Mit dauerbasierten Cookies können Sie Sticky Sessions jedoch nur auf einer Ebene aktivieren, weil AWSALB der einzige verfügbare Name ist.

  • Wenn der Application Load Balancer beide empfängt AWSALBCORS und ein AWSALB auf Dauer basierendes Stickiness-Cookie, der Wert in AWSALBCORS wird Vorrang haben.

  • Application-based Stickiness funktioniert nicht bei gewichteten Zielgruppen.

  • Wenn Sie über eine Weiterleitungsregel mit mehreren Zielgruppen verfügen und für mindestens eine Sticky Sessions aktiviert sind, müssen Sie die Stickiness der Zielgruppe aktivieren.

  • WebSocket Verbindungen sind von Natur aus klebrig. Wenn der Client ein Verbindungs-Upgrade anfordert zu WebSockets, das Ziel, das einen HTTP 101-Statuscode zurückgibt, um das Verbindungs-Upgrade zu akzeptieren, ist das Ziel, das in WebSockets Verbindung. Nach dem WebSockets Das Upgrade ist abgeschlossen, die auf Cookies basierende Stickiness wird nicht verwendet.

  • Application Load Balancer verwenden das Expires-Attribut im Cookie-Header anstelle des Max-Age-Attributs.

  • Application Load Balancer unterstützen keine Cookie-Werte, die URL-codiert sind.

  • Wenn der Application Load Balancer eine neue Anfrage erhält, während das Ziel aufgrund einer Deregistrierung überlastet ist, wird die Anfrage an ein fehlerfreies Ziel weitergeleitet.

  • Dauerhafte Sitzungen werden nicht unterstützt, wenn der Target Optimizer aktiviert ist.

Duration-based Klebrigkeit

Duration-based Stickiness leitet Anfragen mithilfe eines vom Load Balancer generierten Cookies an dasselbe Ziel in einer Zielgruppe weiter (AWSALB). Das Cookie wird verwendet, um die Sitzung dem Ziel zuzuordnen. Wenn Ihre Anwendung kein eigenes Sitzungscookie hat, können Sie Ihre eigene Dauer der Sticky Sessions angeben und festlegen, wie lange Ihr Load Balancer die Anforderung des Benutzers konsistent an dasselbe Ziel weiterleiten soll.

Wenn ein Load Balancer eine Anforderung von einem Client erhält, leitet er die Anforderung (basierend auf der Grundlage des ausgewählten Algorithmus) an ein Ziel weiter und generiert ein Cookie namens AWSALB. Er codiert Informationen über das ausgewählte Ziel, verschlüsselt das Cookie und schließt das Cookie in die Antwort an den Client ein. Das vom Load Balancer generierte Cookie hat eine eigene Dauer der Gültigkeit von 7 Tagen. Dieses Ablaufdatum ist nicht konfigurierbar.

Bei nachfolgenden Anforderungen sollte der Client das AWSALB-Cookie enthalten. Wenn der Load Balancer eine Anforderung von einem Client erhält, die das Cookie enthält, erkennt er es und leitet die Anforderung an dasselbe Ziel weiter. Wenn das Cookie vorhanden ist, aber nicht dekodiert werden kann oder wenn es sich auf ein Ziel bezieht, das deregistriert wurde oder fehlerhaft ist, wählt der Load Balancer ein neues Ziel aus und aktualisiert das Cookie mit Informationen über das neue Ziel.

Für CORS-Anfragen (Cross-Origin Resource Sharing) benötigen einige Browser SameSite=None; Secure um Klebrigkeit zu ermöglichen. Um diese Browser zu unterstützen, generiert der Load Balancer immer ein zweites Stickiness-Cookie, AWSALBCORS, das dieselben Informationen wie das ursprüngliche Stickiness-Cookie enthält, sowie das SameSite Attribut. Clients erhalten beide Cookies, auch Nicht-CORS-Anfragen.

Console
Um eine auf der Dauer beruhende Klebrigkeit zu ermöglichen
  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 Target Groups (Zielgruppen) 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. Unter Konfiguration der Zielauswahl, gehen Sie wie folgt vor:

    1. Wählen Sie Aktiviere die Klebrigkeit.

    2. Wählen Sie für den Stickiness-Typ die Option Vom Load Balancer generiertes Cookie aus.

    3. Geben Sie im Feld Stickiness duration(Erhaltungsdauer) einen Wert zwischen 1 Sekunde und 7 Tagen aus.

  6. Wählen Sie Änderungen speichern aus.

AWS CLI
Um eine dauerabhängige Klebrigkeit zu ermöglichen

Verwenden Sie den Befehl modify-target-group-attributes zusammen mit den Attributen stickiness.enabled und stickiness.lb_cookie.duration_seconds.

aws elbv2 modify-target-group-attributes \ --target-group-arn target-group-arn \ --attributes \ "Key=stickiness.enabled,Value=true" \ "Key=stickiness.lb_cookie.duration_seconds,Value=300"
CloudFormation
Um die auf Dauer basierende Klebrigkeit zu aktivieren

Aktualisieren Sie das AWS::ElasticLoadBalancingV2:TargetGroup Ressource, die enthalten soll stickiness.enabled und stickiness.lb_cookie.duration_seconds Attribute.

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: HTTP Port: 80 TargetType: ip VpcId: !Ref myVPC TargetGroupAttributes: - Key: "stickiness.enabled" Value: "true" - Key: "stickiness.lb_cookie.duration_seconds" Value: "300"

Application-based Klebrigkeit

Application-based Klebrigkeit gibt Ihnen die Flexibilität, Ihre eigenen Kriterien für die Kundenbindung festzulegen. Wenn Sie die anwendungsbasierte Stickiness aktivieren, leitet der Load Balancer die erste Anforderung auf der Grundlage des ausgewählten Algorithmus an ein Ziel innerhalb der Zielgruppe weiter. Es wird erwartet, dass das Ziel ein benutzerdefiniertes Anwendungscookie setzt, das dem im Load Balancer konfigurierten Cookie entspricht, um Stickiness zu aktivieren. Dieses benutzerdefinierte Cookie kann jedes Cookie-Attribut enthalten, das von der Anwendung benötigt wird.

Wenn der Application Load Balancer das benutzerdefinierte Anwendungscookie vom Ziel empfängt, generiert er automatisch ein neues verschlüsseltes Anwendungscookie zum Erfassen von Stickiness-Informationen. Dieses vom Load Balancer generierte Anwendungscookie erfasst Stickiness-Informationen für jede Zielgruppe, für die anwendungsbasierte Sticky Sessions aktiviert sind.

Das vom Load Balancer generierte Anwendungscookie kopiert nicht die Attribute des vom Ziel gesetzten benutzerdefinierten Cookies. Es hat eine eigene Dauer der Gültigkeit von 7 Tagen. Dieses Ablaufdatum ist nicht konfigurierbar. In der Antwort an den Client validiert der Application Load Balancer nur den Namen, mit dem das benutzerdefinierte Cookie auf Zielgruppenebene konfiguriert wurde, und nicht den Wert oder das Ablaufattribut des benutzerdefinierten Cookies. Solange der Name übereinstimmt, sendet der Load Balancer in der Antwort beide Cookies an den Client: das vom Ziel gesetzte benutzerdefinierte Cookie und das vom Load Balancer generierte Anwendungscookie.

Bei nachfolgenden Anforderungen müssen die Clients beide Cookies zurücksenden, um die Stickiness aufrechtzuerhalten. Der Load Balancer entschlüsselt das Anwendungscookie und prüft, ob die konfigurierte Dauer der Stickiness noch gültig ist. Anschließend werden die im Cookie enthaltenen Informationen verwendet, um die Anforderung an dasselbe Ziel innerhalb der Zielgruppe zu senden, um die Stickiness aufrechtzuerhalten. Der Load Balancer leitet das benutzerdefinierte Anwendungscookie auch über einen Proxy an das Ziel weiter, ohne es zu überprüfen oder zu ändern. In nachfolgenden Antworten werden der Ablauf des vom Load Balancer generierten Anwendungs-Cookies und die im Load Balancer konfigurierte Dauer der Stickiness zurückgesetzt. Um die Stickiness zwischen Client und Target aufrechtzuerhalten, sollten das Cookie und die Dauer der Stickiness nicht ablaufen.

Wenn ein Ziel ausfällt oder fehlerhaft ist, leitet der Load Balancer keine Anforderungen mehr an dieses Ziel weiter und wählt basierend auf dem ausgewählten Load Balancing-Algorithmus ein neues fehlerfreies Ziel aus. Der Load Balancer behandelt die Sitzung jetzt als dem neuen fehlerfreien Ziel „angeheftet“ und leitet Anforderungen auch dann an dieses neue fehlerfreie Ziel, wenn das fehlerhafte Ziel wieder funktionsfähig ist.

Bei CORS-Anforderungen (Cross-Origin Resource Sharing) fügt der Load Balancer die SameSite=None; Secure-Attribute nur dann dem vom Load Balancer generierten Anwendungs-Cookie hinzu, um Stickiness zu aktivieren, wenn die Benutzeragent-Version Chromium80 oder höher ist.

Da die meisten Browser die Größe von Cookies auf 4K beschränken, teilt der Load Balancer Anwendungscookies, die größer als 4K sind, in mehrere Cookies auf. Application Load Balancer unterstützen Cookies mit einer Größe von bis zu 16 KB und können daher bis zu 4 Shards erstellen, die an den Client gesendet werden. Der Name des Anwendungs-Cookies, den der Client sieht, beginnt mit „AWSALBAPP-“ und enthält eine Fragmentnummer. Wenn die Cookie-Größe beispielsweise 0—4 K beträgt, sieht der Client AWSALBAPP-0. Wenn die Cookie-Größe 4-8k beträgt, sieht der Client AWSALBAPP-0 und AWSALBAPP-1, und so weiter.

Console
Um anwendungsspezifische Klebrigkeit zu ermöglichen
  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 Target Groups (Zielgruppen) 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. Unter Konfiguration der Zielauswahl, gehen Sie wie folgt vor:

    1. Wählen Sie Aktiviere die Klebrigkeit.

    2. Für Typ der Klebrigkeit, wählen Application-based Keks.

    3. Geben Sie im Feld Stickiness duration(Erhaltungsdauer) einen Wert zwischen 1 Sekunde und 7 Tagen aus.

    4. Geben Sie unter App-Cookie-Name einen Namen für Ihr anwendungsbasiertes Cookie ein.

      Verwenden Sie nicht AWSALB, AWSALBAPP oder AWSALBTG für den Cookie-Namen. Sie sind für die Verwendung durch den Load Balancer reserviert.

  6. Wählen Sie Änderungen speichern aus.

AWS CLI
Um anwendungsbedingte Klebrigkeit zu ermöglichen

Verwenden Sie den Befehl modify-target-group-attributes mit den folgenden Attributen:

  • stickiness.enabled

  • stickiness.type

  • stickiness.app_cookie.cookie_name

  • stickiness.app_cookie.duration_seconds

aws elbv2 modify-target-group-attributes \ --target-group-arn target-group-arn \ --attributes \ "Key=stickiness.enabled,Value=true" \ "Key=stickiness.type,Value=app_cookie" \ "Key=stickiness.app_cookie.cookie_name,Value=my-cookie-name" \ "Key=stickiness.app_cookie.duration_seconds,Value=300"
CloudFormation
Um anwendungsspezifische Klebrigkeit zu ermöglichen

Aktualisieren Sie das AWS::ElasticLoadBalancingV2:TargetGroup Ressource, die die folgenden Attribute enthält:

  • stickiness.enabled

  • stickiness.type

  • stickiness.app_cookie.cookie_name

  • stickiness.app_cookie.duration_seconds

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: HTTP Port: 80 TargetType: ip VpcId: !Ref myVPC TargetGroupAttributes: - Key: "stickiness.enabled" Value: "true" - Key: "stickiness.type" Value: "app_cookie" - Key: "stickiness.app_cookie.cookie_name" Value: "my-cookie-name" - Key: "stickiness.app_cookie.duration_seconds" Value: "300"
Manuelle Neuverteilung

Wenn beim Hochskalieren die Anzahl der Ziele erheblich zunimmt, besteht die Gefahr einer ungleichmäßigen Lastverteilung aufgrund von Stickiness. In diesem Szenario können Sie die Last mithilfe der folgenden zwei Optionen neu auf Ihre Ziele verteilen:

  • Legen Sie für das von der Anwendung generierte Cookie ein Ablaufdatum fest, das vor dem aktuellen Datum und der aktuellen Uhrzeit liegt. Dadurch wird verhindert, dass Clients das Cookie an den Application Load Balancer senden, wodurch der Prozess zur Feststellung der Stickiness erneut gestartet wird.

  • Legen Sie eine kurze Dauer für die anwendungsbasierte Stickiness-Konfiguration des Load Balancers fest, z. B. 1 Sekunde. Dadurch wird der Application Load Balancer gezwungen, die Stickiness wiederherzustellen, auch wenn das vom Ziel gesetzte Cookie noch nicht abgelaufen ist.

WAR HTTP/2 Verhalten bei der Verkehrsinspektion

Standardmäßig, wenn Sie Application Load Balancer mit integrieren AWS WAF, AWS WAF inspiziert HTTP/2 Anfragen sofort unter Verwendung der verfügbaren Anforderungsdaten. Dieser Inspektionsmodus unterstützt bidirektionale Streaming-Anwendungen, bei denen der Server antworten muss, bevor der Client das Senden der Anforderungsdaten abgeschlossen hat, wodurch Timeouts in Kommunikationsszenarien in Echtzeit vermieden werden.

Sie können den Application Load Balancer so konfigurieren, dass er akkumuliert HTTP/2 Datenrahmen vorher AWS WAF führt eine Inspektion durch. Diese Konfiguration hilft dabei, Sicherheitslücken zu verhindern, bei denen Angreifer bösartige Nutzlasten auf mehrere verteilen HTTP/2 Datenrahmen. Verwenden Sie diese Option für Standardanwendungen mit Anfragen und Antworten, bei denen Clients vollständige Anforderungsdaten übertragen, bevor sie Antworten erwarten, um Folgendes sicherzustellen AWS WAF prüft die gesamte Nutzlast der Anfrage.

Console
Um WAF zu konfigurieren HTTP/2 Verhalten bei der Verkehrsinspektion
  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 Target Groups (Zielgruppen) 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. Für WAF HTTP/2 Verhalten bei der Verkehrsinspektion, wählen Sie den Inspektionsmodus.

  6. Wählen Sie Änderungen speichern aus.

AWS CLI
Um WAF zu konfigurieren HTTP/2 Verhalten bei der Verkehrsinspektion

Verwenden Sie den Befehl modify-target-group-attributes zusammen mit dem Attribut waf.http2.traffic_inspection_behavior.

aws elbv2 modify-target-group-attributes \ --target-group-arn target-group-arn \ --attributes "Key=waf.http2.traffic_inspection_behavior,Value=inspect_after_sufficient_data"
CloudFormation
Um WAF zu konfigurieren HTTP/2 Verhalten bei der Verkehrsinspektion

Aktualisieren Sie das AWS::ElasticLoadBalancingV2:TargetGroup Ressource, die enthalten soll waf.http2.traffic_inspection_behavior Attribut.

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: HTTP ProtocolVersion: HTTP2 Port: 80 TargetType: ip VpcId: !Ref myVPC TargetGroupAttributes: - Key: "waf.http2.traffic_inspection_behavior" Value: "inspect_after_sufficient_data"

HTTP/2 RST_STREAM-Fehlerweiterleitung

Standardmäßig, wenn ein HTTP/2 oder das gRPC-Ziel beendet einen Stream, indem es einen sendet RST_STREAM Bei einem Frame mit einem Fehler gibt der Load Balancer eine HTTP 502-Antwort (Bad Gateway) an den Client zurück. Dadurch wird der spezifische Fehler ausgeblendet, den das Ziel gemeldet hat.

Wenn Sie die RST_STREAM-Fehlerweiterleitung aktivieren, leitet der Load Balancer stattdessen die des Ziels weiter RST_STREAM Fehlercode für die folgenden Fehlercodes an den Downstream-Client: REFUSED_STREAM, CANCEL, ENHANCE_YOUR_CALM, und INTERNAL_ERROR. Dadurch können gRPC und HTTP/2 Clients beobachten genau den Fehler, den das Ziel zurückgegeben hat, und reagieren darauf. Dieses Attribut gilt nur für Zielgruppen, die das verwenden HTTP2 oder GRPC Protokollversion, und sie ist standardmäßig deaktiviert.

Console
Um zu konfigurieren HTTP/2 RST_STREAM-Fehlerweiterleitung
  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 Target Groups (Zielgruppen) 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. Für HTTP/2 RST_STREAM-Fehlerweiterleitung, schalten Sie die Einstellung ein oder aus.

  6. Wählen Sie Änderungen speichern aus.

AWS CLI
Um zu konfigurieren HTTP/2 RST_STREAM-Fehlerweiterleitung

Verwenden Sie den Befehl modify-target-group-attributes zusammen mit dem Attribut routing.http2.rst_stream_error_forwarding.enabled.

aws elbv2 modify-target-group-attributes \ --target-group-arn target-group-arn \ --attributes "Key=routing.http2.rst_stream_error_forwarding.enabled,Value=true"
CloudFormation
Um zu konfigurieren HTTP/2 RST_STREAM-Fehlerweiterleitung

Aktualisieren Sie das AWS::ElasticLoadBalancingV2:TargetGroup Ressource, die enthalten soll routing.http2.rst_stream_error_forwarding.enabled Attribut.

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: HTTP ProtocolVersion: HTTP2 Port: 80 TargetType: ip VpcId: !Ref myVPC TargetGroupAttributes: - Key: "routing.http2.rst_stream_error_forwarding.enabled" Value: "true"