View a markdown version of this page

Erstellen Sie mithilfe mathematischer Kennzahlen eine Ziel-Tracking-Skalierungsrichtlinie - 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 mithilfe mathematischer Kennzahlen eine Ziel-Tracking-Skalierungsrichtlinie

Mithilfe der metrischen Mathematik können Sie mehrere Abfragen durchführen CloudWatch Metriken und verwenden Sie mathematische Ausdrücke, um auf der Grundlage dieser Metriken neue Zeitreihen zu erstellen. Sie können die resultierenden Zeitreihen in der CloudWatch Konsole und füge sie zu Dashboards hinzu. Weitere Informationen zur metrischen Mathematik finden Sie unter Verwenden metrischer Mathematik in der Amazonas CloudWatch Benutzerleitfaden.

Für metrische mathematische Ausdrücke gelten folgende Überlegungen:

  • Sie können alle verfügbaren abfragen CloudWatch metrisch. Jede Metrik ist eine eindeutige Kombination aus Metrikname, Namespace und null oder mehr Dimensionen.

  • Sie können jeden arithmetischen Operator (+ - */^), jede statistische Funktion (wie AVG oder SUM) oder eine andere Funktion verwenden CloudWatch unterstützt.

  • Sie können sowohl Metriken als auch die Ergebnisse anderer mathematischer Ausdrücke in den Formeln des mathematischen Ausdrucks verwenden.

  • Alle Ausdrücke, die in einer metrischen Spezifikation verwendet werden, müssen letztendlich eine einzige Zeitreihe ergeben.

  • Sie können überprüfen, ob ein metrischer mathematischer Ausdruck gültig ist, indem Sie CloudWatch Konsole oder CloudWatch GetMetricData API.

Beispiel: Amazon-SQS-Warteschlangenrückstand pro Instance

Um den Amazon-SQS-Warteschlangenrückstand pro Instance zu erhalten, nehmen Sie die ungefähre Anzahl der Nachrichten, die für den Abruf aus der Warteschlange zur Verfügung stehen, und dividieren diese Zahl durch die laufende Kapazität der Auto-Scaling-Gruppe im InService-Zustand. Weitere Informationen finden Sie unter Skalierungsrichtlinie auf der Grundlage von Amazon SQS.

Die Logik für den Ausdruck lautet wie folgt:

sum of (number of messages in the queue)/(number of InService instances)

Dann dein CloudWatch Die metrischen Informationen lauten wie folgt.

ID (ID) CloudWatch Metrik Statistik Zeitraum
m1 ApproximateNumberOfMessagesVisible Summe 1 Minute
m2 GroupInServiceInstances Durchschnitt 1 Minute

ID und Ausdruck Ihrer Metrikberechnung lauten wie folgt.

ID (ID) Expression
e1 (m1)/(m2)

Das folgende Diagramm veranschaulicht die Architektur für diese Metrik:

Warteschlangen-Architekturdiagramm für Amazon EC2 Auto Scaling
Um diese Metrik mathematisch zu verwenden, um eine Skalierungsrichtlinie für Target-Tracking zu erstellen (AWS CLI)
  1. Speichern Sie den metrischen mathematischen Ausdruck als Teil einer benutzerdefinierten Metrikspezifikation in einer JSON-Datei namens config.json.

    Das folgende Beispiel hilft Ihnen bei den ersten Schritten. Ersetzen Sie jeden user input placeholder durch Ihre Informationen.

    { "CustomizedMetricSpecification": { "Metrics": [ { "Label": "Get the queue size (the number of messages waiting to be processed)", "Id": "m1", "MetricStat": { "Metric": { "MetricName": "ApproximateNumberOfMessagesVisible", "Namespace": "AWS/SQS", "Dimensions": [ { "Name": "QueueName", "Value": "my-queue" } ] }, "Stat": "Sum" }, "ReturnData": false }, { "Label": "Get the group size (the number of InService instances)", "Id": "m2", "MetricStat": { "Metric": { "MetricName": "GroupInServiceInstances", "Namespace": "AWS/AutoScaling", "Dimensions": [ { "Name": "AutoScalingGroupName", "Value": "my-asg" } ] }, "Stat": "Average" }, "ReturnData": false }, { "Label": "Calculate the backlog per instance", "Id": "e1", "Expression": "m1 / m2", "ReturnData": true } ] }, "TargetValue": 100 }

    Weitere Informationen finden Sie unter TargetTrackingConfiguration in der Amazon EC2 Auto Scaling-API-Referenz.

    Anmerkung

    Im Folgenden finden Sie einige zusätzliche Ressourcen, die Ihnen bei der Suche nach Metriknamen, Namespaces, Dimensionen und Statistiken für helfen können CloudWatch Metriken:

  2. Um diese Richtlinie zu erstellen, führen Sie den Befehl put-scaling-policy mit der JSON-Datei als Eingabe wie im folgenden Beispiel beschrieben aus.

    aws autoscaling put-scaling-policy --policy-name sqs-backlog-target-tracking-scaling-policy \ --auto-scaling-group-name my-asg --policy-type TargetTrackingScaling \ --target-tracking-configuration file://config.json

    Bei Erfolg gibt dieser Befehl den Amazon-Ressourcennamen (ARN) der Richtlinie und die ARNs der beiden zurück CloudWatch Alarme, die in Ihrem Namen erstellt wurden.

    { "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-asg:policyName/sqs-backlog-target-tracking-scaling-policy", "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" } ] }
    Anmerkung

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