Vorübergehendes Entfernen von Instances aus einer 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.

Vorübergehendes Entfernen von Instances aus einer Auto-Scaling-Gruppe

Sie können eine Instance mit dem Status InService in den Status Standby versetzen, die Instance aktualisieren oder Probleme mit ihr beheben und sie dann wieder in Betrieb nehmen. Instances im Standby-Status sind immer noch Teil der Auto-Scaling-Gruppe, beteiligen sich aber nicht aktiv an der Verarbeitung von Load Balancer-Datenverkehr.

Mit dieser Funktion können Sie die Instances stoppen und starten oder neu starten, ohne sich Gedanken darüber machen zu müssen, dass Amazon EC2 Auto Scaling die Instances im Rahmen seiner Zustandsprüfungen oder bei Scale-In-Ereignissen beendet.

Sie können beispielsweise das Amazon Machine Image (AMI) für eine Auto Scaling Scaling-Gruppe jederzeit ändern, indem Sie die Startvorlage oder die Startkonfiguration ändern. Alle nachfolgenden Instances, die die Auto Scaling Scaling-Gruppe startet, verwenden diesAMI. Allerdings aktualisiert die Auto-Scaling-Gruppe keine Instances, die derzeit verwendet werden. Sie können diese Instances beenden und sie von Amazon EC2 Auto Scaling ersetzen lassen oder die Instance-Aktualisierungsfunktion verwenden, um die Instances zu beenden und zu ersetzen. Sie können auch die Instances in den Standby-Status versetzen, die Software aktualisieren und die Instances daraufhin wieder in Betrieb nehmen.

Das Trennen von Instances von einer Auto-Scaling-Gruppe ähnelt dem Setzen von Instances in den Standby-Modus. Das Trennen von Instances kann nützlich sein, wenn Sie sie einer anderen Gruppe zuordnen oder die Instances wie eigenständige EC2 Instances verwalten und möglicherweise beenden möchten. Weitere Informationen finden Sie unter Instances von Ihrer Auto Scaling Scaling-Gruppe trennen oder anhängen.

So funktioniert der Standby-Status

Der Standby-Status ermöglicht das vorübergehende Entfernen einer Instance aus der Auto-Scaling-Gruppe wie folgt:

  1. Sie versetzen eine Instance in den Standby-Status. Die Instance verbleibt in diesem Status, bis Sie den Standby-Status beenden.

  2. Ist eine Load Balancer-Zielgruppe oder ein Classic Load Balancer mit der Auto-Scaling-Gruppe verknüpft, wird die Instance vom Load Balancer abgemeldet. Ist der Connection Draining für den Load Balancer aktiviert, wartet Elastic Load Balancing standardmäßig 300 Sekunden, bevor die Registrierung abgeschlossen wird. So können laufende Anfragen abgeschlossen werden.

  3. Sie können die Instance aktualisieren oder Probleme mit ihr beheben.

  4. Die Instance wird wieder in Betrieb genommen, indem der Standby-Status aufgehoben wird.

  5. Ist eine Load Balancer-Zielgruppe oder ein Classic Load Balancer mit der Auto-Scaling-Gruppe verknüpft, wird die Instance mit Load Balancer angemeldet.

Weitere Informationen zum Lebenszyklus der Instances in einer Auto-Scaling-Gruppe finden Sie unter Lebenszyklus der Amazon EC2 Auto Scaling Scaling-Instance.

Überlegungen

Beim Verschieben von Instances in den Standby-Status und aus dem Standby-Status ist Folgendes zu beachten:

  • Wenn Sie eine Instance in den Standby-Status versetzen, können Sie die gewünschte Kapazität entweder durch diesen Vorgang verringern oder den Wert beibehalten.

    • Wenn Sie sich dafür entscheiden, die gewünschte Kapazität der Auto Scaling-Gruppe nicht zu verringern, startet Amazon EC2 Auto Scaling eine Instance, um die Instance im Standby-Modus zu ersetzen. Ziel ist es, Ihnen dabei zu helfen, die Kapazität für Ihre Anwendung aufrechtzuerhalten, während sich eine oder mehrere Instances im Standby-Modus befinden.

    • Wenn Sie die gewünschte Kapazität der Auto-Scaling-Gruppe verringern möchten, wird der Start einer Instance verhindert, mit dem die Instance im Standby-Status ersetzt wird.

  • Nachdem Sie die Instance wieder in Betrieb genommen haben, wird die gewünschte Kapazität entsprechend der Anzahl der Instances in der Auto-Scaling-Gruppe erhöht.

  • Um das Erhöhen (und Verringern) durchführen zu können, muss die neue gewünschte Kapazität zwischen der minimalen und der maximalen Gruppengröße liegen. Andernfalls schlägt die Operation fehl.

  • Wenn zu irgendeinem Zeitpunkt, nachdem Sie eine Instance in den Standby-Modus versetzt oder die Instance durch Verlassen des Standby-Status wieder in Betrieb genommen haben, festgestellt wird, dass Ihre Auto Scaling-Gruppe nicht zwischen den Availability Zones ausgeglichen ist, gleicht Amazon EC2 Auto Scaling dies aus, indem es die Availability Zones neu verteilt, sofern Sie den Prozess nicht unterbrechen. AZRebalance Weitere Informationen finden Sie unter Amazon EC2 Auto Scaling Scaling-Prozesse aussetzen und fortsetzen.

  • Instances im Standby-Status werden Ihnen in Rechnung gestellt.

Zustand einer Instance im Standby-Status

Amazon EC2 Auto Scaling führt keine Integritätsprüfungen für Instances durch, die sich im Standby-Status befinden. Solange sich die Instance in einem Standby-Status befindet, hat sie denselben Zustand wie vor dem Standby. Amazon EC2 Auto Scaling führt keine Zustandsprüfung der Instance durch, bis Sie sie wieder in Betrieb nehmen.

Wenn Sie beispielsweise eine intakte Instance in den Standby-Modus versetzen und sie dann beenden, meldet Amazon EC2 Auto Scaling die Instance weiterhin als fehlerfrei. Wenn Sie versuchen, eine beendete Instance, die sich im Standby-Modus befand, wieder in Betrieb zu nehmen, führt Amazon EC2 Auto Scaling eine Integritätsprüfung der Instance durch, stellt fest, dass sie beendet wird und fehlerhaft ist, und startet eine Ersatz-Instance. Weitere Informationen finden Sie unter Zustandsprüfungen für Instances in einer Auto-Scaling-Gruppe.

Entfernen Sie vorübergehend eine Instance, indem Sie sie in den Standby-Modus versetzen

Verwenden Sie eines der folgenden Verfahren, um eine Instanz vorübergehend außer Betrieb zu setzen, indem Sie sie in den Standby-Status versetzen.

Console
So entfernen Sie eine Instance vorübergehend:
  1. Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/und wählen Sie im Navigationsbereich Auto Scaling Groups aus.

  2. Aktivieren Sie das Kontrollkästchen neben der Auto-Scaling-Gruppe.

    Im unteren Teil der Seite wird ein geteilter Bereich geöffnet.

  3. Wählen Sie auf der Registerkarte Instance management (Instance-Verwaltung) unter Instances eine Instance aus.

  4. Wählen Sie Actions, Set to Standby aus.

  5. Lassen Sie im Dialogfeld Auf Standby setzen das Kontrollkästchen Instance ersetzen aktiviert, um eine Ersatz-Instance zu starten. Deaktivieren Sie dieses Kontrollkästchen, um die gewünschte Kapazität zu verringern.

  6. Wenn Sie zur Bestätigung aufgefordert werden, geben Sie standby ein, um zu bestätigen, dass die angegebene Instance in den Status Standby versetzt wird, und wählen Sie dann Auf Standby setzen aus.

  7. Sie können die Instance nach Bedarf aktualisieren oder Probleme mit ihr beheben. Wenn Sie fertig sind, fahren Sie mit dem nächsten Schritt fort, um die Instance erneut in Betrieb zu nehmen.

  8. Wählen Sie die Instance aus, wählen Sie Actions, Set to aus InService. Wählen Sie im InService Dialogfeld „Set to“ die Option „Set to“ aus InService.

AWS CLI

Verwenden Sie die folgenden Beispielbefehle, um eine Instance vorübergehend aus Ihrer Auto Scaling Scaling-Gruppe zu entfernen. Ersetzen Sie jede user input placeholder mit Ihren eigenen Informationen.

So entfernen Sie eine Instance vorübergehend:
  1. Verwenden Sie den folgenden describe-auto-scaling-instancesBefehl, um die Instanz zu identifizieren, die aktualisiert werden soll.

    aws autoscaling describe-auto-scaling-instances \ --query 'AutoScalingInstances[?AutoScalingGroupName==`my-asg`]'

    Das folgende Beispiel zeigt die Ausgabe, die erzeugt wird, wenn Sie diesen Befehl ausführen.

    Notieren Sie sich die ID der Instanz, die Sie aus der Gruppe entfernen möchten. Sie benötigen diese ID im nächsten Schritt.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceId": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ] }
  2. Verwenden Sie den folgenden Standbyenter-standby-Befehl, um die Instance in einen -Status zu versetzen. Die Option --should-decrement-desired-capacity senkt die gewünschte Kapazität, so dass die Auto-Scaling-Gruppe keine Ersatz-Instance startet.

    aws autoscaling enter-standby --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-decrement-desired-capacity

    Nachfolgend finden Sie eine Beispielantwort.

    { "Activities": [ { "ActivityId": "3b1839fe-24b0-40d9-80ae-bcd883c2be32", "AutoScalingGroupName": "my-asg", "Description": "Moving EC2 instance to Standby: i-05b4f7d5be44822a6", "Cause": "At 2023-12-15T21:31:26Z instance i-05b4f7d5be44822a6 was moved to standby in response to a user request, shrinking the capacity from 4 to 3.", "StartTime": "2023-12-15T21:31:26.150Z", "StatusCode": "InProgress", "Progress": 50, "Details": "{\"Subnet ID\":\"subnet-c934b782\",\"Availability Zone\":\"us-west-2a\"}" } ] }
  3. (Optional) Stellen Sie Standby mit dem folgenden describe-auto-scaling-instancesBefehl sicher, dass die Instanz aktiv ist.

    aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

    Nachfolgend finden Sie eine Beispielantwort. Der Status der Instance lautet jetzt Standby.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "Standby" }, ... ] }
  4. Sie können die Instance nach Bedarf aktualisieren oder Probleme mit ihr beheben. Wenn Sie fertig sind, fahren Sie mit dem nächsten Schritt fort, um die Instance erneut in Betrieb zu nehmen.

  5. Verwenden Sie den folgenden exit-standby-Befehl, um die Instance wieder in Betrieb zu nehmen:

    aws autoscaling exit-standby --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg

    Nachfolgend finden Sie eine Beispielantwort.

    { "Activities": [ { "ActivityId": "db12b166-cdcc-4c54-8aac-08c5935f8389", "AutoScalingGroupName": "my-asg", "Description": "Moving EC2 instance out of Standby: i-05b4f7d5be44822a6", "Cause": "At 2023-12-15T21:46:14Z instance i-05b4f7d5be44822a6 was moved out of standby in response to a user request, increasing the capacity from 3 to 4.", "StartTime": "2023-12-15T21:46:14.678Z", "StatusCode": "PreInService", "Progress": 30, "Details": "{\"Subnet ID\":\"subnet-c934b782\",\"Availability Zone\":\"us-west-2a\"}" } ] }
  6. (Optional) Verwenden Sie den folgenden Befehl describe-auto-scaling-instances, um zu überprüfen, ob die Instance wieder in Betrieb ist:

    aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

    Nachfolgend finden Sie eine Beispielantwort. Der Status der Instance lautet InService.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ] }