Stufenweise Skalierung: Skalieren der Spot-Flotte anhand von Richtlinien zur stufenweisen Skalierung - Amazon Elastic Compute Cloud

Stufenweise Skalierung: Skalieren der Spot-Flotte anhand von Richtlinien zur stufenweisen Skalierung

Bei Richtlinien zur schrittweisen Skalierung geben Sie CloudWatch-Alarme zum Auslösen der Skalierung an. Wenn Sie die Zielkapazität beispielsweise erweitern möchten, wenn die CPU-Auslastung ein bestimmtes Level erreicht, erstellen Sie einen Alarm mit der von CPUUtilization bereitgestellten Metrik Amazon EC2.

Beim Erstellen einer Richtlinie zur schrittweisen Skalierung müssen Sie einen der folgenden Skalierungsanpassungstypen angeben:

  • Add (Hinzufügen) – Erhöhen Sie die Zielkapazität der Flotte um eine angegebene Anzahl von Kapazitätseinheiten oder einen angegebenen Prozentsatz der aktuellen Kapazität.

  • Remove (Entfernen) – Verringern Sie die Zielkapazität der Flotte um eine angegebene Anzahl von Kapazitätseinheiten oder einen angegebenen Prozentsatz der aktuellen Kapazität.

  • Set to (Festlegen auf) – Legen Sie die Zielkapazität der Flotte auf die angegebene Anzahl an Kapazitätseinheiten fest.

Wenn ein Alarm ausgelöst wird, berechnet der Auto Scaling-Prozess die neue Zielkapazität anhand der erfüllten Kapazität und der Skalierungsrichtlinie und aktualisiert Sie Zielkapazität anschließend entsprechend. Nehmen wir beispielsweise an, dass die Zielkapazität und die erfüllte Kapazität 10 betragen und die Skalierungsrichtlinie 1 hinzufügt. Wenn der Alarm ausgelöst wird, fügt der Auto-Scaling-Prozess 1 bis 10 hinzu, um 11 zu erhalten. Die Spot-Flotte startet also 1 Instance.

Wenn eine Spot-Flotte eine Instance aufgrund einer Verringerung der Zielkapazität beendet, erhält die Instance eine Benachrichtigung über die Unterbrechung einer Spot-Instance.

Voraussetzungen
  • Die Spot-Flottenanforderung muss den Anforderungstyp aufweisen maintain. Die automatische Skalierung wird für Anfragen vom Typ request nicht unterstützt.

  • Konfigurieren der IAM-Berechtigungen für automatische Skalierung von Spot-Flotten.

  • Überlegen Sie, welche CloudWatch-Metriken für Ihre Anwendung wichtig sind. Sie können CloudWatch-Alarme basierend auf von AWS bereitgestellten Metriken oder eigenen benutzerdefinierten Metriken erstellen.

  • Aktivieren Sie für die AWS-Metriken, die Sie in Ihren Skalierungsrichtlinien verwenden werden, das Erfassen von CloudWatch-Metriken, wenn dies im Service, der die Metriken bereitstellt, nicht standardmäßig aktiviert ist.

  • Überprüfen Sie das Überlegungen.

So erstellen Sie einen CloudWatch-Alarm
  1. Öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/.

  2. Erweitern Sie im Navigationsbereich Alarme, dann Alle Alarme.

  3. Wählen Sie Create Alarm (Alarm erstellen) aus.

  4. Wählen Sie auf der Seite Specify metric and conditions (Metrik und Bedingungen angeben) die Option Select metric (Metrik auswählen) aus:

  5. Wählen Sie EC2 Spot, dann Flottenanforderungsmetriken, und dann eine Metrik (z. B. ZielKapazität und dann Metrik auswählen aus.

    Die Seite Specify metric and conditions (Metrik und Bedingungen festlegen) mit einem Diagramm und weiteren Informationen über die von Ihnen ausgewählte Metrik werden anzeigt.

  6. Wählen Sie unter Zeitraum den Auswertungszeitraum für den Alarm aus, z. B. 1 Minute. Beim Auswerten des Alarms wird jeder Zeitraum in einem Datenpunkt zusammengefasst.

    Anmerkung

    Ein kürzerer Zeitraum erzeugt eine höhere Alarmempfindlichkeit.

  7. Legen Sie unter Conditions (Bedingungen) den Schwellenwert des Alarms fest. Sie können beispielsweise einen Schwellenwert angeben, damit der Alarm jedes Mal ausgelöst wird, wenn der Wert für die Metrik bei 80 Prozent oder höher liegt.

  8. Geben Sie unter Additional configuration (Zusätzliche Konfiguration) für Datapoints to alarm (Datenpunkte bis zum Alarm) an, wie viele Datenpunkte (Auswertungszeiträume) sich im Alarmzustand befinden müssen, damit der Alarm ausgelöst wird, z. B. 1 Bewertungszeitraum oder 2 von 3 Bewertungszeiträumen. Dies erzeugt einen Alarm, der in den ALARM-Zustand übergeht, wenn viele aufeinander folgende Zeiträume überschritten werden. Weitere Informationen finden Sie unter Auswerten eines Alarms im Amazon CloudWatch-Benutzerhandbuch.

  9. Wählen Sie für Missing data treatment (Behandlung fehlender Daten) eine der Optionen aus (oder belassen Sie es bei der Standardoption Treat missing data as missing (Fehlende Daten als fehlend behandeln)). Weitere Informationen finden Sie unter Konfigurieren der Reaktion von CloudWatch-Alarmen auf fehlende Daten im Amazon CloudWatch-Benutzerhandbuch.

  10. Wählen Sie Next.

  11. (Optional) Um eine Benachrichtigung zu einem Skalierungsereignis zu empfangen, können Sie für Notification (Benachrichtigung) das Amazon SNS-Thema auswählen oder erstellen, das zum Empfangen der Benachrichtigungen verwendet werden soll. Andernfalls können Sie die Benachrichtigung jetzt löschen und bei Bedarf später eine hinzufügen.

  12. Wählen Sie Next.

  13. Geben Sie unter Hinzufügen einer Beschreibung einen Namen und eine Beschreibung für den Alarm ein und klicken Sie auf Weiter.

  14. Wählen Sie Alarm erstellen aus.

So konfigurieren Sie die Richtlinie für schrittweise Skalierung für Ihre Spot-Flotte
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich Spot Requests aus.

  3. Wählen Sie Ihre Spot-Flotten-Anforderung aus.

  4. Wählen Sie die Registerkarte Auto Scaling am unteren Bildschirmrand. Wenn Sie den Link für Ihre Spot-Flotte ausgewählt haben, gibt es keine Registerkarte. Scrollen Sie stattdessen nach unten zum Abschnitt Auto Scaling.

  5. Wenn Auto Scaling nicht konfiguriert ist, wählen Sie Configure aus.

  6. Legen Sie anhand von Scale capacity between die Mindest- und Höchstkapazität für Ihre Flotte fest. Die Skalierungsrichtlinien lassen Ihre Flotte nicht unter die Mindestkapazität oder über die maximale Kapazität hinaus skalieren.

  7. Wählen Sie für Skalierungsrichtlinien, Richtlinientyp Stufenskalierungsrichtlinie aus.

  8. Zunächst enthalten Skalierungsrichtlinien Richtlinien für die schrittweise Skalierung mit den Namen ScaleUp und ScaleDown. Sie können diese Richtlinien abschließen oder sie mit Remove policy entfernen. Sie können außerdem Add policy (Richtlinie hinzufügen) auswählen.

  9. Gehen Sie wie folgt vor, um eine Richtlinie zu definieren:

    1. Geben Sie unter Policy Name (Richtlinienname) einen Namen für diese Richtlinie ein.

    2. Wählen Sie für Richtlinienauslöser einen bestehenden Alarm oder wählen Sie Alarm erstellen um die Amazon-CloudWatch-Konsole zu öffnen und einen Alarm zu erstellen.

    3. Definieren Sie für Kapazität ändernden Betrag, um den skaliert werden soll, sowie die untere und obere Grenze der Schrittanpassung. Sie können eine bestimmte Anzahl von Instances oder einen Prozentsatz der bestehenden Flottengröße hinzufügen oder entfernen oder die Flotte auf eine exakte Größe festlegen.

      Um beispielsweise eine Richtlinie zur schrittweisen Skalierung zu erstellen, welche die Kapazität der Flotte um 30 Prozent erhöht, wählen Sie Hinzufügen, geben Sie 30 in das nächste Feld ein, und wählen Sie dann Prozent. Standardmäßig ist die untere Grenze für eine Hinzufügerichtlinie die Alarmschwelle und die obere Grenze ist positiv (+) unendlich. Standardmäßig ist die obere Grenze für eine Entfernerichtlinie die Alarmschwelle und die untere Grenze ist negativ (-) unendlich.

    4. (Optional) Um einen weiteren Schritt hinzuzufügen, wählen Sie Schritt hinzufügen.

    5. Geben Sie für die Abklingzeit einen neuen Wert (in Sekunden) ein oder behalten Sie den Standardwert bei.

  10. Wählen Sie Save aus.

So konfigurieren Sie Richtlinien zur schrittweisen Skalierung für Ihre Spot-Flotte mithilfe der AWS CLI
  1. Registrieren Sie die Spot-Flotten-Anforderung mit dem Befehl register-scalable-target als skalierbares Ziel.

  2. Erstellen Sie eine Skalierungsrichtlinie mit dem Befehl put-scaling-policy.

  3. Erstellen Sie mit dem Befehl put-metric-alarm einen Alarm, der die Skalierungsrichtlinie auslöst.