Erstellen Sie eine Richtlinie für vorausschauende Skalierung für eine Auto Scaling 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.

Erstellen Sie eine Richtlinie für vorausschauende Skalierung für eine Auto Scaling Scaling-Gruppe

Die folgenden Verfahren helfen Ihnen bei der Erstellung einer Richtlinie für vorausschauende Skalierung mithilfe von oder. AWS Management Console AWS CLI

Wenn die Auto-Scaling-Gruppe neu ist, muss es mindestens 24 Stunden an Daten liefern, bevor Amazon EC2 Auto Scaling eine Prognose erstellen kann.

Erstellen einer Richtlinie für die prädiktive Skalierung (Konsole)

Wenn Sie zum ersten Mal eine Richtlinie für vorausschauende Skalierung erstellen, empfehlen wir, die Konsole zu verwenden, um mehrere Richtlinien für die prädiktive Skalierung im Modus „Nur Prognose“ zu erstellen. Auf diese Weise können Sie die potenziellen Auswirkungen verschiedener Metriken und Zielwerte testen. Sie können mehrere Richtlinien für die prädiktive Skalierung für jede Auto-Scaling-Gruppe erstellen, aber nur eine der Richtlinien kann für die aktive Skalierung verwendet werden.

Führen Sie das folgende Verfahren aus, um eine Richtlinie für die prädiktive Skalierung unter Verwendung vordefinierter Metriken (CPU, Netzwerk-I/O oder Anzahl der Anfragen an den Application Load Balancer) zu erstellen. Der einfachste Weg, eine Richtlinie für die prädiktive Skalierung zu erstellen, besteht darin, vordefinierte Metriken zu verwenden. Wenn Sie stattdessen benutzerdefinierte Metriken verwenden möchten, siehe Erstellen einer Richtlinie für die prädiktive Skalierung in der Konsole (benutzerdefinierte Metriken).

So erstellen Sie eine Richtlinie für die prädiktive Skalierung
  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 Ihrer Auto-Scaling-Gruppe.

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

  3. Wählen Sie auf der Registerkarte Automatic scaling (Automatische Skalierung) unter Scaling policies (Skalierungsrichtlinien) die Option Create predictive scaling policy (Richtlinie für die prädiktive Skalierung erstellen) aus.

  4. Geben Sie einen Namen für die Richtlinie ein.

  5. Aktivieren Sie Skalierung basierend auf Prognose, um Amazon EC2 Auto Scaling die Berechtigung zu erteilen, sofort mit der Skalierung zu beginnen.

    Um die Richtlinie im Modus Nur Prognose zu belassen, bleibt Skalierung basierend auf Prognose deaktiviert.

  6. Für Metriken wählen Sie Ihre Metriken aus der Liste der Optionen aus. Zu den Optionen gehören CPU, Netzwerkeingang, Netzwerkausgang, Anzahl der Application Load Balancer und Benutzerdefiniertes Metrikpaar.

    Wenn Sie Anzahl der Application Load Balancer pro Ziel auswählen, wählen Sie anschließend in Zielgruppe eine Zielgruppe aus. Anzahl der Application Load Balancer pro Ziel wird nur unterstützt, wenn Sie eine Application Load Balancer-Zielgruppe an Ihre Auto-Scaling-Gruppe angehängt haben.

    Wenn Sie Benutzerdefiniertes Metrikpaar auswählen, wählen Sie dann aus individuelle Metriken aus den Dropdown-Listen für Lastmetrik und Skalierungsmetrik aus.

  7. Für Zielauslastung geben Sie den Zielwert ein, den Amazon EC2 Auto Scaling beibehalten werden soll. Amazon EC2 Auto Scaling skaliert Ihre Kapazität, bis die durchschnittliche Auslastung der Zielauslastung entspricht oder bis sie die von Ihnen angegebene maximale Anzahl von Instances erreicht.

    Wenn Ihre Skalierungsmetrik ... Dann ist die Zielauslastung ...
    CPU

    Der prozentuale CPU-Anteil, den jede Instance idealerweise verwenden sollte.

    Netzwerkeingang

    Die durchschnittliche Anzahl von Bytes pro Minute, die jede Instance idealerweise empfangen sollte.

    Netzwerkausgang

    Die durchschnittliche Anzahl von Bytes pro Minute, die jede Instance idealerweise senden sollte.

    Anzahl der Application Load Balancer pro Ziel

    Die durchschnittliche Anzahl von Anfragen pro Minute, die jede Instance idealerweise empfangen sollte.

  8. (Optional) Für Vorabstarten von Instances wählen Sie aus, wie weit im Voraus Ihre Instances gestartet werden sollen, bevor die Prognose die Last erhöht.

  9. (Optional) Für Verhalten bei max. Kapazität wählen Sie aus, ob Sie Amazon EC2 Auto Scaling höher als die maximale Kapazität der Gruppe skalieren lassen, wenn die prognostizierte Kapazität das definierte Maximum überschreitet. Wenn Sie diese Einstellung aktivieren, kann die Skalierung in Zeiten erfolgen, in denen der höchste Datenverkehr vorausgesagt wird.

  10. (Optional) Für Maximale Pufferkapazität oberhalb der prognostizierten Kapazität wählen Sie die zusätzliche Kapazität aus, die Sie verwenden möchten, wenn die prognostizierte Kapazität bei der maximalen Kapazität liegt oder diese überschreitet. Der Wert wird als Prozentsatz relativ zur prognostizierten Kapazität angegeben. Beispiel: Wenn der Puffer 10 ist, bedeutet dies, dass ein Puffer von 10 Prozent vorhanden ist. Wenn daher die prognostizierte Kapazität 50 ist und die maximale Kapazität 40 ist, dann ist die effektive maximale Kapazität 55.

    Wenn die Option 0 ist, kann Amazon EC2 Auto Scaling eine Kapazität skalieren, die höher als die maximale Kapazität ist, um der prognostizierten Kapazität zu entsprechen, diese aber nicht zu überschreiten.

  11. Klicken Sie auf Erstellen einer Richtlinie für die prädiktive Skalierung.

Führen Sie das folgende Verfahren aus, um eine Richtlinie für die prädiktive Skalierung unter Verwendung benutzerdefiniertem Metriken zu erstellen. Benutzerdefinierte Metriken können andere Messwerte enthalten, die von Ihnen bereitgestellt werden, CloudWatch oder Metriken, für die Sie veröffentlichen CloudWatch. Informationen zur Verwendung der CPU-, Netzwerk-I/O- oder Application Load Balancer Balancer-Anforderungsanzahl pro Ziel finden Sie unter Erstellen einer Richtlinie für die prädiktive Skalierung (vordefinierte Metriken).

Zur Erstellung einer Richtlinie für die prädiktive Skalierung unter Verwendung benutzerdefiniertem Metriken:

  • Sie müssen die Rohabfragen angeben, die es Amazon EC2 Auto Scaling ermöglichen, mit den Metriken in CloudWatch zu interagieren. Weitere Informationen finden Sie unter Erweiterte prädiktive Skalierungsrichtlinie unter Verwendung benutzerdefinierter Metriken. Um sicherzustellen, dass Amazon EC2 Auto Scaling die Metrikdaten aus extrahieren kann CloudWatch, stellen Sie sicher, dass jede Abfrage Datenpunkte zurückgibt. Bestätigen Sie dies mithilfe der CloudWatch Konsole oder der CloudWatch GetMetricDataAPI-Operation.

    Anmerkung

    Wir stellen Beispiel-JSON-Nutzlasten im JSON-Editor in der Amazon EC2 Auto Scaling Konsole zur Verfügung. Diese Beispiele geben Ihnen eine Referenz für die Schlüssel-Wert-Paare, die erforderlich sind, um andere CloudWatch Metriken hinzuzufügen, die von bereitgestellt werden AWS oder für die Sie zuvor veröffentlicht haben. CloudWatch Sie können sie als Ausgangspunkt verwenden und sie dann an Ihre Bedürfnisse anpassen.

  • Wenn Sie metrische Berechnungen verwenden, müssen Sie den JSON manuell so erstellen, dass er zu Ihrem individuellen Szenario passt. Weitere Informationen finden Sie unter Metrikberechnungs-Ausdrücke verwenden. Bevor Sie metrische Berechnungen in Ihrer Richtlinie verwenden, stellen Sie sicher, dass Metrikabfragen, die auf metrischen mathematischen Ausdrücken basieren, gültig sind, und geben Sie eine einzelne Zeitreihe zurück. Bestätigen Sie dies mithilfe der CloudWatch Konsole oder der CloudWatch GetMetricDataAPI-Operation.

Wenn Sie in einer Abfrage einen Fehler machen, indem Sie falsche Daten angeben, z. B. den falschen Auto-Scaling-Gruppennamen, enthält die Prognose keine Daten. Informationen zur Behebung von Problemen mit benutzerdefinierten Metriken finden Sie unter Überlegungen und Fehlerbehebung.

So erstellen Sie eine Richtlinie für die prädiktive Skalierung
  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 Ihrer Auto-Scaling-Gruppe.

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

  3. Wählen Sie auf der Registerkarte Automatic scaling (Automatische Skalierung) unter Scaling policies (Skalierungsrichtlinien) die Option Create predictive scaling policy (Richtlinie für die prädiktive Skalierung erstellen) aus.

  4. Geben Sie einen Namen für die Richtlinie ein.

  5. Aktivieren Sie Skalierung basierend auf Prognose, um Amazon EC2 Auto Scaling die Berechtigung zu erteilen, sofort mit der Skalierung zu beginnen.

    Um die Richtlinie im Modus Nur Prognose zu belassen, bleibt Skalierung basierend auf Prognose deaktiviert.

  6. Wählen Sie für Metriken die Option Benutzerdefiniertes Metrikpaar aus.

    1. Wählen Sie unter Metrik laden die Option Benutzerdefinierte CloudWatch Metrik aus, um eine benutzerdefinierte Metrik zu verwenden. Erstellen Sie die JSON-Nutzlast, die die Metrik der Richtlinie enthält, und fügen Sie diese in das JSON-Editorfeld ein. Ersetzen Sie dabei den Inhalt des Feldes.

    2. Wählen Sie für Skalierungsmetrik die Option Benutzerdefinierte CloudWatch Metrik aus, um eine benutzerdefinierte Metrik zu verwenden. Erstellen Sie die JSON-Nutzlast, die die Definition der Skalierungsmetrik für die Richtlinie enthält, und fügen Sie sie in das JSON-Editorfeld ein. Ersetzen Sie dabei den Inhalt des Feldes.

    3. (Optional) Um eine benutzerdefinierte Kapazitätsmetrik hinzuzufügen, aktivieren Sie das Kontrollkästchen Benutzerdefinierte Kapazitätsmetrik hinzufügen. Erstellen Sie die JSON-Nutzlast, die die Definition der Kapazitätsmetrik für die Richtlinie enthält, und fügen Sie sie in das JSON-Editorfeld ein. Ersetzen Sie dabei den Inhalt des Feldes.

      Sie müssen diese Option nur aktivieren, um eine neue Zeitreihe für Kapazität zu erstellen, wenn sich Ihre Kapazitätsmetrikdaten über mehrere Auto-Scaling-Gruppen erstrecken. In diesem Fall müssen Sie metrische Mathematik verwenden, um die Daten zu einer einzigen Zeitreihe zu aggregieren.

  7. Für Zielauslastung geben Sie den Zielwert ein, den Amazon EC2 Auto Scaling beibehalten werden soll. Amazon EC2 Auto Scaling skaliert Ihre Kapazität, bis die durchschnittliche Auslastung der Zielauslastung entspricht oder bis sie die von Ihnen angegebene maximale Anzahl von Instances erreicht.

  8. (Optional) Für Vorabstarten von Instances wählen Sie aus, wie weit im Voraus Ihre Instances gestartet werden sollen, bevor die Prognose die Last erhöht.

  9. (Optional) Für Verhalten bei max. Kapazität wählen Sie aus, ob Sie Amazon EC2 Auto Scaling höher als die maximale Kapazität der Gruppe skalieren lassen, wenn die prognostizierte Kapazität das definierte Maximum überschreitet. Wenn Sie diese Einstellung aktivieren, kann die Skalierung in Zeiten erfolgen, in denen der höchste Datenverkehr vorausgesagt wird.

  10. (Optional) Für Maximale Pufferkapazität oberhalb der prognostizierten Kapazität wählen Sie die zusätzliche Kapazität aus, die Sie verwenden möchten, wenn die prognostizierte Kapazität bei der maximalen Kapazität liegt oder diese überschreitet. Der Wert wird als Prozentsatz relativ zur prognostizierten Kapazität angegeben. Beispiel: Wenn der Puffer 10 ist, bedeutet dies, dass ein Puffer von 10 Prozent vorhanden ist. Wenn daher die prognostizierte Kapazität 50 ist und die maximale Kapazität 40 ist, dann ist die effektive maximale Kapazität 55.

    Wenn die Option 0 ist, kann Amazon EC2 Auto Scaling eine Kapazität skalieren, die höher als die maximale Kapazität ist, um der prognostizierten Kapazität zu entsprechen, diese aber nicht zu überschreiten.

  11. Klicken Sie auf Erstellen einer Richtlinie für die prädiktive Skalierung.

Erstellen einer Richtlinie für die prädiktive Skalierung (AWS CLI)

Gehen Sie AWS CLI wie folgt vor, um Predictive Scaling-Richtlinien für Ihre Auto Scaling Scaling-Gruppe zu konfigurieren. Ersetzen Sie jedes Platzhalter für Benutzereingaben durch Ihre eigenen Informationen.

Weitere Informationen zu den CloudWatch Metriken, die Sie angeben können, finden Sie PredictiveScalingMetricSpecificationin der Amazon EC2 Auto Scaling API-Referenz.

Beispiel 1: Eine Richtlinie für die prädiktive Skalierung, die Prognosen erstellt, aber nicht skaliert

Die folgende Beispielrichtlinie zeigt eine vollständige Richtlinienkonfiguration, die CPU-Auslastungsmetriken für die prädiktive Skalierung mit einer Zielauslastung von 40 verwendet. ForecastOnly wird standardmäßig verwendet, es sei denn, Sie geben explizit an, welcher Modus verwendet werden soll. Speichern Sie diese Konfiguration in einer Datei mit dem Namen config.json.

{ "MetricSpecifications": [ { "TargetValue": 40, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } ] }

Um die Richtlinie von der Befehlszeile aus zu erstellen, führen Sie den put-scaling-policyBefehl mit der angegebenen Konfigurationsdatei aus, wie im folgenden Beispiel gezeigt.

aws autoscaling put-scaling-policy --policy-name cpu40-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

Wenn der Befehl erfolgreich ausgeführt wurde, gibt er den Amazon-Ressourcennamen (ARN) der Richtlinie zurück.

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/cpu40-predictive-scaling-policy", "Alarms": [] }

Beispiel 2: Eine Richtlinie für die prädiktive Skalierung, die Prognosen erstellt und skaliert

Fügen Sie für eine Richtlinie, mit der Amazon EC2 Auto Scaling prognostiziert und skaliert werden kann, die Eigenschaft Mode mit einem Wert vonForecastAndScale hinzu. Das folgende Beispiel zeigt eine Richtlinienkonfiguration, die Anforderungsanzahlmetriken der Application Load Balancer verwendet. Die Zielauslastung ist 1000 und die prädiktive Skalierung ist aufden Modus ForecastAndScale eingestellt.

{ "MetricSpecifications": [ { "TargetValue": 1000, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ALBRequestCount", "ResourceLabel": "app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff" } } ], "Mode": "ForecastAndScale" }

Um diese Richtlinie zu erstellen, führen Sie den put-scaling-policyBefehl mit der angegebenen Konfigurationsdatei aus, wie im folgenden Beispiel gezeigt.

aws autoscaling put-scaling-policy --policy-name alb1000-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

Wenn der Befehl erfolgreich ausgeführt wurde, gibt er den Amazon-Ressourcennamen (ARN) der Richtlinie zurück.

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:19556d63-7914-4997-8c81-d27ca5241386:autoScalingGroupName/my-asg:policyName/alb1000-predictive-scaling-policy", "Alarms": [] }

Beispiel 3: Eine Richtlinie für die prädiktive Skalierung, die höher als die maximale Kapazität skaliert werden kann

Das folgende Beispiel zeigt, wie eine Richtlinie erstellt wird, die höher als die maximale Größenbeschränkung der Gruppe skaliert werden kann, wenn Sie eine höhere Last als die normale Last benötigen. Standardmäßig skaliert Amazon EC2 Auto Scaling Ihre EC2-Kapazität nicht höher als Ihre definierte maximale Kapazität. Es kann jedoch hilfreich sein, eine höhere Skalierung mit etwas mehr Kapazität zu ermöglichen, um Leistungs- oder Verfügbarkeitsprobleme zu vermeiden.

Um Amazon EC2 Auto Scaling Platz für die Bereitstellung zusätzlicher Kapazität zu bieten, wenn die Kapazität laut Prognose die maximale Größe Ihrer Gruppe erreichen oder ihr sehr nahe kommen wird, geben Sie die Eigenschaften MaxCapacityBreachBehavior und MaxCapacityBuffer wie im folgenden Beispiel gezeigt an. Sie müssen MaxCapacityBreachBehavior mit einem positiven Wert für IncreaseMaxCapacity angeben. Die maximale Anzahl von Instances, die Ihre Gruppe haben kann, hängt vom Wert von MaxCapacityBuffer ab.

{ "MetricSpecifications": [ { "TargetValue": 70, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } ], "MaxCapacityBreachBehavior": "IncreaseMaxCapacity", "MaxCapacityBuffer": 10 }

In diesem Beispiel ist die Richtlinie so konfiguriert, dass sie einen 10-Prozent-Puffer ("MaxCapacityBuffer": 10) verwendet. Wenn die prognostizierte Kapazität also 50 und die maximale Kapazität 40 ist, ist die effektive maximale Kapazität 55. Eine Richtlinie, die eine Kapazität skalieren kann, die höher als die maximale Kapazität ist, um der prognostizierten Kapazität zu entsprechen, diese aber nicht zu überschreiten, hätte einen Puffer von 0 ("MaxCapacityBuffer": 0).

Um diese Richtlinie zu erstellen, führen Sie den put-scaling-policyBefehl mit der angegebenen Konfigurationsdatei aus, wie im folgenden Beispiel gezeigt.

aws autoscaling put-scaling-policy --policy-name cpu70-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

Wenn der Befehl erfolgreich ausgeführt wurde, gibt er den Amazon-Ressourcennamen (ARN) der Richtlinie zurück.

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:d02ef525-8651-4314-bf14-888331ebd04f:autoScalingGroupName/my-asg:policyName/cpu70-predictive-scaling-policy", "Alarms": [] }