Über Zustandsprüfungen Ihrer Auto-Scaling-Gruppe - Amazon EC2 Auto Scaling

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.

Über Zustandsprüfungen Ihrer Auto-Scaling-Gruppe

Dieses Thema bietet einen Überblick über die verfügbaren Zustandsprüfungstypen und beschreibt die wichtigsten Überlegungen zur Integration von Amazon EC2 Auto Scaling Scaling-Zustandsprüfungen in Ihre Anwendungen.

Health check type (Typ der Zustandsprüfung)

Amazon EC2 Auto Scaling kann den Integritätsstatus einer InService Instance mithilfe einer oder mehrerer der folgenden Zustandsprüfungen ermitteln:

Health check type (Typ der Zustandsprüfung) Was es überprüft

Amazon-EC2-Zustandsprüfungen und geplante Ereignisse

  • Überprüft, ob die Instance läuft.

  • Prüft auf zugrunde liegende Hardware- oder Softwareprobleme, die die Instanz beeinträchtigen könnten.

Dies ist der standardmäßige Zustandsprüfungstyp für eine Auto-Scaling-Gruppe.

Elastic Load Balancing-Zustandsprüfungen

  • Überprüft, ob der Load Balancer die Instance als fehlerfrei meldet, und bestätigt, ob die Instance für die Bearbeitung von Anfragen verfügbar ist.

Um diesen Integritätsprüfungstyp auszuführen, müssen Sie ihn für Ihre Auto Scaling Scaling-Gruppe aktivieren.

VPC-Lattice-Zustandsprüfungen

  • Überprüft, ob VPC Lattice die Instance als fehlerfrei meldet, und bestätigt, ob die Instance für die Bearbeitung von Anfragen verfügbar ist.

Um diesen Integritätsprüfungstyp auszuführen, müssen Sie ihn für Ihre Auto Scaling Scaling-Gruppe aktivieren.

Benutzerdefinierte Zustandsprüfungen

  • Sucht gemäß Ihren benutzerdefinierten Integritätsprüfungen nach anderen Problemen, die auf Integritätsprobleme der Instance hinweisen könnten.

Zustandsprüfungen von Amazon EC2

Nachdem eine Instance gestartet wurde, wird sie an die Auto-Scaling-Gruppe angefügt und wechselt in den Zustand InService. Weitere Informationen über die verschiedenen Lebenszyklus-Statusse der Instances in einer Auto-Scaling-Gruppe finden Sie unter Instance-Lebenszyklus bei Amazon EC2 Auto Scaling.

Amazon EC2 Auto Scaling überprüft durch eine regelmäßige Zustandsprüfung aller Instances innerhalb der Auto-Scaling-Gruppe, ob sie ausgeführt werden und sich in einem guten Zustand befinden.

Statusüberprüfungen

Amazon EC2 Auto Scaling verwendet standardmäßig die Ergebnisse der Amazon EC2-Instance-Statusprüfungen und System-Statusprüfungen, um den Zustand einer Instance zu bestimmen. Wenn sich die Instance in einem anderen Amazon-EC2-Status als running befindet oder der Systemstatus impaired ist, betrachtet Amazon EC2 Auto Scaling die Instance als fehlerhaft und ersetzt sie. Dies gilt auch, wenn die Instance einen der folgenden Zustände aufweist:

  • stopping

  • stopped

  • shutting-down

  • terminated

Die Amazon EC2-Statusprüfungen erfordern keine spezielle Konfiguration und sind stets aktiviert. Weitere Informationen finden Sie unter Arten von Statusprüfungen im Amazon EC2 EC2-Benutzerhandbuch.

Wichtig

Amazon EC2 Auto Scaling lässt die Statusprüfungen gelegentlich ausfallen, ohne Maßnahmen zu ergreifen. Wenn eine Statusüberprüfung fehlschlägt, wartet Amazon EC2 Auto Scaling einige Minuten, AWS bis das Problem behoben ist. Es markiert eine Instance nicht sofort als Unhealthy, wenn ihr Status für die Zustandsprüfungen impaired wird.

Wenn Amazon EC2 Auto Scaling jedoch erkennt, dass sich eine Instance nicht mehr im Status running befindet, wird diese Situation umgehend als Fehler behandelt. In diesem Fall markiert es die Instance sofort als Unhealthy und ersetzt sie.

Geplante Ereignisse

Amazon EC2 kann gelegentlich Ereignisse auf Ihren Instances planen, die nach einem bestimmten Zeitstempel ausgeführt werden. Weitere Informationen finden Sie unter Geplante Ereignisse für Ihre Instances im Amazon EC2 EC2-Benutzerhandbuch.

Wenn eine Ihrer Instances von einem geplanten Ereignis betroffen ist, betrachtet Amazon EC2 Auto Scaling die Instance als fehlerhaft und ersetzt sie. Die Instance wird erst heruntergefahren, wenn das im Zeitstempel angegebene Datum und die Uhrzeit erreicht sind.

Elastic Load Balancing-Zustandsprüfungen

Wenn Sie Elastic Load Balancing Health Checks für Ihre Auto Scaling-Gruppe aktivieren, kann Amazon EC2 Auto Scaling die Ergebnisse dieser Zustandsprüfungen verwenden, um den Integritätsstatus einer Instance zu ermitteln.

Bevor Sie Elastic Load Balancing Health Checks für Ihre Auto Scaling Scaling-Gruppe aktivieren können, müssen Sie einen Elastic Load Balancing Load Balancer konfigurieren und dafür eine Integritätsprüfung konfigurieren, um festzustellen, ob Ihre Instances fehlerfrei sind. Weitere Informationen finden Sie unter Bereiten Sie den Anschluss eines Elastic Load Balancing Balancing-Load Balancers vor.

Nachdem Sie den Load Balancer Ihrer Auto Scaling Scaling-Gruppe hinzugefügt haben, passiert Folgendes:

  • Amazon EC2 Auto Scaling registriert die Instances in der Auto-Scaling-Gruppe beim Load Balancer.

  • Nachdem eine Instance die Registrierung beendet hat, wechselt sie in den Status InService und wird für die Verwendung mit dem Load Balancer verfügbar.

Standardmäßig ignoriert Amazon EC2 Auto Scaling die Ergebnisse der Zustandsprüfungen des Elastic Load Balancing. Wenn Sie diese Zustandsprüfungen für Ihre Auto Scaling-Gruppe aktiviert haben und Elastic Load Balancing eine registrierte Instance als meldetUnhealthy, markiert Amazon EC2 Auto Scaling die Instance Unhealthy bei der nächsten regelmäßigen Integritätsprüfung und ersetzt sie.

Wenn der Connection Draining (Verzögerte Deregistrierung) für Ihren Load Balancer aktiviert ist, wartet Amazon EC2 Auto Scaling, bis die laufenden Anforderungen abgeschlossen werden oder das maximale Zeitlimit abgelaufen ist, bevor die fehlerhaften Instances beendet werden.

Anmerkung

Anweisungen, wie Sie den Load Balancer anhängen und Elastic Load Balancing Health Checks für Ihre Auto Scaling Scaling-Gruppe aktivieren, finden Sie unterFügen Sie Ihrer Auto Scaling Scaling-Gruppe einen Elastic Load Balancing Load Balancer hinzu.

Wenn Sie Elastic Load Balancing Health Checks für eine Gruppe aktivieren, kann Amazon EC2 Auto Scaling Instances ersetzen, die Elastic Load Balancing als fehlerhaft meldet, aber erst, nachdem sich der Load Balancer im Status befindet. InService Weitere Informationen finden Sie unter Überprüfen des Anhangsstatus Ihres Load Balancers.

VPC-Lattice-Zustandsprüfungen

Standardmäßig ignoriert Amazon EC2 Auto Scaling die Ergebnisse der VPC-Lattice-Zustandsprüfungen. Sie können diese Integritätsprüfungen optional für Ihre Auto Scaling Scaling-Gruppe aktivieren. Wenn Sie dies getan haben und VPC-Lattice eine registrierte Instance als Unhealthy meldet, markiert Amazon EC2 Auto Scaling die Instance bei der nächsten regelmäßigen Zustandsprüfung als Unhealthy und ersetzt sie. Der Prozess des Registrierens von Instances und der anschließenden Überprüfung ihres Zustands entspricht der Funktionsweise von Elastic-Load-Balancing-Zustandsprüfungen.

Anmerkung

Anweisungen zum Anhängen der VPC Lattice-Zielgruppe und zum Aktivieren der VPC Lattice-Zustandsprüfungen für Ihre Auto Scaling Scaling-Gruppe finden Sie unter. Hinzufügen einer VPC-Lattice-Zielgruppe zu Ihrer Auto-Scaling-Gruppe

Wenn Sie VPC Lattice-Integritätsprüfungen für eine Gruppe aktivieren, kann Amazon EC2 Auto Scaling Instances ersetzen, die VPC Lattice als fehlerhaft meldet, aber erst, nachdem sich die Zielgruppe im Status befindet. InService Weitere Informationen finden Sie unter Überprüfen Sie den Anhangsstatus Ihrer VPC Lattice-Zielgruppe.

Wie Amazon EC2 Auto Scaling Ausfallzeiten minimiert

Standardmäßig werden neue Instances gleichzeitig bereitgestellt, wenn Ihre vorhandenen Instances beendet werden. Dadurch können neue Anfragen möglicherweise nicht akzeptiert werden, bis die neuen Instances voll funktionsfähig sind.

Wenn Amazon EC2 Auto Scaling feststellt, dass Instances nicht mehr laufen (oder sie Unhealthy mit dem Befehl set-instance-health markiert wurden), werden sie sofort ersetzt. Wenn jedoch andere Instances als fehlerhaft eingestuft werden, verwendet Amazon EC2 Auto Scaling den folgenden Ansatz, um sich von Ausfällen zu erholen. Dieser Ansatz minimiert Ausfallzeiten, die aufgrund vorübergehender Probleme oder falsch konfigurierter Integritätsprüfungen auftreten können.

  • Wenn gerade eine Skalierungsaktivität läuft und Ihre Auto Scaling-Gruppe die gewünschte Kapazität um 10 Prozent oder mehr unterschreitet, wartet Amazon EC2 Auto Scaling auf die laufende Skalierungsaktivität, bevor die fehlerhaften Instances ersetzt werden.

  • Bei der Skalierung wartet Amazon EC2 Auto Scaling darauf, dass die Instances eine erste Zustandsprüfung bestehen. Es wartet auch darauf, dass die Standard-Instance-Aufwärmphase beendet ist, um sicherzustellen, dass die neuen Instances bereit sind.

  • Nachdem die Instances das Warmlaufen abgeschlossen haben und die Gruppe auf mehr als 90 Prozent der gewünschten Kapazität angewachsen ist, ersetzt Amazon EC2 Auto Scaling die fehlerhaften Instances wie folgt:

    • Amazon EC2 Auto Scaling ersetzt jeweils nur bis zu 10 Prozent der gewünschten Kapazität der Gruppe. Dies geschieht, bis alle fehlerhaften Instances ersetzt wurden.

    • Beim Ersetzen von Instances wird gewartet, bis die neuen Instances eine erste Zustandsprüfung bestanden haben. Es wartet auch darauf, dass das Aufwärmen der Standard-Instance abgeschlossen ist, bevor es fortfährt.

Anmerkung

Wenn die Größe einer Auto Scaling-Gruppe so klein ist, dass der resultierende Wert von 10 Prozent kleiner als eins ist, ersetzt Amazon EC2 Auto Scaling stattdessen die fehlerhaften Instances nacheinander. Dies kann zu Ausfallzeiten für die Gruppe führen.

Wenn alle Instances in einer Auto-Scaling-Gruppe von Elastic Load Balancing-Zustandsprüfungen als fehlerhaft gemeldet werden und sich der Load Balancer im InService-Status befindet, markiert Amazon EC2 Auto Scaling möglicherweise weniger Instances gleichzeitig als fehlerhaft. Dies kann dazu führen, dass viel weniger Instances gleichzeitig ersetzt werden als die 10 Prozent, die in anderen Szenarien angewendet wurden. Dadurch haben Sie Zeit, das Problem zu beheben, ohne dass Amazon EC2 Auto Scaling automatisch die gesamte Gruppe beendet.

Gesundheitschecks für Instanzen in einem warmen Pool

Amazon EC2 Auto Scaling führt auch Integritätsprüfungen für Instances in einem warmen Pool durch. Weitere Informationen finden Sie unter Anzeigen des Status der Zustandsprüfung und dem Grund für Zustandsprüfungsfehler.

Überlegungen zur Zustandsprüfung

Im Folgenden finden Sie Überlegungen zur Verwendung von Amazon EC2 Auto Scaling Scaling-Zustandsprüfungen.

  • Sie Lebenszyklus-Hooks verwenden, wenn auf der Instance, die beendet wird, oder auf der Instance, die gestartet wird, etwas passieren muss. Mithilfe dieser Hooks können Sie eine benutzerdefinierte Aktion ausführen, wenn Amazon EC2 Auto Scaling Instances startet oder beendet. Weitere Informationen finden Sie unter Lebenszyklus-Hooks bei Amazon EC2 Auto Scaling.

  • Amazon EC2 Auto Scaling bietet keine Möglichkeit, die Amazon EC2-Statusprüfungen und geplante Ereignisse aus den Zustandsprüfungen auszuschließen. Wenn Sie nicht möchten, dass Instances ersetzt werden, empfehlen wir Ihnen, den ReplaceUnhealthy- und HealthCheck-Prozess für einzelne Auto-Scaling-Gruppen auszusetzen. Weitere Informationen finden Sie unter Amazon EC2 Auto Scaling Scaling-Prozesse aussetzen und fortsetzen.

  • Um den Zustand einer fehlerhaften Instance manuell auf Healthy zu setzen, können Sie versuchen, den Befehl set-instance-health zu verwenden. Wenn Sie eine Fehlermeldung erhalten, liegt das wahrscheinlich daran, dass die Instance bereits beendet ist. Im Allgemeinen ist es nur dann sinnvoll, die Zustandsprüfung einer Instance mit dem Befehl set-instance-health wieder auf Healthy zu setzen, wenn entweder der ReplaceUnhealthy-Prozess oder der Terminate-Prozess selbst ausgesetzt ist.

  • Wenn Sie Fehler bei einer Instance beheben müssen, ohne dass es zu Störungen durch Integritätsprüfungen kommt, können Sie die Instance in den Standby Status versetzen. Amazon EC2 Auto Scaling führt keine Integritätsprüfungen für Instances durch, die sich im Standby Status befinden, bis Sie die Instances wieder in Betrieb nehmen. Weitere Informationen finden Sie unter Vorübergehendes Entfernen von Instances aus einer Auto-Scaling-Gruppe.

  • Wenn die Instance beendet wird, werden alle zugehörigen Elastic IP-Adressen von ihr getrennt und der neuen Instance nicht automatisch zugeordnet. Sie müssen die elastische IP-Adressen manuell mit der neuen Instance verknüpfen oder dies automatisch mit einer auf Lebenszyklus-Hook-basierten Lösung tun. Weitere Informationen finden Sie unter Elastische IP-Adressen im Amazon-EC2-Benutzerhandbuch.

  • In ähnlicher Weise werden beim Beenden der Instance ihre zugehörigen EBS-Volumes getrennt (oder je nach DeleteOnTermination-Attribut des Volumes gelöscht). Sie müssen diese EBS-Volumes manuell an die neue Instance anhängen oder dies automatisch mit einer Lebenszyklus-Hook-basierten Lösung tun. Weitere Informationen finden Sie unter Anhängen eines Amazon EBS-Volumes an eine Instance im Amazon EBS-Benutzerhandbuch.

Benutzerdefinierte Zustandsprüfungen

Optional können Sie auch benutzerdefinierte Zustandserkennungs-Aufgaben für die Instances in Ihrer Auto-Scaling-Gruppe ausführen und den Zustandsstatus einer Instance als Unhealthy festlegen, wenn die Aufgabe fehlschlägt. Dies erweitert Ihre Zustandsprüfungen durch eine Kombination aus benutzerdefinierten Zustandsprüfungen, Amazon-EC2-Statusprüfungen und Elastic-Load-Balancing-Zustandsprüfungen, falls aktiviert.

Sie können die Zustandsinformationen der Instance über die AWS CLI oder ein SDK direkt von Ihrem System an Amazon EC2 Auto Scaling senden. Die folgenden Beispiele zeigen, wie Sie den AWS CLI Integritätsstatus einer Instance konfigurieren und anschließend den Integritätsstatus der Instance überprüfen können.

Verwenden Sie den folgenden set-instance-health-Befehl, um den Zustand der angegebenen Instance in Unhealthy zu ändern:

aws autoscaling set-instance-health --instance-id i-1234567890abcdef0 --health-status Unhealthy

Standardmäßig wird bei diesem Befehl die Wartefrist für die Zustandsprüfung eingehalten. Sie können jedoch dieses Verhalten außer Kraft setzen und die Übergangsfrist nicht einhalten, indem Sie die Option --no-should-respect-grace-period einbeziehen.

Verwenden Sie den folgenden describe-auto-scaling-groups-Befehl, um zu prüfen, ob der Instance-Zustand Unhealthy ist.

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

Im Folgenden sehen Sie eine Beispielantwort, die angibt, dass der Zustand der Instance Unhealthy lautet und die Instance beendet wird:

{ "AutoScalingGroups": [ { .... "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-1234567890abcdef0" }, "InstanceId": "i-1234567890abcdef0", "InstanceType": "t2.micro", "HealthStatus": "Unhealthy", "LifecycleState": "Terminating" }, ... ] } ] }