View a markdown version of this page

Überprüfungen des Anwendungsstatus - Amazon Elastic Compute Cloud

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.

Überprüfungen des Anwendungsstatus

Mithilfe von Anwendungsstatusüberprüfungen können Sie die Leistung und den Zustand Ihrer auf Amazon EC2 ausgeführten Anwendungen überwachen. Mithilfe von Anwendungsstatusprüfungen können Sie Beeinträchtigungen des Anwendungszustands erkennen und darauf reagieren, indem Sie Ihre Anwendungen über konfigurierbare Pfade und Ports überwachen. Beispielsweise können Sie mithilfe von Anwendungsstatusprüfungen überprüfen, ob Ihr Webserver den erwarteten Port abhört und neue Verbindungen akzeptiert.

Anwendungsstatusprüfungen überwachen die HTTP- und HTTPS-Antworten Ihrer Anwendungen an konfigurierbaren Pfaden und Ports. Sie werden alle 60 Sekunden ausgeführt und sind in Amazon EC2 Auto Scaling integriert, sodass Sie den Austausch von Instances automatisieren können, deren Anwendungen beeinträchtigt sind.

So funktionieren Überprüfungen des Anwendungsstatus

Bei der Überprüfung des Anwendungsstatus werden HTTP- oder HTTPS-Anfragen an einen Endpunkt gesendet, der alle 60 Sekunden einen Netzwerkport auf Ihrer Instance überwacht. AWS vergleicht den Antwortcode mit dem von Ihnen konfigurierten Statuscode-Matcher. Die Prüfung wird nach einer Reihe aufeinanderfolgender fehlgeschlagener Anfragen als beeinträchtigt und nach einer Reihe aufeinanderfolgender erfolgreicher Anfragen wieder als fehlerfrei markiert. Beide Zähler sind standardmäßig auf 2 eingestellt und konfigurierbar. Weitere Informationen finden Sie unter Schwellenwerte für die Bewertung.

Anmerkung

Bei Statusprüfungen der Anwendung wird die Anfrage zur Integritätsprüfung weitergeleitet HTTP/2.

Die HTTPS-Protokollprüfung validiert das Serverzertifikat nicht.

Während eines Neustarts melden Anwendungsstatusprüfungen einen Fehler, bis die Instanz wieder verfügbar ist, da die Anwendung während des Neustarts des Betriebssystems nicht auf Integritätsprüfungsanfragen antworten kann.

Netzwerkarchitektur

Die Überprüfung des Anwendungsstatus erfolgt über den Amazon EC2-Service zur Überprüfung des Anwendungsstatus. Um Ihre Instances zu erreichen, AWS erstellt eine verwaltete elastische Netzwerkschnittstelle (ENI) in Ihrer VPC. AWS erstellt eine ENI pro Kombination aus Quellsubnetz und Sicherheitsgruppe, der Instances zugeordnet sind. AWS erstellt die verwaltete ENI, wenn eine Anwendungsstatusüberprüfung diese Kombination zum ersten Mal erfordert, und entfernt sie, wenn sie für keine weitere Anwendungsstatusüberprüfung erforderlich ist. Die verwaltete ENI wird nicht auf Ihr Instance-ENI-Limit angerechnet, sondern auf Ihr globales Limit für ENIs pro VPC.

Der Anwendungsstatus wird von einem privaten Blickpunkt innerhalb Ihrer VPC aus auf Ihre Instances überprüft. Der Umfang beschreibt, woher die Prüfung stammt, und ist nicht Eigentum der IP-Adresse Ihrer Instance. AWS erstellt die verwaltete ENI in einem Subnetz innerhalb Ihrer VPC und erreicht die Instance über den privaten Netzwerkpfad.

Der Health AWS Check-Traffic stammt von verwalteten Amazon EC2-Instances in derselben Availability Zone wie die Ziel-Instance (oder der übergeordneten Availability Zone für Ziele in lokalen Zonen), wird über das AWS interne Netzwerk übertragen und durchquert nicht das öffentliche Internet. Weitere Informationen finden Sie unter Häufig gestellte Fragen zu Amazon VPC auf der Amazon Web Services-Website.

AWS verwaltete und vom Kunden verwaltete Netzwerkpfade

Anwendungsstatusprüfungen unterstützen zwei Onboarding-Modi, die bestimmen, wer die Quellsubnetze und Sicherheitsgruppen für die Integritätsprüfung ENI und die Zielsubnetze und Sicherheitsgruppen für die Ziel-Instances auswählt.

AWS verwaltete Netzwerkpfade

AWS wählt die Quellsubnetze und Sicherheitsgruppen für die Integritätsprüfung ENI sowie die Zielsubnetze und Sicherheitsgruppen für die Ziel-Instances aus.

Customer-managed Netzwerkpfade

Sie geben die Quellsubnetze und Sicherheitsgruppen für die Integritätsprüfung ENI und die Zielsubnetze und Sicherheitsgruppen für die Ziel-Instances an.

Verwenden Sie vom Kunden verwaltete Netzwerkpfade, wenn Sie kontrollieren müssen, aus welchen Subnetzen und Sicherheitsgruppen der Datenverkehr bei der Integritätsprüfung stammt, z. B. wenn Ihre VPC strenge Netzwerksegmentierung, Firewallregeln oder Compliance-Anforderungen hat, die einschränken, welche Quellen Ihre Anwendungsendpunkte erreichen können.

Sie wählen den Modus aus, indem Sie den Parameter in den Befehl create aufnehmen oder weglassen. --health-check-paths Wenn Sie den --health-check-paths Parameter weglassen, werden Quell- und Zielsubnetze sowie Sicherheitsgruppen (AWS verwaltete Netzwerkpfade) AWS ausgewählt. Wenn Sie den --health-check-paths Parameter angeben, verwalten Sie sie (vom Kunden verwaltete Netzwerkpfade).

IP-Version

Jede Anwendungsstatusüberprüfung ist einer einzelnen IP-Version (IPv4 oder IPv6) zugeordnet. Um eine Instance sowohl über IPv4 als auch über IPv6 zu überwachen, erstellen Sie zwei separate Anwendungsstatusprüfungen und ordnen Sie beide der Instance zu.

Checks erreichen Ihre Instance sowohl für IPv4 als auch für IPv6 aus Ihrer VPC.

Überprüfen Sie die Statuswerte

Bei jeder einzelnen Prüfung wird einer der folgenden Status gemeldet:

  • passed: Die Prüfung wurde erfolgreich abgeschlossen

  • failed: Die Prüfung ist fehlgeschlagen. Die Antwort enthält den HTTP-Statuscode, der von Ihrer Anwendung zurückgegeben wurde. Hinweise zur Interpretation und Problembehebung finden Sie unterFehlerbehebung.

  • initializing: Die erste Bewertung des Schecks ist noch nicht abgeschlossen

  • insufficient-data: Die Prüfung hat nicht genügend Daten erhalten, um ein Ergebnis zu ermitteln

  • not-applicable: Der Scheck ist nicht mit der Instanz verknüpft

Der für die Instanz gemeldete allgemeine Anwendungsstatus fasst alle einzelnen Prüfergebnisse zusammen. Der Gesamtstatus ist einer der folgenden:

  • ok: alle Prüfungen bestanden

  • impaired: eine oder mehrere Prüfungen sind fehlgeschlagen

  • initializing: eine oder mehrere Prüfungen haben ihre erste Bewertung noch nicht abgeschlossen

  • insufficient-data: Bei einer oder mehreren Kontrollen werden unzureichende Daten gemeldet

  • not-applicable: Alle zugehörigen Anwendungsstatusprüfungen sind von der Aggregation ausgeschlossen

  • suppressed: Die Auswertung der Anwendungsstatusüberprüfung wird für die Instanz unterdrückt

Aggregation

Sie können jede Prüfung des Anwendungsstatus als im Gesamtstatus der Instanz enthalten oder davon ausgeschlossen kennzeichnen. In der Standardeinstellung lautet eine Prüfungincluded.

included

Die Prüfung trägt zum Gesamtstatus der Instance bei und Amazon EC2 Auto Scaling verwendet sie.

excluded

Die Prüfung meldet ihren individuellen Status, trägt aber nicht zum Gesamtstatus der Instance bei und Amazon EC2 Auto Scaling verwendet sie nicht. Verwenden Sie diese Einstellung, um einen neuen Check in der Produktion zu validieren, ohne den Gesamtstatus zu beeinflussen oder Amazon EC2 Auto Scaling-Ersetzungen auszulösen. Dies ist der empfohlene Arbeitsablauf beim Hinzufügen eines Schecks zu einem vorhandenen Produktions-Workload; siehe. Testen einer neuen Anwendungsstatusüberprüfung

Beginnen Sie mit der Überprüfung des Anwendungsstatus

Voraussetzungen

Bevor Sie eine Überprüfung des Bewerbungsstatus durchführen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Eine VPC mit den Instanzen, die Sie überwachen möchten.

  • Ein Anwendungsendpunkt auf jeder Instance, der auf HTTP- oder HTTPS-Anfragen auf dem Port und HTTP-Pfad antworten kann, den Sie konfigurieren werden.

  • Eine Sicherheitsgruppe auf jeder Zielinstanz, die eingehenden Datenverkehr auf dem Check-Port von der Quellsicherheitsgruppe zulässt, die für die Überprüfung des Anwendungsstatus verwendet wird. Siehe Sicherheit und Berechtigungen.

Schritt 1: Konfigurieren Ihrer -Anwendung

Konfigurieren Sie Ihren Anwendungsendpunkt so, dass er auf HTTP- oder HTTPS-Anfragen auf dem Port und HTTP-Pfad reagiert, den Sie bei der Erstellung der Prüfung angeben. Geben Sie einen Antwortcode zurück, der in Ihrem Statuscode-Matcher enthalten ist, um anzuzeigen, dass die Anwendung fehlerfrei ist.

Stellen Sie sicher, dass die Sicherheitsgruppe der Ziel-Instance eingehenden Datenverkehr auf dem Check-Port von der Quellsicherheitsgruppe zulässt, die für die Statusüberprüfung der Anwendung verwendet wird. AWS Stellt für verwaltete Netzwerkpfade die Quellsicherheitsgruppe bei der Erstellung der Prüfung bereit. Für vom Kunden verwaltete Netzwerkpfade geben Sie die Quellsicherheitsgruppe an, wenn Sie die Prüfung erstellen.

Schritt 2: Erstellen Sie eine Checkdefinition

Verwenden Sie die AWS CLI, um eine Anwendungsstatusüberprüfung zu erstellen.

AWS CLI

Um AWS verwaltete Netzwerkpfade zu verwenden, lassen Sie den --health-check-paths Parameter weg und lassen AWS Sie Quell- und Zielsubnetze sowie Sicherheitsgruppen auswählen.

aws ec2 create-application-status-check \ --protocol https \ --port 443 \ --path "/health" \ --status-code-matcher "200"

Um vom Kunden verwaltete Netzwerkpfade zu verwenden, geben Sie den Parameter an. --health-check-paths Jeder Integritätsprüfungspfad enthält eine Quelle (Subnetz und Sicherheitsgruppe für die Integritätsprüfungs-ENI) und ein oder mehrere Ziele (Subnetz und Sicherheitsgruppe für die Ziel-Instances).

aws ec2 create-application-status-check \ --protocol https \ --port 443 \ --path "/health" \ --status-code-matcher "200" \ --health-check-paths '[{"Source":{"SubnetId":"subnet-111","SecurityGroupId":"sg-aaa"},"Destinations":[{"SubnetId":"subnet-222","SecurityGroupId":"sg-bbb"}]}]'
Schritt 3: Ordnen Sie die Prüfung den Instanzen zu

Ordnen Sie den Scheck den Instanzen zu, die Sie überwachen möchten, entweder nach Instanz-ID oder nach Tag.

AWS CLI

Nach Instanz-ID:

aws ec2 associate-application-status-check \ --application-status-check-id asc-1234567890abcdef0 \ --instance-ids i-0123456789abcdef0

Nach Tag:

aws ec2 associate-application-status-check \ --application-status-check-id asc-1234567890abcdef0 \ --target-tag-associations Key=Environment,Value=production

Verwenden Sie das aws:autoscaling:groupName System-Tag, um eine Verbindung zu allen Instances in einer Auto Scaling-Gruppe herzustellen:

aws ec2 associate-application-status-check \ --application-status-check-id asc-1234567890abcdef0 \ --target-tag-associations Key=aws:autoscaling:groupName,Value=my-asg

Bei Vorgängen zum Zuordnen und Aufheben der Zuordnung werden Erfolgs- und Fehlschlagergebnisse pro Instanz zurückgegeben. Wenn einige Instanzen nicht zugeordnet werden können (z. B. weil die Prüfung bereits zugeordnet ist), werden diese Instanzen in den Ergebnissen ohne Angabe eines Grundes angezeigt.

Schritt 4: Ergebnisse anzeigen

Zeigen Sie den Integritätsstatus der Anwendung pro Instanz an.

AWS CLI
aws ec2 describe-application-status \ --instance-ids i-0123456789abcdef0

Die Antwort umfasst den allgemeinen Anwendungsstatus und für jede zugehörige Prüfung den Prüfstatus und bei fehlgeschlagenen Prüfungen den von Ihrer Anwendung zurückgegebenen HTTP-Statuscode.

Beispielantwort:

{ "ApplicationStatuses": [ { "InstanceId": "i-0123456789abcdef0", "ApplicationStatus": { "Status": "ok", "Details": [ { "ApplicationStatusCheckId": "asc-1234567890abcdef0", "Status": "passed", "Reason": { "Code": "ResponseCodeMatched", "StatusCode": 200, "Protocol": "HTTP" } } ] } } ] }

Um Prüfdefinitionen (nicht den Status pro Instanz) anzuzeigen, verwenden Sie https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-application-status-checks.html describe-application-status-checks. Dieser Befehl gibt die Konfiguration Ihrer Anwendungsstatusprüfungen zurück, einschließlich der Einstellungen für Protokoll, Port, HTTP-Pfad und Statuscode-Matcher.

Konfigurationsoptionen

Bei der Überprüfung des Anwendungsstatus werden mehrere Konfigurationsparameter akzeptiert. In diesem Abschnitt werden die Parameter erläutert, bei denen das Verhalten nicht aus dem Parameternamen ersichtlich ist. Die vollständige Liste der Parameter und Validierungsregeln finden Sie unter CreateApplicationStatusCheck und AssociateApplicationStatusCheck in der Amazon EC2-API-Referenz.

Schwellenwerte für die Bewertung

FailureThreshold

Die Anzahl aufeinanderfolgender fehlgeschlagener Anfragen, bevor die Prüfung als beeinträchtigt markiert wird. Standard: 2

SuccessThreshold

Die Anzahl aufeinanderfolgender erfolgreicher Anfragen, bevor die Prüfung erneut als fehlerfrei markiert wird. Standard: 2

Timeout

Die Anzahl der Sekunden, die auf eine Antwort gewartet werden muss, bevor die Anfrage als fehlgeschlagen registriert wird. Wird als erzwungenes Timeout durchgesetzt. Wenn Ihre Anwendung innerhalb dieses Zeitfensters nicht reagiert, wird die Anfrage unabhängig von der möglichen Antwort als Fehler aufgezeichnet. Standard: 6. Gültiger Bereich: 1—30.

Karenzzeit beim Start

InitializationGracePeriodSeconds

Die Anzahl der Sekunden, die nach dem Start einer Instanz gewartet werden muss, bevor AWS mit der Auswertung der Prüfung begonnen wird. Verwenden Sie diesen Parameter, um Anwendungen Zeit zum Abhören zu geben, bevor die Prüfungen beginnen. Wenn die Nachfrist zu kurz ist, ersetzt Amazon EC2 Auto Scaling möglicherweise neue Instances, bevor ihre Anwendung bereit ist. Standard: 300. Gültiger Bereich: 1 bis 600.

IP-Bereich

IpScope

Bei der Überprüfung des Anwendungsstatus wird der private Geltungsbereich verwendet. Die Prüfung wird in Ihrer VPC ausgeführt. Bei IPv4 entspricht dies der privaten IP-Adresse der Instance. Klassifiziert die Adresse bei IPv6 AWS nicht als öffentlich oder privat; die Prüfung akzeptiert jede IPv6-Adresse und wertet sie innerhalb Ihrer VPC aus.

Geräteindex

DeviceIndex

Der Index des Netzwerkgeräts auf Ihrer Instance, das für die Zustandsprüfung AWS ausgewertet wird. Ändern Sie dies, wenn das primäre Netzwerkgerät Ihrer Instance nicht das ist, das Sie überprüfen möchten. Standard: 0

Aggregation, IP-Version und Zustandsprüfpfade (Quell- und Zielsubnetze sowie Sicherheitsgruppen) werden in eigenen Abschnitten weiter oben auf dieser Seite behandelt.

Standardeinstellungen

Bei AWS verwalteten Netzwerkpfaden verwenden die Anwendungsstatusprüfungen die folgenden Standardwerte.

Einstellung Standard

Intervall überprüfen

60 Sekunden (fest; nicht konfigurierbar)

Fehlerschwellenwert

2 aufeinanderfolgende Ausfälle

Schwellenwert für Erfolg

2 aufeinanderfolgende Erfolge

Zeitüberschreitung

6 Sekunden

Statuscode-Abgleich

200

HTTP-Pfad

/

IP-Version

IPv4

IP-Bereich

private

Geräteindex

0

Kulanzfrist für die Initialisierung

300 Sekunden

Aggregation

im Lieferumfang enthalten

Quell-Subnetze und Sicherheitsgruppen

Verwaltet von AWS

Amazon EC2 Auto Scaling-Integration

Amazon EC2 Auto Scaling beendet und ersetzt automatisch Instances, deren allgemeiner Anwendungsstatus gemeldet wirdimpaired, sofern die Prüfung in der Aggregation enthalten ist. Außer der Zuordnung der Anwendungsstatusprüfung zu den Instances in der Gruppe ist keine Auto Scaling-Gruppenkonfiguration erforderlich.

Amazon EC2 Auto Scaling verwendet den Gesamtstatus der Instance, nicht den individuellen Prüfstatus. Mit Häkchen markierte Schecks steuern excluded keine Amazon EC2 Auto Scaling-Aktionen. Schecks im suppressed Status steuern keine Amazon EC2 Auto Scaling-Aktionen.

Verwenden Sie den InitializationGracePeriodSeconds Parameter bei der Prüfung, um neuen Instances Zeit zum Starten zu geben, bevor die Überprüfung des Anwendungsstatus beginnt. Wenn die Kulanzzeit zu kurz ist, werden neue Instances möglicherweise beendet und durch Amazon EC2 Auto Scaling ersetzt, bevor ihre Anwendung für den Datenverkehr bereit ist.

Weitere Informationen darüber, wie Amazon EC2 Auto Scaling Zustandsprüfungen verwendet, finden Sie unter Zustandsprüfungen für Instances in einer Auto Scaling-Gruppe und Verwenden von Anwendungsstatusprüfungen mit einer Auto Scaling-Gruppe im Amazon EC2 Auto Scaling-Benutzerhandbuch.

Verwaltung der Bereitstellung, des Patches vor Ort und des Austauschs

Bereitstellungen, Patches vor Ort und andere Wartungsarbeiten können dazu führen, dass Ihre Anwendung vorübergehend unterbrochen oder neu gestartet wird. Während dieser Zeit melden Statusprüfungen der Anwendung einen Fehler, da die Anwendung nicht auf Anfragen zur Systemdiagnose reagieren kann. Wenn sich Ihre Instances in einer Auto Scaling-Gruppe befinden, in deren Aggregation Anwendungsstatusprüfungen enthalten sind, kann Amazon EC2 Auto Scaling diese Instances beenden und ersetzen, obwohl die Unterbrechung zu erwarten ist.

Option A: Unterdrücken Sie die Prüfung

Verwenden Sie die Unterdrückung für begrenzte Wartungsfenster, für die Sie die Dauer kennen. Die Unterdrückung wird auf Instanzebene erzwungen. Sie geben eine Dauer an oder lassen sie aus, um die Prüfung zu unterdrücken, bis Sie die Unterdrückung deaktivieren.

AWS CLI
aws ec2 enable-application-status-check-suppression \ --instance-ids i-0123456789abcdef0 \ --duration-seconds 3600

Die Antwort gibt für jede Instanz zurück, wann die Unterdrückung begonnen hat und wann sie beendet wird. Ein teilweiser Erfolg ist möglich. Einige Instanzen können möglicherweise nicht unterdrückt werden und werden in der Antwort mit einem Grund angezeigt.

So setzen Sie die Prüfungen fort, bevor das Unterdrückungsfenster abläuft:

aws ec2 disable-application-status-check-suppression \ --instance-ids i-0123456789abcdef0

Solange die Instanz unterdrückt ist, wird der allgemeine Anwendungsstatus für die Instanz gemeldetsuppressed. Amazon EC2 Auto Scaling wirkt nicht auf suppressed Instances.

Option B: Den Scheck von der Aggregation ausschließen

Wenn Sie möchten, dass der Scheck seinen individuellen Status weiterhin auswertet und meldet, sich aber nicht auf den Gesamtstatus auswirkt oder Amazon EC2 Auto Scaling-Aktionen auslöst, setzen Sie die Aggregationseinstellung des Schecks auf. excluded Dies ist nützlich für Szenarien mit längerer Lebensdauer, wie z. B. die Einführung einer neuen Prüfversion oder die Validierung einer Änderung, ohne das Risiko eines Austauschs einzugehen, und für Fälle, in denen die Telemetrie ohne Auswirkungen auf den Betrieb fortgesetzt werden soll.

Weitere Informationen finden Sie unter Aggregation.

Option C: Die Zuordnung zum Scheck aufheben

Verwenden Sie Dissoziation für eine längerfristige oder unbefristete Entfernung.

aws ec2 disassociate-application-status-check \ --application-status-check-id asc-1234567890abcdef0 \ --instance-ids i-0123456789abcdef0

Wenn Sie die Verknüpfung anhand eines Tags vorgenommen haben, entfernen Sie das Tag aus der Instanz, um die Verknüpfung aufzuheben. Nach der Trennung wird der allgemeine Anwendungsstatus für die Instanz gemeldet. not-applicable

Anleitung zur Bereitstellung

Bereitstellungen sind das häufigste Wartungsszenario, das unterdrückt werden muss. Verwenden Sie die Unterdrückung, wenn Ihr Bereitstellungstool über einen Hook vor der Bereitstellung und einen Hook nach der Bereitstellung verfügt, sodass Sie die Überprüfung vor Beginn der Bereitstellung unterdrücken und die Unterdrückung nach Abschluss der Bereitstellung deaktivieren können.

Das allgemeine Muster ist:

  1. Rufen Sie im Pre-Deployment-Hook enable-application-status-check-suppression für die Instance mit einer Dauer auf, die das erwartete Bereitstellungsfenster abdeckt.

  2. Führen Sie die Bereitstellung durch.

  3. Rufen Sie im Hook nach der Bereitstellung https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-application-status-check-suppression.html disable-application-status-check-suppression für die Instance auf.

Wenn Ihr Deployment-Tool keine Hooks hat, steuern Sie die Unterdrückung von der Pipeline aus, die das Deployment aufruft. CI/CD

Testen einer neuen Anwendungsstatusüberprüfung

Sie können eine neue Anwendungsstatusüberprüfung in der Produktion validieren, bevor sie zu Ihrer Überwachung auf Instanzebene beiträgt. Stellen Sie die Aggregationseinstellung auf, excluded wenn Sie die Prüfung erstellen, und bestätigen Sie dann, dass sie den erwarteten Status und die HTTP-Antwortcodes meldet. Wenn Sie bereit sind, ändern Sie die Einstellung included so, dass die Prüfung zum Gesamtstatus der Instance beiträgt und in Amazon EC2 Auto Scaling integriert wird.

  1. Erstellen Sie den Scheck, wobei die Aggregationseinstellung auf festgelegt ist. excluded

    aws ec2 create-application-status-check \ --protocol https \ --port 443 \ --path "/health" \ --status-code-matcher "200" \ --aggregation excluded
  2. Ordnen Sie den Check einer Testinstanz oder einer Teilmenge Ihrer Produktionsflotte zu.

  3. Warten Sie mindestens zwei Prüfintervalle (ungefähr zwei Minuten) ab, damit die Prüfung eine erste Bewertung abschließen kann.

  4. Verwenden Sie describe-application-status, um zu überprüfen, ob die Prüfung den erwarteten Status und den HTTP-Antwortcode meldet.

    aws ec2 describe-application-status \ --instance-ids i-0123456789abcdef0
  5. Wenn die Prüfung erwartungsgemäß gemeldet wird, aktualisieren Sie die Aggregationseinstellung auf, damit die Prüfung included zum Gesamtstatus der Instance beiträgt und Amazon EC2 Auto Scaling-Aktionen auslöst.

    aws ec2 modify-application-status-check \ --application-status-check-id asc-1234567890abcdef0 \ --aggregation included

Erweitertes Netzwerk

Die Statusüberprüfungen der Anwendung stammen von einer verwalteten ENI in dem Quellsubnetz und der Sicherheitsgruppe, die Sie angeben (oder die für Sie AWS ausgewählt wurde). Bei Workloads, die eine höhere Verfügbarkeit erfordern, als es eine Konfiguration mit einer einzigen Quelle bietet, oder bei Workloads, die in lokalen Zonen oder Outposts ausgeführt werden, sollten Sie die folgenden Muster berücksichtigen.

Local Zones

Bei Instances, die in AWS lokalen Zonen ausgeführt werden, befindet sich das Managed Elastic Network Interface (ENI) in der übergeordneten AWS Region, nicht in der lokalen Zone. Der Health-Check-Traffic zwischen der übergeordneten Region und Ihren Local Zone-Instances durchläuft den Local Zone Service Link, wodurch zusätzliche Datenübertragungsgebühren anfallen können.

Fehlerbehebung

Wenn bei einer Überprüfung des Anwendungsstatus eine Beeinträchtigung gemeldet wird, Sie aber davon ausgehen, dass Ihre Anwendung fehlerfrei ist, überprüfen Sie jedes der folgenden Punkte:

  1. Erreichbarkeit der Instanz. Vergewissern Sie sich, dass die Instance- und Systemstatuschecks der Instanz aktiviert sindok.

  2. Regel für eingehenden Datenverkehr der Sicherheitsgruppe. Die Sicherheitsgruppe der Zielinstanz muss eingehenden Datenverkehr auf dem Check-Port von der Quellsicherheitsgruppe zulassen, die für die Anwendungsstatusüberprüfung verwendet wird. AWS Stellt für AWS verwaltete Netzwerkpfade die Quell-Sicherheitsgruppe bereit; für vom Kunden verwaltete Netzwerkpfade verwenden Sie die Sicherheitsgruppe, die Sie als Quelle angegeben haben.

  3. Host-Firewall. Jede Firewall auf Host-Ebene (iptables, Windows-Firewall, Host-Firewall eines Drittanbieters) auf der Instanz muss eingehenden Datenverkehr auf dem Check-Port zulassen.

  4. Endpunkt der Anwendung. Die Anwendung muss den von Ihnen konfigurierten Port und Pfad überwachen. Bestätigen Sie mit einer lokalen Anfrage von der Instanz (curl http://localhost:PORT/PATH).

  5. Das Protokoll stimmt nicht überein. Wenn die Prüfung als HTTPS konfiguriert ist, der Endpunkt aber nur HTTP bereitstellt (oder umgekehrt), schlagen alle Aufrufe fehl.

  6. Statuscode-Abgleich. Vergewissern Sie sich, dass der tatsächliche Antwortcode Ihrer Anwendung in dem von Ihnen konfigurierten Statuscode-Matcher enthalten ist.

  7. Netzwerkpfad. Wenn Sie vom Kunden verwaltete Netzwerkpfade konfiguriert haben, stellen Sie sicher, dass das Quellsubnetz und die Sicherheitsgruppe mit dem Zielsubnetz verbunden sind. Verwenden Sie VPC Reachability Analyzer, um den Netzwerkpfad zu verfolgen.

  8. Verfügbares ENI-Kontingent. AWS erstellt in Ihrem Konto eine verwaltete Elastic Network Interface (ENI) für jede Kombination aus Quellsubnetz und Sicherheitsgruppe. Vergewissern Sie sich, dass Ihr Konto im Kontingent für die VPC über eine verfügbare ENI verfügt. Wenn Ihr Konto das ENI-Kontingent pro VPC erreicht hat, AWS können Sie das verwaltete ENI nicht erstellen und die Prüfung kann nicht ausgeführt werden. Weitere Informationen finden Sie unter Amazon VPC-Kontingente.

Codes für die Gründe

Die Antwort describe-application-status enthält einen Grund für jede Überprüfung. Der Grund enthält den von Ihrer Anwendung zurückgegebenen HTTP-Statuscode (als Zahl) sowie das für die Prüfung verwendete Protokoll. Ein Scheck wird markiert, passed wenn der zurückgegebene Statuscode in Ihrem Statuscode-Matcher enthalten ist und failed andernfalls.

Der Grund enthält auch einen Ursachencode und für HTTP-level Ergebnisse das Protokoll und den zurückgegebenen HTTP-Statuscode. Der Grund enthält die folgenden Felder:

Code

Der Ursachencode für das Ergebnis der Überprüfung des Anwendungsstatus. Einer der folgenden Werte:

  • ResponseCodeMatched: Der von der Integritätsprüfung zurückgegebene HTTP-Statuscode stimmte mit dem konfigurierten übereinStatusCodeMatcher.

  • ResponseCodeMismatch: Der von der Integritätsprüfung zurückgegebene HTTP-Statuscode stimmte nicht mit dem konfigurierten übereinStatusCodeMatcher.

  • ConnectionTimeout: Bei der Verbindung zum Ziel ist ein Timeout aufgetreten.

  • ResponseTimeout: Beim Zustandscheck ist das Zeitlimit abgelaufen, während auf eine Antwort des Ziels gewartet wurde.

  • ConnectionRefused: Das Ziel hat die Verbindung zur Integritätsprüfung abgelehnt.

  • ConnectionReset: Die Verbindung zur Integritätsprüfung wurde zurückgesetzt, bevor eine Antwort empfangen wurde.

Für ResponseCodeMatched und ResponseCodeMismatch enthält das StatusCode Feld den zurückgegebenen HTTP-Statuscode und das Protocol Feld enthält das für die Zustandsprüfung verwendete Protokoll. Bei Verbindungsfehlern wieConnectionTimeout, ResponseTimeout ConnectionRefusedConnectionReset, und sind die Protocol Felder StatusCode und nicht vorhanden.

Protocol

Das für die Integritätsprüfung verwendete Protokoll. Eines von HTTP oderHTTPS.

StatusCode

Der von der Integritätsprüfung zurückgegebene HTTP-Statuscode.

Verwenden Sie den zurückgegebenen HTTP-Statuscode, um zu ermitteln, warum eine Prüfung fehlgeschlagen ist. Einige gängige Beispiele:

HTTP-Statuscode Typische Bedeutung Allgemeine Problembehebung

200

Die Anwendung hat eine erfolgreiche Antwort zurückgegeben.

Keine. Dies ist in der Regel ein fehlerfreier Status.

301, 302

Die Anwendung hat eine Weiterleitung zurückgegeben. Health-Checks folgen keinen Weiterleitungen.

Richten Sie den Health-Check-Pfad auf das Ziel der Weiterleitung aus, oder fügen Sie den Weiterleitungscode Ihrem Statuscode-Abgleich hinzu, wenn Sie ihn für fehlerfrei halten.

401, 403

Die Anwendung erfordert eine Authentifizierung oder der Zugriff auf den Integritätsprüfungspfad wurde verweigert.

Konfigurieren Sie den Integritätsprüfungspfad so, dass er nicht authentifiziert ist, oder führen Sie Integritätsprüfungen auf einem Pfad durch, für den keine Anmeldeinformationen erforderlich sind.

404

Der konfigurierte Pfad zur Integritätsprüfung wurde in der Anwendung nicht gefunden.

Stellen Sie sicher, dass der Pfad einer Route entspricht, die Ihre Anwendung bedient.

500

Die Anwendung hat einen internen Serverfehler zurückgegeben.

Untersuchen Sie die Anwendungsprotokolle auf der Instanz.

502, 503, 504

Die Anwendung ist erreichbar, meldet jedoch Upstream- oder Kapazitätsprobleme.

Untersuchen Sie den Zustand, die Abhängigkeiten und die Kapazität der Anwendung. Wenn Ihre Anwendung diese Codes beim Start zurückgibt, erhöhen Sie den WertInitializationGracePeriodSeconds.

Die vollständige ApplicationStatusReason Struktur finden Sie ApplicationStatusReason in der Amazon EC2-API-Referenz.

Häufige Fehler

  • Die Sicherheitsgruppe lässt keinen eingehenden Datenverkehr von der Integritätsprüfungsquelle am Check-Port zu.

  • Die Anwendung ist an die Netzwerkschnittstelle gebunden 127.0.0.1 und überwacht diese nicht.

  • Der Integritätsprüfungspfad gibt eine Weiterleitung (301, 302) statt einer erfolgreichen Antwort zurück, und der Statuscode-Abgleich enthält den Weiterleitungscode nicht.

  • Die Prüfung ist für HTTPS konfiguriert, aber die Anwendung bedient nur HTTP oder umgekehrt.

  • Der Start der Anwendung dauert länger als der InitializationGracePeriodSeconds Wert, und Amazon EC2 Auto Scaling ersetzt die Instance, bevor sie bereit ist.

Überwachen Sie die Statusprüfungen der Anwendung

Sie können die Überprüfung des Anwendungsstatus auf drei Arten überwachen:

  • Amazon CloudWatch. Die StatusCheckFailed_Application Metrik gibt den allgemeinen Anwendungsstatus für die Instance wieder und kann Alarme auslösen. Die Metrik wird pro Instanz anhand der zugehörigen Prüfungen aggregiert, deren Aggregationseinstellung lautet. included CloudWatch veröffentlicht außerdem eine Metrik pro Prüfung für jede zugeordnete Prüfung, benannt. StatusCheckFailed_Application_application-status-check-id

  • Beschreiben Sie den Instanzstatus. Gibt den allgemeinen Anwendungsstatus zusammen mit den anderen Statusinformationen Ihrer Instance zurück.

  • Beschreiben-Anwendungsstatus. Gibt detaillierte Ergebnisse pro Instanz zurück, einschließlich des individuellen Status jeder zugehörigen Prüfung und des von Ihrer Anwendung zurückgegebenen HTTP-Statuscodes.

Verwenden Sie die CloudWatch Metrik für alarmgesteuerte Automatisierung. Verwenden Sie describe-instance-status sie, wenn Sie sie bereits nach dem Instanzstatus abfragen. Verwenden Sie diese describe-application-status Option, um eine detaillierte Übersicht pro Scheck zu erhalten.

Sicherheit und Berechtigungen

AWS erstellt und verwaltet die Netzwerkschnittstellen, die für die Überprüfung des Anwendungsstatus verwendet werden, mithilfe einer serviceverknüpften Rolle. Für den Service ist kein IAM-Setup erforderlich, um diese ENIs zu erstellen. Die dienstgebundene Rolle verwendet die EC2ApplicationStatusChecksServiceRolePolicy AWS verwaltete Richtlinie.

Um Anwendungsstatusüberprüfungen selbst zu erstellen, zuzuordnen, zu beschreiben, zu löschen und zu unterdrücken, benötigt Ihr IAM-Benutzer oder Ihre IAM-Rolle die entsprechenden Amazon EC2-Berechtigungen. Die vollständige Liste der Aktionen finden Sie in der Amazon EC2-API-Referenz.

Die Sicherheitsgruppe Ihrer Instance muss eingehenden Datenverkehr von der Quellsicherheitsgruppe für die Integritätsprüfung auf dem von Ihnen konfigurierten Port zulassen. AWS Stellt bei AWS verwalteten Netzwerkpfaden die Quell-Sicherheitsgruppe bereit; bei vom Kunden verwalteten Netzwerkpfaden verwenden Sie die Sicherheitsgruppe, die Sie als Quelle angegeben haben.

Preisgestaltung

Für die Überprüfung des Anwendungsstatus werden die folgenden Komponenten in Rechnung gestellt:

  • Eine stündliche Gebühr von 0,01 USD pro Managed Elastic Network Interface (ENI) pro Availability Zone.

  • Die CloudWatch Standardpreise von Amazon gelten für die Metriken zur Überprüfung des Anwendungsstatus.

Kontingente

Für die Überprüfung des Anwendungsstatus gelten AWS Servicekontingente. Die Kontingentnamen, Standardwerte und Beschreibungen finden Sie unter Amazon EC2-Endpunkte und Kontingente in der AWS Allgemeinen Referenz.

Zusätzlich zu den AWS Servicekontingenten, die sich auf die verwalteten Netzwerkschnittstellen auswirken, gelten für Anwendungsstatusprüfungen die folgenden Servicekontingente. In der Konsole für Dienstkontingente können Sie Ihre Nutzung einsehen und Erhöhungen anfordern.

Bei diesen Kontingenten ist ein Ziel eine einzelne Instanz, die von einem Zustandscheck überwacht wird. Wenn mehr als ein Health Check eine Instance überwacht, zählt jede Kombination aus Instance und Health Check als separates Ziel. Eine Zuordnung ist eine einzelne Tag-Regel oder eine einzelne Instanz-ID, die Sie einer Zustandsprüfung zuordnen. Jede Regel oder Instanz-ID zählt als eine Zuordnung, unabhängig davon, in wie viele Instanzen sie aufgelöst wird.

Kontingent Standard Anpassbar

Zustandsprüfungen pro Konto

50

Ja, automatisch

Verbände pro Gesundheitscheck

50

Ja, automatisch

Verbände pro Konto

200

Ja, automatisch

Ziele pro Konto

5,000

Ja, auf Anfrage

Die meisten Quotenerhöhungen werden automatisch genehmigt. Eine Erhöhung der Ziele pro Konto erfordert eine Anfrage und eine manuelle Genehmigung.

Wichtig

Wenn die Anzahl der Ziele in Ihrem Konto die Quote „Ziele pro Konto“ überschreitet, werden die Ziele, die das Limit überschreiten, nicht überwacht und es wird kein Antragsstatus gemeldet. Um Lücken bei der Überwachung zu vermeiden, sollten Sie die Anzahl Ihrer Ziele innerhalb der Quote belassen oder eine Erhöhung beantragen.

Wir empfehlen Ihnen, einen CloudWatch Amazon-Alarm zu erstellen, der den Status Ihrer Bewerbung überprüft, ob Ihr Kontingent genutzt wird, sodass Sie benachrichtigt werden, bevor Sie ein Kontingent erreichen. Service Quotas veröffentlicht Nutzungsmetriken im AWS/Usage Namespace CloudWatch, in dem Sie den Alarm erstellen können.