View a markdown version of this page

Trennen Sie Instances von Ihrer Auto Scaling-Gruppe oder fügen Sie sie hinzu - 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.

Trennen Sie Instances von Ihrer Auto Scaling-Gruppe oder fügen Sie sie hinzu

Sie können Instances von Ihrer Auto Scaling-Gruppe trennen. Nachdem eine Instanz getrennt wurde, wird diese Instanz unabhängig und kann entweder eigenständig verwaltet oder einer anderen Auto Scaling-Gruppe zugeordnet werden, unabhängig von der ursprünglichen Gruppe, zu der sie gehörte. Dies kann beispielsweise nützlich sein, wenn Sie Tests mit vorhandenen Instances durchführen möchten, auf denen Ihre Anwendung bereits ausgeführt wird.

Dieses Thema enthält Anweisungen zum Trennen und Anhängen von Instanzen. Beim Anhängen von Instanzen können Sie auch eine vorhandene Instanz anstelle einer getrennten verwenden.

Anstatt eine Instanz zu trennen und erneut derselben Gruppe zuzuordnen, empfehlen wir, das Standby-Verfahren zu verwenden, um die Instanz vorübergehend aus der Gruppe zu entfernen. Weitere Informationen finden Sie unter Vorübergehendes Entfernen von Instances aus einer Auto-Scaling-Gruppe.

Überlegungen zum Trennen von Instanzen

Beachten Sie beim Trennen von Instances die folgenden Punkte:

  • Sie können eine Instance trennen, wenn sie sich im Status „Oder“ InService oder im Standby Status „Beibehalten“ befindet. Instanzen im Status „Beibehalten“ können nur getrennt werden, wenn Sie die gewünschte Kapazität (ShouldDecrementDesiredCapacityauffalse) nicht verringern.

  • Seien Sie vorsichtig, wenn Sie Instances trennen, die sich im Standby-Zustand befinden. Wenn Sie versuchen, Instances zu trennen, nachdem Sie in den Standby Status versetzt haben, das ShouldDecrementDesiredCapacity Flag in den API-Aufruf aufnehmen, kann dies dazu führen, dass andere Instances unerwartet beendet werden.

  • Nachdem Sie eine Instance getrennt haben, läuft sie weiter und es fallen Gebühren an. Um unnötige Gebühren zu vermeiden, sollten Sie sicherstellen, dass Sie getrennte Instances erneut verbinden oder beenden, wenn sie nicht mehr benötigt werden.

  • Sie können sich dafür entscheiden, die gewünschte Kapazität um die Anzahl der Instances zu verringern, die Sie trennen. Wenn Sie sich dafür entscheiden, die Kapazität nicht zu verringern, startet Amazon EC2 Auto Scaling neue Instances, um die getrennten Instanzen zu ersetzen, um die gewünschte Kapazität aufrechtzuerhalten.

  • Wenn die Anzahl der Instances, die Sie trennen, dazu führt, dass die Auto Scaling-Gruppe ihre Mindestkapazität unterschreitet, müssen Sie die Mindestkapazität verringern.

  • Wenn Sie mehrere Instances von derselben Availability Zone trennen, ohne die gewünschte Kapazität zu verringern, gleicht sich die Gruppe von selbst aus, sofern Sie den Vorgang nicht unterbrechen. AZRebalance Weitere Informationen finden Sie unter Amazon EC2 Auto Scaling-Prozesse aussetzen und wieder aufnehmen.

  • Wird eine Instance von einer Auto-Scaling-Gruppe mit einer Load Balancer-Zielgruppe oder einem Classic Load Balancer entfernt, wird die Instance beim Load Balancer abgemeldet. Wenn Connection Draining (Abmeldeverzögerung) für Ihren Load Balancer aktiviert ist, wartet Amazon EC2 Auto Scaling auf den Abschluss von eingehenden Anforderungen.

Überlegungen zum Anhängen von Instances

Beachten Sie beim Anhängen von Instanzen Folgendes:

  • Amazon EC2 Auto Scaling behandelt angehängte Instances genauso wie Instances, die von der Gruppe selbst gestartet wurden. Das bedeutet, dass angehängte Instances bei Scale-In-Ereignissen beendet werden können, wenn sie ausgewählt werden. Die von der AWSServiceRoleForAutoScaling serviceverknüpften Rolle gewährten Berechtigungen ermöglichen Amazon EC2 Auto Scaling, dies zu tun.

  • Beim Hinzufügen von Instances erhöht sich die gewünschte Kapazität der Gruppe um die Anzahl der Instances, die hinzugefügt werden. Wenn die gewünschte Kapazität nach dem Hinzufügen der neuen Instances die maximale Größe der Gruppe überschreitet, schlägt die Anforderung, weitere Instances anzuhängen, fehl.

  • Wenn Sie Ihrer Gruppe Instances hinzufügen, was zu einer ungleichmäßigen Verteilung über die Availability Zones führt, gleicht Amazon EC2 Auto Scaling die Gruppe neu aus, um eine gleichmäßige Verteilung wiederherzustellen, sofern Sie den Vorgang nicht aussetzen. AZRebalance Weitere Informationen finden Sie unter Amazon EC2 Auto Scaling-Prozesse aussetzen und wieder aufnehmen.

  • Wird einer Auto-Scaling-Gruppe mit einer Load Balancer-Zielgruppe oder einem Classic Load Balancer eine Instance hinzugefügt, wird die Instance beim Load Balancer registriert.

Eine zuzuweisende Instance muss die folgenden Kriterien erfüllen:

  • Die Instance befindet sich bei Amazon EC2 im Zustand running.

  • Das AMI zum Starten der Instance ist noch vorhanden.

  • Die Instance gehört keiner anderen Auto-Scaling-Gruppe an.

  • Die Instance wird in einer der Availability Zones gestartet, die in der Auto Scaling-Gruppe definiert sind.

  • Wenn die Auto-Scaling-Gruppe über eine angefügte Load-Balancer-Zielgruppe oder einen Classic Load Balancer verfügt, müssen sich sowohl die Instance als auch der Load Balancer in derselben VPC befinden.

Verschieben Sie eine Instance mithilfe von Detach und Attach in eine andere Gruppe

Verwenden Sie eines der folgenden Verfahren, um eine Instance von Ihrer Auto Scaling-Gruppe zu trennen und sie einer anderen Auto Scaling-Gruppe zuzuordnen.

Informationen zum Erstellen einer neuen Auto Scaling-Gruppe aus einer getrennten Instance finden Sie unter Erstellen Sie eine Auto Scaling Scaling-Gruppe aus einer vorhandenen Instanz mit dem AWS CLI (nicht empfohlen, erstellt eine Startkonfiguration).

Console
So trennen Sie eine Instance von einer Auto-Scaling-Gruppe
  1. Öffnen Sie die Amazon EC2-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 Ihrer 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, und wählen Sie Actions (Aktionen), Detach (Trennen).

  4. Lassen Sie im Dialogfeld Instanz trennen 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.

  5. Wenn Sie zur Bestätigung aufgefordert werden, geben Sie detach ein, um das Entfernen der angegebenen Instance aus der Auto-Scaling-Gruppe zu bestätigen. Wählen Sie dann Instance trennen aus.

Sie können die Instance jetzt einer anderen Auto Scaling-Gruppe zuordnen.

So fügen Sie einer Auto-Scaling-Gruppe eine Instance hinzu
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. (Optional) Wählen Sie im Navigationsbereich unter Auto Scaling die Option Auto Scaling Groups (Auto-Scaling-Gruppen) aus. Wählen Sie die Auto-Scaling-Gruppe aus und stellen Sie sicher, dass die Höchstgröße der Auto-Scaling-Gruppe ausreicht, um eine weitere Instance hinzuzufügen. Erhöhen Sie andernfalls auf der Registerkarte Details die maximale Kapazität.

  3. Wählen Sie im Navigationsbereich unter Instances die Option Instances und dann eine Instance aus.

  4. Wählen Sie Actions, Instance Settings und Attach to Auto Scaling Group aus.

  5. Geben Sie auf der Seite Attach to Auto Scaling Group (An Auto-Scaling-Gruppe anhängen) für Auto Scaling group einen Namen für die Gruppe ein und wählen Sie anschließend Attach (Anhängen) aus.

  6. Wenn die Instance die Kriterien nicht erfüllt, wird eine Fehlermeldung mit entsprechenden Details ausgegeben. Zum Beispiel befindet sich die Instance möglicherweise nicht in derselben Availability Zone wie die Auto-Scaling-Gruppe. Wählen Sie Schließen und versuchen Sie es erneut mit einer Auto Scaling-Gruppe, die die Kriterien erfüllt.

AWS CLI

Verwenden Sie die folgenden Beispielbefehle, um eine Instanz zu trennen und anzuhängen. Ersetzen Sie jeden user input placeholder durch Ihre Informationen.

So trennen Sie eine Instance von einer Auto-Scaling-Gruppe
  1. Verwenden Sie den folgenden Befehl describe-auto-scaling-instances, um die aktuellen Instanzen zu beschreiben.

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

    Das folgende Beispiel zeigt die Ausgabe, die beim Ausführen dieses Befehls erzeugt wird.

    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", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0f280a4c58d319a8a", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" } ] }
  2. Verwenden Sie den folgenden Befehl detach-instances, um eine Instance zu trennen, ohne die gewünschte Kapazität zu verringern.

    aws autoscaling detach-instances --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg

    Fügen Sie die Option hinzu, um eine Instance zu trennen und die gewünschte Kapazität zu verringern. --should-decrement-desired-capacity

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

Sie können die Instance jetzt einer anderen Auto Scaling-Gruppe zuordnen.

So fügen Sie einer Auto-Scaling-Gruppe eine Instance hinzu
  1. Verwenden Sie den folgenden Befehl attach-instances, um die Instance einer anderen Auto Scaling-Gruppe zuzuordnen.

    aws autoscaling attach-instances --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg-for-testing
  2. Verwenden Sie den folgenden Befehl describe-auto-scaling-groups, um die Größe der Auto Scaling-Gruppe nach dem Anhängen einer Instance zu überprüfen.

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

    Die folgende Beispielantwort zeigt, dass die Gruppe über zwei laufende Instances verfügt, von denen eine die Instance ist, die Sie angehängt haben.

    { "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg-for-testing", "AutoScalingGroupARN": "arn", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "2", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 2, ... "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "2", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-00dcdfffdf5175890", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], ... } ] }