

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.

# Konfigurieren der Skalierung basierend auf Amazon SQS
<a name="scale-sqs-queue-cli"></a>

Das folgende Verfahren beschreibt, wie die automatische Skalierung auf Basis von Amazon SQS konfiguriert wird. Sie erfahren, wie Sie eine CloudWatch benutzerdefinierte Metrik erstellen, wie Sie mithilfe von eine Richtlinie zur Zielverfolgung einrichten und wie Sie Ihre Konfiguration testen. AWS CLI

Bevor Sie beginnen, stellen Sie sicher, dass Sie das AWS CLI [installiert](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [konfiguriert](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) haben. Außerdem müssen Sie über eine Amazon SQS SQS-Warteschlange verfügen, die Sie verwenden können. Bei den folgenden Aufgaben wird davon ausgegangen, dass Sie bereits über eine Warteschlange (Standard oder FIFO), eine Auto Scaling Scaling-Gruppe und EC2-Instances verfügen, auf denen die Anwendung ausgeführt wird, die die Warteschlange verwendet. 

Weitere Informationen zu Amazon SQS, finden Sie unter [Entwicklerhandbuch für Amazon Simple Queue Service](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/).

**Topics**
+ [Schritt 1: Erstellen Sie eine benutzerdefinierte Metrik CloudWatch](#create-sqs-cw-alarms-cli)
+ [Schritt 2: Erstellen einer Skalierungsrichtlinie für die Ziel-Nachverfolgung](#create-sqs-policies-cli)
+ [Schritt 3: Testen Ihrer Skalierungsrichtlinie](#validate-sqs-scaling-cli)

## Schritt 1: Erstellen Sie eine benutzerdefinierte Metrik CloudWatch
<a name="create-sqs-cw-alarms-cli"></a>

Eine benutzerdefinierte Metrik wird mit einem Metriknamen und Namespace Ihrer Wahl definiert. Namespaces für benutzerdefinierte Metriken können nicht mit `AWS/` beginnen. Weitere Informationen zum Veröffentlichen von benutzerdefinierten Metriken finden Sie unter dem Thema [Veröffentlichen von benutzerdefinierten Kennzahlen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) im * CloudWatch Amazon-Benutzerhandbuch*.

Gehen Sie wie folgt vor, um die benutzerdefinierte Metrik zu erstellen, indem Sie zunächst die Informationen aus Ihrem AWS Konto lesen. Berechnen Sie dann den Rückstand pro Instance-Metrik, wie in einem früheren Abschnitt empfohlen. Veröffentlichen Sie diese Zahl abschließend mit CloudWatch einer Genauigkeit von 1 Minute. Wenn möglich, empfehlen wir dringend, anhand von Metriken mit einer Granularität von 1 Minute zu skalieren, um eine schnellere Reaktion auf Änderungen der Systemauslastung zu gewährleisten. 

**Um eine CloudWatch benutzerdefinierte Metrik zu erstellen ()AWS CLI**

1. Fordern Sie mit dem SQS-Befehl [get-queue-attributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sqs/get-queue-attributes.html) die Anzahl der in der Warteschlange wartenden Nachrichten an (`ApproximateNumberOfMessages`): 

   ```
   aws sqs get-queue-attributes --queue-url https://sqs.region.amazonaws.com/123456789/MyQueue \
     --attribute-names ApproximateNumberOfMessages
   ```

1. Fordern Sie mit dem Befehl [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) die laufende Kapazität der Gruppe an, wobei es sich um die Anzahl von Instances mit dem Lebenszyklusstatus `InService` handelt. Dieser Befehl gibt die Instances einer Auto-Scaling-Gruppe zusammen mit ihren Lebenszyklusstatus zurück. 

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg
   ```

1. Berechnen Sie den Rückstand pro Instance, indem Sie die ungefähre Anzahl der Nachrichten, die für den Abruf aus der Warteschlange verfügbar sind, durch die laufende Kapazität der Gruppe dividieren. 

1. Erstellen Sie ein Skript, das jede Minute ausgeführt wird, um den Backlog-Wert pro Instanz abzurufen und ihn in einer CloudWatch benutzerdefinierten Metrik zu veröffentlichen. Beim Veröffentlichen einer benutzerdefinierten Metrik geben Sie den Namen, den Namespace, die Einheit, den Wert und null oder mehr Dimensionen für die Metrik an. Dimensionen bestehen aus einem Dimensionsnamen und einem Dimensionswert.

   Um Ihre benutzerdefinierte Metrik zu veröffentlichen, ersetzen Sie Platzhalterwerte in *italics* durch Ihren bevorzugten Metriknamen, den Wert der Metrik, einen Namespace (sofern er nicht mit "`AWS`„beginnt) und Dimensionen (optional) und führen Sie dann den folgenden Befehl aus. [put-metric-data](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/put-metric-data.html) 

   ```
   aws cloudwatch put-metric-data --metric-name MyBacklogPerInstance --namespace MyNamespace \
     --unit None --value 20 --dimensions MyOptionalMetricDimensionName=MyOptionalMetricDimensionValue
   ```

Nachdem Ihre Anwendung die gewünschte Metrik ausgegeben hat, werden die Daten an CloudWatch gesendet. Die Metrik ist in der CloudWatch Konsole sichtbar. Sie können darauf zugreifen, indem Sie sich bei der anmelden AWS-Managementkonsole und zu der CloudWatch Seite navigieren. Anschließend können Sie die Metrik anzeigen, indem Sie zur Seite der Metriken navigieren oder im Suchfeld danach suchen. Informationen zum Anzeigen von Metriken finden Sie unter [Verfügbare Metriken anzeigen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html) im * CloudWatch Amazon-Benutzerhandbuch*.

## Schritt 2: Erstellen einer Skalierungsrichtlinie für die Ziel-Nachverfolgung
<a name="create-sqs-policies-cli"></a>

Die von Ihnen erstellte Metrik kann jetzt zu einer Skalierungsrichtlinie für die Zielnachverfolgung hinzugefügt werden.

**So erstellen Sie eine Skalierungsrichtlinie für die Ziel-Nachverfolgung (AWS CLI)**

1. Verwenden Sie den folgenden `cat`-Befehl, um einen Zielwert für Ihre Skalierungsrichtlinie und eine benutzerdefinierte Metrikspezifikation in einer JSON-Datei namens `config.json` in Ihrem Stammverzeichnis zu speichern. Ersetzen Sie jeden *user input placeholder* durch Ihre Informationen. Berechnen Sie für den `TargetValue` die Metrik für den akzeptablen Rückstand pro Instance und geben Sie sie hier ein. Basieren Sie die Berechnung dieser Zahl auf einem normalen Latenzwert und teilen Sie ihn durch die durchschnittliche Zeit, die für die Verarbeitung einer Nachricht benötigt wird, wie in einem vorherigen Abschnitt beschrieben. 

   Wenn Sie keine Dimensionen für die Metrik angegeben haben, die Sie in Schritt 1 erstellt haben, nehmen Sie keine Dimensionen in die benutzerdefinierte Metrikspezifikation auf.

   ```
   $ cat ~/config.json
   {
      "TargetValue":100,
      "CustomizedMetricSpecification":{
         "MetricName":"MyBacklogPerInstance",
         "Namespace":"MyNamespace",
         "Dimensions":[
            {
               "Name":"MyOptionalMetricDimensionName",
               "Value":"MyOptionalMetricDimensionValue"
            }
         ],
         "Statistic":"Average",
         "Unit":"None"
      }
   }
   ```

1. Verwenden Sie den [put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scaling-policy.html)-Befehl zusammen mit der Datei `config.json`, die Sie im vorherigen Schritt erstellt haben, um Ihre Skalierungsrichtlinie zu erstellen:

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

   Dabei werden zwei Alarme erstellt: einer für die Aufwärtsskalierung und einer für die Abwärtsskalierung. Es gibt auch den Amazon-Ressourcennamen (ARN) der Richtlinie zurück CloudWatch, mit der die CloudWatch Skalierung aufgerufen wird, wenn der metrische Schwellenwert überschritten wird. 

## Schritt 3: Testen Ihrer Skalierungsrichtlinie
<a name="validate-sqs-scaling-cli"></a>

Wenn die Einrichtung abgeschlossen ist, überprüfen Sie, ob Ihre Skalierungsrichtlinie funktioniert. Sie testen sie, indem Sie die Anzahl der Nachrichten in der SQS-Warteschlange vergrößern und dann prüfen, ob die Auto-Scaling-Gruppe eine weitere EC2-Instance gestartet hat. Gleichermaßen testen Sie sie, indem Sie die Anzahl der Nachrichten in der SQS-Warteschlange verkleinern und dann prüfen, ob die Auto-Scaling-Gruppe eine EC2-Instance beendet hat.

**So testen Sie die Funktion für die horizontale Skalierung nach oben**

1. Folgen Sie den Schritten unter [Erstellen einer Amazon SQS SQS-Standardwarteschlange und Senden einer Nachricht](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/creating-sqs-standard-queues.html) oder [Erstellen einer Amazon SQS SQS-FIFO-Warteschlange und Senden einer Nachricht](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/creating-sqs-fifo-queues.html), um Nachrichten zu Ihrer Warteschlange hinzuzufügen. Stellen Sie sicher, dass Sie die Anzahl der Nachrichten in der Warteschlange so erhöht haben, dass die Metrik für den Rückstand pro Instance den Zielwert überschreitet.

   Es kann einige Minuten dauern, bis Ihre Änderungen den Alarm auslösen.

1. Verwenden Sie den Befehl [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html), um zu prüfen, ob die Gruppe eine Instance gestartet hat:

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

**Um die Funktion der Waage zu testen**

1. Folgen Sie den Schritten unter [Nachricht empfangen und löschen (Konsole)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/step-receive-delete-message.html), um Nachrichten aus der Warteschlange zu löschen. Stellen Sie sicher, dass Sie die Anzahl der Nachrichten in der Warteschlange so verringert haben, dass die Metrik für den Rückstand pro Instance den Zielwert unterschreitet.

   Es kann einige Minuten dauern, bis Ihre Änderungen den Alarm auslösen.

1. Verwenden Sie den [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html)-Befehl, um zu prüfen, ob die Gruppe eine Instance beendet hat:

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