Definieren einer Skalierungsrichtlinie - Amazon ElastiCache für Redis

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.

Definieren einer Skalierungsrichtlinie

Eine Konfiguration der Skalierungsrichtlinie für die Zielverfolgung wird durch einen JSON-Block repräsentiert, in dem die Metriken und Zielwerte definiert sind. Sie können die Konfiguration einer Skalierungsrichtlinie als JSON-Block in einer Textdatei speichern. Sie verwenden diese Textdatei, wenn Sie die AWS CLI oder die Application Auto Scaling Scaling-API aufrufen. Weitere Informationen zur Syntax der Richtlinienkonfiguration finden Sie TargetTrackingScalingPolicyConfigurationin der Referenz zur Application Auto Scaling API.

Die folgenden Optionen stehen zur Verfügung, um eine Konfiguration der Skalierungsrichtlinien für die Zielverfolgung zu definieren:

Verwenden einer vordefinierten Metrik

Mithilfe vordefinierter Metriken können Sie schnell eine Skalierungsrichtlinie für die Zielverfolgung für einen ElastiCache für Redis Cluster definieren, die mit der Zielverfolgung in ElastiCache Redis Auto Scaling funktioniert.

Derzeit unterstützt ElastiCache for Redis die folgenden vordefinierten Metriken in ElastiCache Redis NodeGroup Auto Scaling:

  • ElastiCachePrimaryEngineCPUUtilization — Der Durchschnittswert der EngineCPUUtilization Metrik für alle primären Knoten CloudWatch im for Redis-Cluster. ElastiCache

  • ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage— Der Durchschnittswert der DatabaseMemoryUsageCountedForEvictPercentage Metrik CloudWatch auf allen primären Knoten im ElastiCache for Redis-Cluster.

  • ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage— Der Durchschnittswert der ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage Metrik CloudWatch auf allen Primärknoten im ElastiCache for Redis-Cluster.

Weitere Informationen über die Metriken EngineCPUUtilizationDatabaseMemoryUsageCountedForEvictPercentage und DatabaseCapacityUsageCountedForEvictPercentage finden Sie unter Überwachung der Nutzung mithilfe von CloudWatch-Metriken. Um eine vordefinierte Metrik in Ihrer Skalierungsrichtlinie zu verwenden, erstellen Sie eine Zielverfolgungskonfiguration für Ihre Skalierungsrichtlinie. Diese Konfiguration muss a PredefinedMetricSpecification für die vordefinierte Metrik und a TargetValue für den Zielwert dieser Metrik enthalten.

Das folgende Beispiel beschreibt eine typische Richtlinienkonfiguration für die Skalierung nach Zielverfolgung ElastiCache für einen For-Redis-Cluster. In dieser Konfiguration wird die ElastiCachePrimaryEngineCPUUtilization vordefinierte Metrik verwendet, um den ElastiCache For-Redis-Cluster auf der Grundlage einer durchschnittlichen CPU-Auslastung von 40 Prozent auf allen Primärknoten im Cluster anzupassen.

{ "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization" } }

Verwenden einer benutzerdefinierten Metrik

Durch die Verwendung von benutzerdefinierten Metriken können Sie eine Skalierungsrichtlinie für die Zielverfolgung definieren, die Ihren individuellen Anforderungen entspricht. Sie können eine benutzerdefinierte Metrik definieren, die auf einer beliebigen ElastiCache Metrik basiert, die sich proportional zur Skalierung ändert. Nicht alle ElastiCache Metriken eignen sich für die Zielverfolgung. Die Metrik muss eine gültige Auslastungsmetrik sein und beschreiben, wie ausgelastet eine Instance ist. Der Wert der Metrik muss sich proportional zur Anzahl der -Replicas im -DB-Cluster erhöhen oder verringern. Diese proportionale Erhöhung oder Verminderung ist notwendig, um die metrischen Daten zur proportionalen Skalierung oder in der Anzahl der -Repliken zu verwenden.

Das folgende Beispiel beschreibt die Konfiguration einer Zielverfolgung für eine Skalierungsrichtlinie. In dieser Konfiguration passt eine benutzerdefinierte Metrik einen ElastiCache für Redis-Cluster auf der Grundlage einer durchschnittlichen CPU-Auslastung von 50 Prozent für alle Shards in einem genannten Cluster an. my-db-cluster

{ "TargetValue": 50, "CustomizedMetricSpecification": { "MetricName": "EngineCPUUtilization", "Namespace": "AWS/ElastiCache", "Dimensions": [ { "Name": "RelicationGroup","Value": "my-db-cluster" }, { "Name": "Role","Value": "PRIMARY" } ], "Statistic": "Average", "Unit": "Percent" } }

Verwenden von Ruhephasen

Sie können einen Wert in Sekunden für ScaleOutCooldown angeben, um eine Ruhephase für die Aufskalierung Ihres Clusters hinzuzufügen. Ähnlich können Sie einen Wert in Sekunden für ScaleInCooldown angeben, um eine Ruhephase für die Abskalierung Ihres Clusters hinzuzufügen. Weitere Informationen finden Sie TargetTrackingScalingPolicyConfigurationin der API-Referenz für Application Auto Scaling.

Das folgende Beispiel beschreibt die Konfiguration einer Zielverfolgung für eine Skalierungsrichtlinie. In dieser Konfiguration wird die ElastiCachePrimaryEngineCPUUtilization vordefinierte Metrik verwendet, um einen ElastiCache For-Redis-Cluster auf der Grundlage einer durchschnittlichen CPU-Auslastung von 40 Prozent auf allen Primärknoten in diesem Cluster anzupassen. Die Konfiguration sieht eine Scale-In-Ruhephase von 10 Minuten und eine Scale-Out-Ruhephase von 5 Minuten vor.

{ "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }

Deaktivieren der Scale-In-Aktivität

Sie können verhindern, dass die Konfiguration der Skalierungsrichtlinie für die Zielverfolgung in Ihrem ElastiCache for Redis-Cluster skaliert, indem Sie die Scale-In-Aktivität deaktivieren. Das Deaktivieren der Scale-In-Aktivität verhindert das Löschen von -Repliken durch die Skalierungsrichtlinie, und erlaubt der Skalierungsrichtlinie dennoch, Repliken nach Bedarf zu erstellen.

Sie können einen booleschen Wert für DisableScaleIn angeben, um die Scale-In-Aktivität für Ihren Cluster zu aktivieren oder zu deaktivieren. Weitere Informationen finden Sie TargetTrackingScalingPolicyConfigurationin der API-Referenz für Application Auto Scaling.

Das folgende Beispiel beschreibt die Konfiguration einer Zielverfolgung für eine Skalierungsrichtlinie. In dieser Konfiguration passt die ElastiCachePrimaryEngineCPUUtilization vordefinierte Metrik einen ElastiCache für Redis-Cluster auf der Grundlage einer durchschnittlichen CPU-Auslastung von 40 Prozent für alle primären Knoten in diesem Cluster an. Die Konfiguration deaktiviert die Scale-In-Aktivität für die Skalierungsrichtlinie.

{ "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization" }, "DisableScaleIn": true }

Anwenden einer Skalierungsrichtlinie

Nachdem Sie Ihren Cluster bei ElastiCache for Redis Auto Scaling registriert und eine Skalierungsrichtlinie definiert haben, wenden Sie die Skalierungsrichtlinie auf den registrierten Cluster an. Um eine Skalierungsrichtlinie auf einen ElastiCache for Redis-Cluster anzuwenden, können Sie die AWS CLI oder die Application Auto Scaling Scaling-API verwenden.

Anwenden einer Skalierungsrichtlinie mithilfe der AWS CLI

Um eine Skalierungsrichtlinie auf Ihren ElastiCache for Redis-Cluster anzuwenden, verwenden Sie den put-scaling-policyBefehl mit den folgenden Parametern:

  • —policy-name– Der Name der Skalierungsrichtlinie.

  • --policy-type – Legen Sie diesen Wert auf TargetTrackingScaling fest.

  • --resource-id — Die Ressourcen-ID für die für Redis. ElastiCache Für diesen Parameter ist der Ressourcentyp ReplicationGroup und der eindeutige Bezeichner beispielsweise der Name des ElastiCache for Redis-Clusters. replication-group/myscalablecluster

  • --service-namespace – Legen Sie diesen Wert auf elasticache fest.

  • --scalable-dimension – Setzen Sie diesen Wert auf elasticache:replication-group:NodeGroups.

  • -- target-tracking-scaling-policy -configuration — Die Konfiguration der Skalierungsrichtlinie für die Zielverfolgung, die für den Redis-Cluster verwendet werden soll. ElastiCache

Im folgenden Beispiel wenden Sie eine Skalierungsrichtlinie myscalablepolicy zur Zielverfolgung an, die auf einen ElastiCache for Redis-Cluster benannt ist, der myscalablecluster mit ElastiCache for Redis Auto Scaling benannt ist. Dazu verwenden Sie eine Richtlinienkonfiguration, die in einer Datei mit dem Namen config.json gespeichert ist.

Für Linux, macOS oder Unix:

aws application-autoscaling put-scaling-policy \ --policy-name myscalablepolicy \ --policy-type TargetTrackingScaling \ --resource-id replication-group/myscalablecluster \ --service-namespace elasticache \ --scalable-dimension elasticache:replication-group:NodeGroups \ --target-tracking-scaling-policy-configuration file://config.json

Für Windows:

aws application-autoscaling put-scaling-policy ^ --policy-name myscalablepolicy ^ --policy-type TargetTrackingScaling ^ --resource-id replication-group/myscalablecluster ^ --service-namespace elasticache ^ --scalable-dimension elasticache:replication-group:NodeGroups ^ --target-tracking-scaling-policy-configuration file://config.json

Anwendung einer Skalierungsrichtlinie mit der API

Um eine Skalierungsrichtlinie auf Ihren ElastiCache for Redis-Cluster anzuwenden, verwenden Sie den PutScalingPolicy AWS CLI Befehl mit den folgenden Parametern:

  • —policy-name– Der Name der Skalierungsrichtlinie.

  • --resource-id — Die Ressourcen-ID für die für Redis. ElastiCache Für diesen Parameter ist der Ressourcentyp ReplicationGroup und der eindeutige Bezeichner beispielsweise der Name des ElastiCache for Redis-Clusters. replication-group/myscalablecluster

  • --service-namespace – Legen Sie diesen Wert auf elasticache fest.

  • --scalable-dimension – Setzen Sie diesen Wert auf elasticache:replication-group:NodeGroups.

  • -- target-tracking-scaling-policy -configuration — Die Konfiguration der Skalierungsrichtlinie für die Zielverfolgung, die für den Redis-Cluster verwendet werden soll. ElastiCache

Im folgenden Beispiel wenden Sie eine Skalierungsrichtlinie myscalablepolicy zur Zielverfolgung an, die auf einen ElastiCache for Redis-Cluster benannt ist, der myscalablecluster mit ElastiCache for Redis Auto Scaling benannt ist. Sie verwenden die Richtlinienkonfiguration ElastiCachePrimaryEngineCPUUtilization basierend auf einer vordefinierten Metrik.

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity Content-Length: 219 X-Amz-Target: AnyScaleFrontendService.PutScalingPolicy X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "PolicyName": "myscalablepolicy", "ServiceNamespace": "elasticache", "ResourceId": "replication-group/myscalablecluster", "ScalableDimension": "elasticache:replication-group:NodeGroups", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization" } } }