Legen Sie die standardmäßige Instance-Vorbereitung für eine Auto-Scaling-Gruppe fest - 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.

Legen Sie die standardmäßige Instance-Vorbereitung für eine Auto-Scaling-Gruppe fest

CloudWatch sammelt und aggregiert Nutzungsdaten, wie CPU und Netzwerk-I/O, in Ihren Auto Scaling Scaling-Instances. Sie verwenden diese Metriken, um Skalierungsrichtlinien zu erstellen, welche die Anzahl der Instances in Ihrer Auto-Scaling-Gruppe anpassen, wenn der Wert der ausgewählten Metrik steigt und abnimmt.

Sie können angeben, wie lange eine Instance, nachdem sie den InService Status erreicht hat, wartet, bis sie Nutzungsdaten zu den aggregierten Metriken beiträgt. Diese angegebene Zeit wird als Standard-Instance-Warmup bezeichnet. Dadurch wird verhindert, dass die dynamische Skalierung durch Metriken für einzelne Instances beeinträchtigt wird, die noch keinen Anwendungsdatenverkehr verarbeiten und bei denen möglicherweise vorübergehend eine hohe Auslastung von Rechenressourcen auftritt.

Um die Leistung Ihrer Target-Tracking- und Step-Scaling-Richtlinien zu optimieren, empfehlen wir Ihnen dringend, das standardmäßige Instance-Warmup zu aktivieren und zu konfigurieren. Es ist standardmäßig nicht aktiviert oder konfiguriert.

Wenn Sie das standardmäßige Instance-Warmup aktivieren, sollten Sie bedenken, dass Sie verhindern können, dass Instances auf den Mindestwert für den fehlerfreien Zustand angerechnet werden, wenn Sie Instances durch eine Instanzaktualisierung ersetzen, wenn Ihre Auto Scaling Scaling-Gruppe so eingestellt ist, dass sie vor Abschluss der Initialisierung auf den Mindestwert für intakte Instanzen angerechnet werden.

Leistungsaspekte der Skalierung

Für die meisten Anwendungen ist es sinnvoll, eine Standardinstanz-Aufwärmzeit festzulegen, die für alle Funktionen gilt, und nicht unterschiedliche Aufwärmzeiten für verschiedene Funktionen. Wenn Sie beispielsweise keine Standardinstanzaufwärmzeit festlegen, verwendet die Instanzaktualisierungsfunktion die Kulanzzeit für die Integritätsprüfung als Standard-Aufwärmzeit. Wenn Sie über Richtlinien zur Zielverfolgung und schrittweisen Skalierung verfügen, verwenden diese den für die Standard-Abklingzeit festgelegten Wert als Standard-Aufwärmzeit. Wenn Sie über Richtlinien für vorausschauende Skalierung verfügen, haben diese keine standardmäßige Aufwärmzeit.

Während der Instances in der Warmlaufphase werden Ihre dynamischen Skalierungsrichtlinien nur dann skaliert, wenn der Metrikwert von Instances, die sich nicht in der Warmlaufphase befinden, den Schwellenwert für hohe Alarmwerte der Richtlinie (oder die Zielauslastung einer Skalierungsrichtlinie für die Zielverfolgung) überschreitet. Wenn die Nachfrage sinkt, wird die dynamische Skalierung konservativer, um die Verfügbarkeit Ihrer Anwendung zu schützen. Dadurch werden die Scale-In-Aktivitäten für die dynamische Skalierung blockiert, bis die neuen Instances vollständig warmlaufen.

Bei der Skalierung berücksichtigt Amazon EC2 Auto Scaling Instances, die sich gerade aufwärmen, als Teil der Kapazität der Gruppe, wenn entschieden wird, wie viele Instances der Gruppe hinzugefügt werden sollen. Daher führen mehrere Sicherheitslücken, für die eine ähnliche Menge an Kapazität hinzugefügt werden muss, zu einer einzigen Skalierungsaktivität. Es ist beabsichtigt, kontinuierlich zu skalieren, ohne dies übermäßig zu tun.

Wenn das standardmäßige Aufwärmen von Instances nicht aktiviert ist, variiert die Zeit, die eine Instance wartet, bevor sie Metriken an die aktuelle Kapazität sendet CloudWatch und diese auf die aktuelle Kapazität anrechnet, von Instance zu Instance. Es besteht also die Möglichkeit, dass Ihre Skalierungsrichtlinien im Vergleich zur tatsächlich anfallenden Arbeitslast unvorhersehbar funktionieren.

Stellen Sie sich zum Beispiel eine Anwendung mit einem wiederkehrenden on-and-off Workload-Muster vor. Eine prädiktive Skalierungsrichtlinie wird verwendet, um wiederkehrende Entscheidungen darüber zu treffen, ob die Anzahl der Instances erhöht werden soll. Da es keine standardmäßige Aufwärmzeit für Richtlinien zur vorausschauenden Skalierung gibt, beginnen die Instances sofort, zu den aggregierten Metriken beizutragen. Wenn diese Instances beim Start eine höhere Ressourcennutzung haben, kann das Hinzufügen von Instances zu einem Anstieg der aggregierten Metriken führen. Abhängig davon, wie lange es dauert, bis sich die Nutzung stabilisiert hat, kann sich dies auf alle dynamischen Skalierungsrichtlinien auswirken, die diese Metriken verwenden. Wird der hohe Alarmschwellenwert einer dynamischen Skalierungsrichtlinie überschritten, nimmt die Größe der Gruppe wieder zu. Während sich die neuen Instances noch in der Vorbereitung befinden, werden Aktivitäten zum Abskalieren gesperrt.

Wählen Sie die Standard-Aufwärmzeit der Instanz

Der Schlüssel zur Einstellung der standardmäßigen Instance-Vorbereitung besteht darin, zu bestimmen, wie lange Ihre Instances benötigen, bis die Initialisierung abgeschlossen ist und wie lange der Ressourcenverbrauch benötigt, um sich zu stabilisieren, nachdem sie den InService-Status erreicht haben. Achten Sie bei der Wahl der Instance-Aufwärmzeit auf ein optimales Gleichgewicht zwischen der Erfassung von Nutzungsdaten für legitimen Datenverkehr und der Minimierung der Datenerfassung im Zusammenhang mit temporären Nutzungsspitzen beim Start.

Angenommen, Sie haben eine Auto-Scaling-Gruppe mit einem Elastic-Load-Balancing-Load-Balancer verbunden. Wenn der Start neuer Instances abgeschlossen ist, werden sie beim Load Balancer registriert, bevor sie in den Status InService wechseln. Nachdem die Instances den Status InService erreicht haben, kann der Ressourcenverbrauch immer noch vorübergehende Spitzen erleben und braucht Zeit, um sich zu stabilisieren. Beispielsweise dauert die Stabilisierung des Ressourcenverbrauchs für einen Anwendungsserver, der große Assets herunterladen und zwischenspeichern muss, länger als bei einem leichtgewichtigen Webserver, der keine großen Assets herunterzuladen hat. Die Instance-Vorbereitung bietet die Zeitverzögerung, die für die Stabilisierung des Ressourcenverbrauchs erforderlich ist.

Wichtig

Wenn Sie sich nicht sicher sind, wie viel Zeit Sie für die Aufwärmzeit benötigen, können Sie mit 300 Sekunden beginnen. Verringern oder erhöhen Sie sie dann schrittweise, bis Sie die beste Skalierungsleistung für Ihre Anwendung erhalten. Möglicherweise müssen Sie dies einige Male tun, um es richtig zu machen. Wenn Sie Skalierungsrichtlinien haben, die über eine eigene Aufwärmzeit (EstimatedInstanceWarmup) verfügen, können Sie alternativ diesen Wert für den Start verwenden. Weitere Informationen finden Sie unter Suchen Sie nach Skalierungsrichtlinien mit einer zuvor festgelegten Aufwärmzeit für Instanzen.

Erwägen Sie, Lebenszyklus-Hooks für Anwendungsfälle zu verwenden, in denen Konfigurationsaufgaben oder Skripte beim Start ausgeführt werden sollen. Lebenszyklus-Hooks können verzögern, dass neue Instances in Betrieb genommen werden, bis sie die Initialisierung abgeschlossen haben. Sie sind besonders nützlich, wenn Sie Bootstrapping-Skripte haben, die einige Zeit in Anspruch nehmen. Wenn Sie einen Lebenszyklus-Hook hinzufügen, können Sie den Wert der standardmäßigen Instance-Vorbereitung reduzieren. Weitere Informationen über das Verwenden von Lebenszyklus-Hooks finden Sie unter Lebenszyklus-Hooks bei Amazon EC2 Auto Scaling.

Aktivieren Sie das Standard-Instance-Warmup für eine Gruppe

Sie können die standardmäßige Instance-Vorbereitung aktivieren, wenn Sie eine Auto-Scaling-Gruppe erstellen. Sie können sie auch für vorhandene Gruppen aktivieren.

Wenn Sie die Standardfunktion zum Aufwärmen von Instanzen aktivieren, müssen Sie für die folgenden Funktionen keine Werte mehr für Aufwärmparameter angeben:

Console
So aktivieren Sie die standardmäßige Instance-Vorbereitung für eine Gruppe (Konsole)

Wenn Sie die Auto-Scaling-Gruppe erstellen, wählen Sie auf der Seite Configure advanced options (Erweiterte Optionen konfigurieren) unter Additional Settings (Zusätzliche Einstellungen) die Option Enable default instance warmup (Standardmäßige Instance-Vorbereitung aktivieren). Wählen Sie die Aufwärmzeit, die Sie für Ihre Anwendung benötigen.

AWS CLI
So aktivieren Sie die standardmäßige Instance-Vorbereitung für eine neue Gruppe (AWS CLI)

Um die standardmäßige Instance-Vorbereitung für eine Auto-Scaling-Gruppe zu aktivieren, fügen Sie die Option --default-instance-warmup hinzu und geben Sie einen Wert in Sekunden von 0 bis 3 600 an. Nachdem dies aktiviert wurde, wird ein Wert von -1 diese Einstellung ausschalten.

Der folgende create-auto-scaling-group-Befehl erstellt eine Auto-Scaling-Gruppe mit dem Namen my-asg und aktiviert die standardmäßige Instance-Vorbereitung mit einem Wert von 120 Sekunden.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --default-instance-warmup 120 ...
Tipp

Wenn dieser Befehl einen Fehler ausgibt, stellen Sie sicher, dass Sie die AWS CLI lokale Version auf die neueste Version aktualisiert haben.

Console
So aktivieren Sie die standardmäßige Instance-Vorbereitung für eine vorhandene Gruppe (Konsole)
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/ und wählen Sie im Navigationsbereich Auto Scaling Groups (Auto-Scaling-Gruppen) aus.

  2. Wählen Sie in der Navigationsleiste oben die AWS-Region aus, in der Sie Ihre Auto-Scaling-Gruppe erstellt haben.

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

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

  4. Wählen Sie auf der Registerkarte Details die Option Erweiterte Konfigurationen, Bearbeiten.

  5. Wählen Sie unter Default instance warmup die Aufwärmzeit aus, die Sie für Ihre Anwendung benötigen.

  6. Wählen Sie Aktualisieren.

AWS CLI
So aktivieren Sie die standardmäßige Instance-Vorbereitung für eine vorhandene Gruppe (AWS CLI)

Das Folgende Beispiel verwende den Befehl update-auto-scaling-group, um die standardmäßige Instance-Vorbereitung mit einem Wert von 120 Sekunden für eine vorhandene Auto-Scaling-Gruppe mit dem Namen my-asg zu aktivieren.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --default-instance-warmup 120
Tipp

Wenn dieser Befehl einen Fehler auslöst, stellen Sie sicher, dass Sie die AWS CLI lokale Version auf die neueste Version aktualisiert haben.

Überprüfen Sie die standardmäßige Instance-Vorbereitung für eine Gruppe

So überprüfen Sie die standardmäßige Instance-Vorbereitung für eine Auto-Scaling-Gruppe (AWS CLI)

Verwenden Sie den folgenden describe-auto-scaling-groups-Befehl. Ersetzen Sie my-asg durch den Namen Ihrer Auto-Scaling-Gruppe.

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

Nachfolgend finden Sie eine Beispielantwort.

{ "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg", "AutoScalingGroupARN": "arn", ... "DefaultInstanceWarmup": 120 } ] }

Suchen Sie nach Skalierungsrichtlinien mit einer zuvor festgelegten Aufwärmzeit für Instanzen

Um festzustellen, ob Sie Richtlinien haben, für die eine eigene Aufwärmzeit giltEstimatedInstanceWarmup, führen Sie den folgenden Befehl describe-policies mit dem aus. AWS CLI Ersetzen Sie my-asg durch den Namen Ihrer Auto-Scaling-Gruppe.

aws autoscaling describe-policies --auto-scaling-group-name my-asg --query 'ScalingPolicies[?EstimatedInstanceWarmup!=`null`]'

Es folgt eine Beispielausgabe.

[ { "AutoScalingGroupName":"my-asg", "PolicyName":"cpu50-target-tracking-scaling-policy", "PolicyARN":"arn", "PolicyType":"TargetTrackingScaling", "StepAdjustments":[], "EstimatedInstanceWarmup":120, "Alarms":[{ "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e", "AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2", "AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2" }], "TargetTrackingConfiguration":{ "PredefinedMetricSpecification":{ "PredefinedMetricType":"ASGAverageCPUUtilization" }, "TargetValue":50.0, "DisableScaleIn":false }, "Enabled":true }, ... additional policies ... ]

Löschen Sie die zuvor festgelegte Instance-Vorbereitung für eine Skalierungsrichtlinie

Nachdem Sie das standardmäßige Aufwärmen der Instanz aktiviert haben, aktualisieren Sie alle Skalierungsrichtlinien, für die noch eine eigene Aufwärmzeit gilt, um den zuvor festgelegten Wert zu löschen. Andernfalls wird die standardmäßige Instance-Vorbereitung überschrieben.

Sie können Skalierungsrichtlinien mithilfe der Konsole oder AWS mithilfe von AWS CLI SDKs aktualisieren. In diesem Abschnitt werden die Schritte für die Konsole behandelt. Wenn Sie die AWS SDKs AWS CLI oder verwenden, stellen Sie sicher, dass Sie die bestehende Richtlinienkonfiguration beibehalten, aber die EstimatedInstanceWarmup Eigenschaft entfernen. Wenn Sie eine bestehende Skalierungsrichtlinie aktualisieren, wird die Richtlinie durch die Richtlinie ersetzt, die Sie angeben, wenn Sie Policy programmgesteuert aufrufen. PutScaling Die ursprünglichen Werte werden nicht beibehalten.

Um die zuvor festgelegte Instance-Vorbereitung für eine Skalierungsrichtlinie (Konsole) zu löschen
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/ und wählen Sie im Navigationsbereich Auto Scaling Groups (Auto-Scaling-Gruppen) 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 Automatische Skalierung unter Dynamische Skalierungsrichtlinien die gewünschte Richtlinie aus und klicken Sie dann auf Aktionen, Bearbeiten.

  4. Löschen Sie zum Beispiel Instance-Warmup den Instanz-Aufwärmwert, um stattdessen den Standardwert für das Aufwärmen der Instanz zu verwenden.

  5. Wählen Sie Aktualisieren.