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

Skip Matching weist Amazon EC2 Auto Scaling an, Instances zu ignorieren, die bereits über Ihre neuesten Updates 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 Skip-Abgleich als auch mit einer gewünschten Konfiguration starten, überprü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. Nachdem die Instance-Aktualisierung erfolgreich war, aktualisiert Amazon EC2 Auto Scaling die Gruppe entsprechend Ihrer gewünschten Konfiguration.

  • Wenn Sie eine Instance-Aktualisierung mit Skip-Abgleich starten, aber keine gewünschte Konfiguration angeben, prüft Amazon EC2 Auto Scaling, ob Instances mit der Konfiguration übereinstimmen, die Sie zuletzt in der Auto Scaling 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. Ihre Spot-Zuweisungsstrategie geändert haben), wartet Amazon EC2 Auto Scaling darauf, dass die Instance-Aktualisierung erfolgreich ist. 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. Fügen Sie die --launch-template-data Option und die JSON Eingabe hinzu, die die Details der Instances definieren, die für Ihre Auto Scaling Scaling-Gruppe erstellt werden.

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

    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 Workflow zum Ersetzen der Instanz zu starten, und wenden Sie Ihre neue Startvorlage mit der ID an Beispiel für lt-068f72b729. Da die Startvorlage neu ist, gibt es nur eine Version. Dies bedeutet, dass die Version 1 der Startvorlage das Ziel dieser Instance-Aktualisierung ist. Wenn während der Instance-Aktualisierung ein Scale-Out-Ereignis eintritt und Amazon EC2 Auto Scaling neue Instances mithilfe 1 der Version 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 die AMI 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. Fügen Sie die --launch-template-data Option und die JSON Eingabe hinzu, die die Details der Instances definieren, die für Ihre Auto Scaling Scaling-Gruppe erstellt werden.

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

    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 Instanzen zurück, die für die Auto Scaling Scaling-Gruppe mit dem Namen 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 für den Instanzersatz zu initiieren, und wenden Sie Ihre neue Startvorlage mit der ID an Beispiel für lt-04d5cc9b88. Da die Startvorlage neu ist, gibt es nur eine Version. Dies bedeutet, dass die Version 1 der Startvorlage das Ziel dieser Instance-Aktualisierung ist. Wenn während der Instance-Aktualisierung ein Scale-Out-Ereignis eintritt und Amazon EC2 Auto Scaling neue Instances mithilfe 1 der Version 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 Instanzen zurück, die für die Auto Scaling Scaling-Gruppe mit dem Namen 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 Instanzaktualisierung ohne den unerwünschten Instanztyp m5a.large. Wenn ein Instance-Typ in Ihrer Gruppe keinem der verbleibenden drei Instance-Typen entspricht, 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 } }