Définition d'une politique de mise à l'échelle - Amazon ElastiCache pour Redis

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Définition d'une politique de mise à l'échelle

Une configuration de politique de dimensionnement Suivi de la cible est représentée par un bloc JSON dans lequel sont définies les métriques et valeurs cibles. Vous pouvez enregistrer une configuration de politique de dimensionnement sous forme de bloc JSON dans un fichier texte. Vous utilisez ce fichier texte lorsque vous appelez l'API Application Auto Scaling AWS CLI ou l'API Application Auto Scaling. Pour plus d'informations sur la syntaxe de configuration des politiques, reportez-vous TargetTrackingScalingPolicyConfigurationà la section Application Auto Scaling API Reference.

Les options suivantes sont disponibles pour définir une configuration de politique de suivi de cible et d'échelonnement :

Utilisation d'une métrique prédéfinie

À l'aide de métriques prédéfinies, vous pouvez rapidement définir une politique de dimensionnement de suivi des cibles ElastiCache pour un cluster Redis qui fonctionne avec le suivi des cibles dans ElastiCache Redis Auto Scaling.

Actuellement, ElastiCache for Redis prend en charge les métriques prédéfinies suivantes dans ElastiCache for Redis NodeGroup Auto Scaling :

  • ElastiCachePrimaryEngineCPUUtilization — La valeur moyenne de la EngineCPUUtilization métrique CloudWatch sur tous les nœuds principaux du ElastiCache cluster Redis.

  • ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage— La valeur moyenne de la DatabaseMemoryUsageCountedForEvictPercentage métrique CloudWatch sur tous les nœuds principaux du cluster ElastiCache for Redis.

  • ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage— La valeur moyenne de la ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage métrique CloudWatch sur tous les nœuds principaux du cluster ElastiCache for Redis.

Pour plus d'informations sur les métriques EngineCPUUtilization, DatabaseMemoryUsageCountedForEvictPercentage et DatabaseCapacityUsageCountedForEvictPercentage, consultez Surveillance de l'utilisation à l'aide de métriques CloudWatch. Pour utiliser une métrique prédéfinie dans votre politique de dimensionnement, créez une configuration de suivi de la cible pour votre politique de dimensionnement. Cette configuration doit inclure un PredefinedMetricSpecification pour la métrique prédéfinie et un TargetValue pour la valeur cible de cette métrique.

L'exemple suivant décrit une configuration de politique typique pour le dimensionnement du suivi des cibles ElastiCache pour un cluster Redis. Dans cette configuration, la métrique ElastiCachePrimaryEngineCPUUtilization prédéfinie est utilisée ElastiCache pour ajuster le cluster Redis en fonction d'une utilisation moyenne du processeur de 40 % sur tous les nœuds principaux du cluster.

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

Utilisation d'une métrique personnalisée

L'utilisation de métriques personnalisées vous permet de définir une politique de dimensionnement Suivi de la cible répondant à vos exigences personnelles. Vous pouvez définir une métrique personnalisée en fonction de toute ElastiCache métrique qui change proportionnellement à la mise à l'échelle. Toutes les ElastiCache mesures ne fonctionnent pas pour le suivi des cibles. La métrique doit être une métrique d'utilisation valide et décrire le degré d'occupation d'une instance. La valeur de la métrique doit augmenter ou diminuer proportionnellement au nombre de partitions dans le cluster. Cette augmentation ou diminution proportionnelle est nécessaire pour que les données de la métrique puissent être utilisées afin d'augmenter ou de réduire proportionnellement le nombre de partitions.

L'exemple suivant décrit une configuration de suivi de la cible pour une politique de dimensionnement. Dans cette configuration, une métrique personnalisée ajuste un cluster ElastiCache pour Redis en fonction d'une utilisation moyenne du processeur de 50 % sur toutes les partitions d'un cluster nommé. 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" } }

Utilisation des temps de stabilisation

Vous pouvez spécifier une valeur, en secondes, pour que ScaleOutCooldown ajoute un temps de stabilisation à la montée en puissance de votre cluster. De la même manière, vous pouvez ajouter une valeur, en secondes, pour que ScaleInCooldown ajoute un temps de stabilisation pour la diminution de charge de votre cluster. Pour plus d'informations, reportez-vous TargetTrackingScalingPolicyConfigurationà la section Application Auto Scaling API Reference.

L'exemple suivant décrit une configuration de suivi de la cible pour une politique de dimensionnement. Dans cette configuration, la métrique ElastiCachePrimaryEngineCPUUtilization prédéfinie est utilisée ElastiCache pour ajuster un cluster Redis en fonction d'une utilisation moyenne du processeur de 40 % sur tous les nœuds principaux de ce cluster. La configuration indique un temps de stabilisation de diminution en charge de 10 minutes et un temps de stabilisation de montée en charge de 5 minutes.

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

Désactivation de l'activité de diminution en charge

Vous pouvez empêcher la configuration de la politique de dimensionnement du suivi des cibles de s'étendre dans votre ElastiCache cluster Redis en désactivant l'activité de dimensionnement. La désactivation de l'activité de diminution en charge empêche la politique de mise à l'échelle de supprimer des partitions, tout en l'autorisant encore à les créer si nécessaire.

Vous pouvez spécifier une valeur booléenne pour que DisableScaleIn active ou désactive l'activité de diminution en charge de votre cluster. Pour plus d'informations, reportez-vous TargetTrackingScalingPolicyConfigurationà la section Application Auto Scaling API Reference.

L'exemple suivant décrit une configuration de suivi de la cible pour une politique de dimensionnement. Dans cette configuration, la métrique ElastiCachePrimaryEngineCPUUtilization prédéfinie ajuste un ElastiCache cluster Redis en fonction d'une utilisation moyenne du processeur de 40 % sur tous les nœuds principaux de ce cluster. La configuration désactive l'activité de diminution en charge pour la politique de dimensionnement.

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

Application d'une politique de mise à l'échelle

Après avoir enregistré votre cluster auprès ElastiCache de Redis Auto Scaling et défini une politique de dimensionnement, vous appliquez la politique de dimensionnement au cluster enregistré. Pour appliquer une politique de dimensionnement à un ElastiCache cluster Redis, vous pouvez utiliser l'API Application Auto Scaling AWS CLI ou l'API Application Auto Scaling.

Appliquer une politique de dimensionnement à l'aide du AWS CLI

Pour appliquer une politique de dimensionnement à votre cluster ElastiCache pour Redis, utilisez la put-scaling-policycommande avec les paramètres suivants :

  • --policy-name – Nom de la politique de mise à l'échelle.

  • --policy-type – Définissez cette valeur à TargetTrackingScaling.

  • --resource-id — L'identifiant de ressource pour Redis. ElastiCache Pour ce paramètre, le type de ressource est ReplicationGroup et l'identifiant unique est le nom du ElastiCache cluster Redis, par exemplereplication-group/myscalablecluster.

  • --service-namespace – Définissez cette valeur à elasticache.

  • --scalable-dimension – Définissez cette valeur à elasticache:replication-group:NodeGroups.

  • -- target-tracking-scaling-policy -configuration — Configuration de la politique de dimensionnement du suivi des cibles à utiliser ElastiCache pour le cluster Redis.

Dans l'exemple suivant, vous appliquez une politique de dimensionnement de suivi des cibles nommée myscalablepolicy à un cluster ElastiCache pour Redis nommé myscalablecluster avec pour ElastiCache Redis auto scaling. Pour ce faire, vous utilisez une configuration de politique enregistrée dans un fichier nommé config.json.

Pour Linux, macOS ou 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

Pour 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

Application d'une politique de mise à l'échelle à l'aide de l'API

Pour appliquer une politique de dimensionnement à votre cluster ElastiCache pour Redis, utilisez la PutScalingPolicy AWS CLI commande avec les paramètres suivants :

  • --policy-name – Nom de la politique de mise à l'échelle.

  • --resource-id — L'identifiant de ressource pour Redis. ElastiCache Pour ce paramètre, le type de ressource est ReplicationGroup et l'identifiant unique est le nom du ElastiCache cluster Redis, par exemplereplication-group/myscalablecluster.

  • --service-namespace – Définissez cette valeur à elasticache.

  • --scalable-dimension – Définissez cette valeur à elasticache:replication-group:NodeGroups.

  • -- target-tracking-scaling-policy -configuration — Configuration de la politique de dimensionnement du suivi des cibles à utiliser ElastiCache pour le cluster Redis.

Dans l'exemple suivant, vous appliquez une politique de dimensionnement de suivi des cibles nommée myscalablepolicy à un cluster ElastiCache pour Redis nommé myscalablecluster avec pour ElastiCache Redis auto scaling. Vous utilisez une configuration de politique basée sur la métrique prédéfinie ElastiCachePrimaryEngineCPUUtilization.

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" } } }