Verwenden einer Instance-Aktualisierung mit Funktion zum Überspringen des Abgleichs - 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.

Verwenden einer Instance-Aktualisierung mit Funktion zum Überspringen des Abgleichs

Das Überspringen des Abgleichs weist Amazon EC2 Auto Scaling an, Instances zu ignorieren, die bereits über Ihre neuesten Aktualisierungen verfügen. Auf diese Weise ersetzen Sie nicht mehr Instances als Sie benötigen. Dies ist hilfreich, wenn Sie sicherstellen möchten, dass Ihre Auto-Scaling-Gruppe eine bestimmte Version Ihrer Startvorlage verwendet und nur die Instances ersetzt, die eine andere Version verwenden.

Beachten Sie im Zusammenhang mit der Funktion zum Überspringen entsprechender Instances folgende Überlegungen:

  • Wenn Sie eine Instance-Aktualisierung sowohl mit der Funktion zum Überspringen des Abgleichs als auch mit einer gewünschten Konfiguration starten, prüft Amazon EC2 Auto Scaling, ob Instances Ihrer gewünschten Konfiguration entsprechen. Anschließend werden nur die Instances ersetzt, die nicht Ihrer gewünschten Konfiguration entsprechen. Nach einer erfolgreichen Instance-Aktualisierung aktualisiert Amazon EC2 Auto Scaling die Gruppe, damit sie mit Ihrer gewünschten Konfiguration übereinstimmt.

  • Wenn Sie eine Instance-Aktualisierung mit der Funktion zum Überspringen des Abgleichs starten, aber keine gewünschte Konfiguration angeben, prüft Amazon EC2 Auto Scaling, ob Instances mit der exakten Konfiguration übereinstimmen, die Sie zuletzt in der Auto-Scaling-Gruppe gespeichert haben. Anschließend ersetzt es nur die Instances, die nicht Ihrer zuletzt gespeicherten Konfiguration entsprechen.

  • Sie können das Überspringen des Abgleichs mit einer neuen Startvorlage, einer neuen Version einer Startvorlage oder einem Satz von Instance-Typen verwenden. Wenn Sie das Überspringen des Abgleichs aktivieren, aber alles unverändert bleibt, ist die Instance-Aktualisierung sofort erfolgreich, ohne dass Instances ersetzt werden. Wenn Sie weitere Änderungen an Ihrer gewünschten Konfiguration vorgenommen haben (z. B. Änderungen an der Spot-Zuordnungsstrategie), wartet die Lösung Amazon EC2 Auto Scaling, bis die Instance-Aktualisierung erfolgreich ausgeführt wurde. Anschließend werden die Einstellungen der Auto-Scaling-Gruppe aktualisiert, sodass sie der neuen gewünschten Konfiguration entsprechen.

  • Die Funktion zum Überspringen entsprechender Instances kann nicht mit einer neuen Startkonfiguration verwendet werden.

  • Wenn Sie eine Instance-Aktualisierung starten und eine gewünschte Konfiguration angeben, stellt Amazon EC2 Auto Scaling sicher, dass alle Instances Ihre gewünschte Konfiguration verwenden. Wenn Sie also entweder $Default oder $Latest als gewünschte Version für Ihre Startvorlage angeben und dann während einer Instance-Aktualisierung eine neue Version der Startvorlage erstellen, werden alle Instances, die bereits ersetzt wurden, erneut ersetzt.

  • Bei Skip Matching wird nicht ermittelt, ob ein Benutzerdatenskript in der Startvorlage aktualisierten Code abruft und ihn auf neuen Instances installiert. Aus diesem Grund überspringt Skip Matching möglicherweise das Ersetzen von Instanzen, auf denen veralteter Code installiert ist. In diesem Fall sollten Sie den Abgleich überspringen deaktivieren, um sicherzustellen, dass alle Instances Ihren neuesten Code erhalten, auch ohne ein Versionsupdate für die Startvorlage.

Dieser Abschnitt enthält AWS CLI Anweisungen zum Starten einer Instanzaktualisierung bei aktiviertem Skip-Matching. Weitere Informationen zur Verwendung der Konsole finden Sie unter Starten einer Instance-Aktualisierung (Konsole).

Folgen Sie den Schritten in diesem Abschnitt AWS CLI , um Folgendes zu tun:

  • Erstellen einer Startvorlage, die Sie auf Ihre Instances anwenden möchten.

  • Starten einer Instance-Aktualisierung, um Ihre Startvorlage auf Ihre Auto-Scaling-Gruppe anzuwenden. Wenn Sie das Überspringen des Abgleichs nicht aktivieren, werden alle Instances ersetzt. Dies gilt auch dann, wenn die Startvorlage, die zum Bereitstellen der Instance verwendet wird, dieselbe ist wie die, die Sie für Ihre gewünschte Konfiguration angegeben haben.

So verwenden Sie die Funktion zum Überspringen des Abgleichs mit einer neuen Startvorlage
  1. Verwenden Sie den create-launch-templateBefehl, um eine neue Startvorlage für Ihre Auto Scaling Scaling-Gruppe zu erstellen. Schließen Sie die --launch-template-data-Option und die JSON-Eingabe ein, die die Details der Instances definiert, die für Ihre Auto-Scaling-Gruppe erstellt werden.

    Verwenden Sie beispielsweise den folgenden Befehl, um eine grundlegende Startvorlage mit der AMI-ID ami-0123456789abcdef0 und dem Instance-Typ t2.micro zu erstellen.

    aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"ImageId":"ami-0123456789abcdef0","InstanceType":"t2.micro"}'

    Bei erfolgreicher Ausführung gibt der Befehl eine Ausgabe zurück, die in etwa wie folgt aussieht:

    { "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b729example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "CreateTime": "2023-01-30T18:16:06.000Z", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

    Weitere Informationen finden Sie unter Beispiele für die Erstellung und Verwaltung von Startvorlagen mit dem AWS CLI.

  2. Verwenden Sie den start-instance-refreshBefehl, um den Instance-Ersatz-Workflow zu initiieren und Ihre neue Startvorlage mit der ID anzuwenden lt-068f72b729example. Da die Startvorlage neu ist, verfügt sie nur über eine Version. Dies bedeutet, dass die Version 1 der Startvorlage das Ziel dieser Instance-Aktualisierung ist. Falls während der Instance-Aktualisierung ein Aufskalierungsereignis auftritt und Amazon EC2 Auto Scaling neue Instances mit der Version 1 dieser Startvorlage bereitstellt, werden diese nicht ersetzt. Nach erfolgreichem Abschluss des Vorgangs wird die neue Startvorlage erfolgreich auf Ihre Auto-Scaling-Gruppe angewendet.

    aws autoscaling start-instance-refresh --cli-input-json file://config.json

    Inhalt von config.json.

    { "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b729example", "Version": "$Default" } }, "Preferences": { "SkipMatching": true } }

    Bei erfolgreicher Ausführung gibt der Befehl eine Ausgabe zurück, die in etwa wie folgt aussieht:

    { "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }

Wenn Sie über eine Auto Scaling Scaling-Gruppe mit einer Richtlinie für gemischte Instanzen verfügen, folgen Sie den Schritten in diesem Abschnitt, AWS CLI um eine Instanzaktualisierung mit Skip-Matching zu starten. Ihnen stehen folgende Optionen zur Verfügung:

  • Stellen Sie eine neue Startvorlage bereit, die für alle in der Richtlinie angegebenen Instance-Typen gelten soll.

  • Stellen Sie einen aktualisierten Satz von Instance-Typen mit oder ohne Änderung der Startvorlage in der Richtlinie bereit. Beispielsweise möchten Sie möglicherweise von unerwünschten Instance-Typen weg migrieren. Sie würden die Startvorlage unverändert verwenden, ohne das AMI, die Sicherheitsgruppen oder andere Besonderheiten der zu ersetzenden Instances zu ändern.

Befolgen Sie die Schritte in einem der folgenden Abschnitte, je nachdem, welche Option Ihren Anforderungen entspricht.

So verwenden Sie die Funktion zum Überspringen des Abgleichs mit einer neuen Startvorlage
  1. Verwenden Sie den create-launch-templateBefehl, um eine neue Startvorlage für Ihre Auto Scaling Scaling-Gruppe zu erstellen. Schließen Sie die --launch-template-data-Option und die JSON-Eingabe ein, die die Details der Instances definiert, die für Ihre Auto-Scaling-Gruppe erstellt werden.

    Verwenden Sie beispielsweise den folgenden Befehl, um eine Startvorlage mit der AMI-ID ami-0123456789abcdef0 zu erstellen.

    aws ec2 create-launch-template --launch-template-name my-new-template --version-description version1 \ --launch-template-data '{"ImageId":"ami-0123456789abcdef0"}'

    Bei erfolgreicher Ausführung gibt der Befehl eine Ausgabe zurück, die in etwa wie folgt aussieht:

    { "LaunchTemplate": { "LaunchTemplateId": "lt-04d5cc9b88example", "LaunchTemplateName": "my-new-template", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "CreateTime": "2023-01-31T15:56:02.000Z", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

    Weitere Informationen finden Sie unter Beispiele für die Erstellung und Verwaltung von Startvorlagen mit dem AWS CLI.

  2. Führen Sie den describe-auto-scaling-groupsBefehl aus, um die bestehende Richtlinie für gemischte Instanzen für Ihre Auto Scaling Scaling-Gruppe anzuzeigen. Sie benötigen diese Informationen im nächsten Schritt, wenn Sie die Instance-Aktualisierung starten.

    Der folgende Beispielbefehl gibt die Richtlinie für gemischte Instances zurück, die für die benannte Auto-Scaling-Gruppe konfiguriert ist my-asg.

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

    Bei erfolgreicher Ausführung gibt der Befehl eine Ausgabe zurück, die in etwa wie folgt aussieht:

    { "AutoScalingGroups":[ { "AutoScalingGroupName":"my-asg", "AutoScalingGroupARN":"arn", "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":"lt-073693ed27example", "LaunchTemplateName":"my-old-template", "Version":"$Default" }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" }, { "InstanceType":"m5a.large" } ] }, "InstancesDistribution":{ "OnDemandAllocationStrategy":"prioritized", "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"price-capacity-optimized" } }, "MinSize":1, "MaxSize":5, "DesiredCapacity":4, ... } ] }
  3. Verwenden Sie den start-instance-refreshBefehl, um den Workflow zum Ersetzen von Instances zu initiieren und Ihre neue Startvorlage mit der ID anzuwenden lt-04d5cc9b88example. Da die Startvorlage neu ist, verfügt sie nur über eine Version. Dies bedeutet, dass die Version 1 der Startvorlage das Ziel dieser Instance-Aktualisierung ist. Falls während der Instance-Aktualisierung ein Aufskalierungsereignis auftritt und Amazon EC2 Auto Scaling neue Instances mit der Version 1 dieser Startvorlage bereitstellt, werden diese nicht ersetzt. Nach erfolgreichem Abschluss des Vorgangs wird die aktualisierte Richtlinie für gemischte Instances erfolgreich auf Ihre Auto-Scaling-Gruppe angewendet.

    aws autoscaling start-instance-refresh --cli-input-json file://config.json

    Inhalt von config.json.

    { "AutoScalingGroupName":"my-asg", "DesiredConfiguration":{ "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":"lt-04d5cc9b88example", "Version":"$Default" }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" }, { "InstanceType":"m5a.large" } ] }, "InstancesDistribution":{ "OnDemandAllocationStrategy":"prioritized", "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"price-capacity-optimized" } } } }, "Preferences":{ "SkipMatching":true } }

    Bei erfolgreicher Ausführung gibt der Befehl eine Ausgabe zurück, die in etwa wie folgt aussieht:

    { "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }

In diesem nächsten Verfahren stellen Sie einen aktualisierten Satz von Instance-Typen bereit, ohne die Startvorlage zu ändern.

So verwenden Sie die Funktion zum Überspringen des Abgleichs mit einem aktualisierten Satz von Instance-Typen
  1. Führen Sie den describe-auto-scaling-groupsBefehl aus, um die bestehende Richtlinie für gemischte Instanzen für Ihre Auto Scaling Scaling-Gruppe anzuzeigen. Sie benötigen diese Informationen im nächsten Schritt, wenn Sie die Instance-Aktualisierung starten.

    Der folgende Beispielbefehl gibt die Richtlinie für gemischte Instances zurück, die für die benannte Auto-Scaling-Gruppe konfiguriert ist my-asg.

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

    Bei erfolgreicher Ausführung gibt der Befehl eine Ausgabe zurück, die in etwa wie folgt aussieht:

    { "AutoScalingGroups":[ { "AutoScalingGroupName":"my-asg", "AutoScalingGroupARN":"arn", "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":"lt-073693ed27example", "LaunchTemplateName":"my-template-for-auto-scaling", "Version":"$Default" }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" }, { "InstanceType":"m5a.large" } ] }, "InstancesDistribution":{ "OnDemandAllocationStrategy":"prioritized", "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"price-capacity-optimized" } }, "MinSize":1, "MaxSize":5, "DesiredCapacity":4, ... } ] }
  2. Verwenden Sie den start-instance-refreshBefehl, um den Workflow für den Instanzersatz zu initiieren und Ihre Updates anzuwenden. Wenn Sie Instances ersetzen möchten, die bestimmte Instance-Typen verwenden, muss Ihre gewünschte Konfiguration die Richtlinie für gemischte Instances nur mit den gewünschten Instance-Typen angeben. Sie können wählen, ob Sie stattdessen neue Instance-Typen hinzufügen möchten.

    Der folgende Beispielbefehl startet eine Instance-Aktualisierung ohne den unerwünschten Instance-Typ m5a.large. Wenn ein Instance-Typ in Ihrer Gruppe nicht mit einem der übrigen drei Instance-Typen übereinstimmt, werden die Instances ersetzt. (Berücksichtigen Sie, dass eine Instance-Aktualisierung nicht die Instance-Typen auswählt, aus denen die neuen Instances bereitgestellt werden sollen. Dies wird stattdessen von den Zuweisungsstrategien erledigt.) Nach erfolgreichem Abschluss des Vorgangs wird die aktualisierte Richtlinie für gemischte Instances erfolgreich auf Ihre Auto-Scaling-Gruppe angewendet.

    aws autoscaling start-instance-refresh --cli-input-json file://config.json

    Inhalt von config.json

    { "AutoScalingGroupName":"my-asg", "DesiredConfiguration":{ "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":"lt-073693ed27example", "Version":"$Default" }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" } ] }, "InstancesDistribution":{ "OnDemandAllocationStrategy":"prioritized", "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"price-capacity-optimized" } } } }, "Preferences":{ "SkipMatching":true } }