Defining a scaling policy - Amazon ElastiCache (RedisOSS)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Defining a scaling policy

Una configuración de la política de escalado de seguimiento de destino está representada por un bloque JSON en el que se definen las métricas y los valores de destino. Puede guardar una configuración de la política de escalado como bloque JSON en un archivo de texto. Este archivo de texto se utiliza al invocar la API Application Auto Scaling AWS CLI o la API. Para obtener más información sobre la sintaxis de configuración de políticas, consulte TargetTrackingScalingPolicyConfigurationla Referencia de la API Application Auto Scaling.

Las siguientes opciones se encuentran disponibles para definir una configuración de la política de escalado de seguimiento de destino:

Uso de una métrica predefinida

Mediante el uso de métricas predefinidas, puede definir rápidamente una política de escalado de seguimiento de objetivos para un clúster ElastiCache (Redis OSS) que funcione con el seguimiento de objetivos en Auto Scaling ElastiCache (Redis OSS).

Actualmente, ElastiCache (Redis OSS) admite las siguientes métricas predefinidas en NodeGroup Auto ElastiCache Scaling (Redis OSS):

  • ElastiCachePrimaryEngineUtilización de la CPU: el valor promedio de la EngineCPUUtilization métrica en todos los CloudWatch nodos principales del clúster ElastiCache (Redis OSS).

  • ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage— El valor promedio de la DatabaseMemoryUsageCountedForEvictPercentage métrica en todos los CloudWatch nodos principales del clúster ElastiCache (Redis OSS).

  • ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage— El valor medio de la ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage métrica en CloudWatch todos los nodos principales del clúster ElastiCache (Redis OSS).

Para obtener más información sobre las métricas de EngineCPUUtilizationDatabaseMemoryUsageCountedForEvictPercentage y DatabaseCapacityUsageCountedForEvictPercentage, consulte Monitoreo del uso con métricas de CloudWatch. Para usar una métrica predefinida en su política de escalado, puede crear una configuración de seguimiento de destino para su política de escalado. Esta configuración debe incluir un PredefinedMetricSpecification para la métrica predefinida y un TargetValue para el valor objetivo de esa métrica.

El siguiente ejemplo describe una configuración de política típica para el escalado con seguimiento de objetivos para un clúster ElastiCache (Redis OSS). En esta configuración, la métrica ElastiCachePrimaryEngineCPUUtilization predefinida se utiliza para ajustar el clúster ElastiCache (Redis OSS) en función de una utilización media de la CPU del 40 por ciento en todos los nodos principales del clúster.

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

Uso de una métrica personalizada

Mediante las métricas personalizadas, puede definir una política de escalado de seguimiento de destino que cumpla sus requisitos personalizados. Puede definir una métrica personalizada en función de cualquier ElastiCache métrica que cambie en proporción a la escala. No todas las ElastiCache métricas funcionan para el seguimiento de objetivos. La métrica debe ser una métrica de utilización válida y describir el nivel de actividad de una instancia. El valor de la métrica debe aumentar o reducirse en proporción al número de particiones del clúster. Este aumento o reducción proporcionales son necesarios para utilizar los datos de las métricas a fin de reducir o escalar horizontalmente de forma proporcional el número de particiones.

En el siguiente ejemplo se describe una configuración de seguimiento de destino para una política de escalado. En esta configuración, una métrica personalizada ajusta un clúster ElastiCache (Redis OSS) en función de una utilización media de la CPU del 50 por ciento en todos los fragmentos de un clúster denominado. 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" } }

Uso de periodos de recuperación

Puede especificar un valor, en segundos, a fin de que ScaleOutCooldown agregue un periodo de recuperación para el escalado horizontal de su clúster. De forma similar, puede agregar un valor, en segundos, a fin de que ScaleInCooldown agregue un periodo de recuperación para el escalado vertical de su clúster. Para obtener más información, consulte la Referencia TargetTrackingScalingPolicyConfigurationde la API Application Auto Scaling.

En el siguiente ejemplo se describe una configuración de seguimiento de destino para una política de escalado. En esta configuración, la métrica ElastiCachePrimaryEngineCPUUtilization predefinida se utiliza para ajustar un clúster ElastiCache (Redis OSS) en función de una utilización media de la CPU del 40 por ciento en todos los nodos principales de ese clúster. La configuración proporciona un periodo de recuperación de escalado descendente de 10 minutos y un periodo de recuperación de escalado ascendente de 5 minutos.

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

Desactivación de actividad de escalado descendente

Puede evitar que la configuración de la política de escalado con seguimiento de objetivos se escale en su clúster ElastiCache (Redis OSS) deshabilitando la actividad de escalado interno. La deshabilitación de la actividad de escalado horizontal evita que la política de escalado elimine particiones, a la vez que permite a la política de escalado crearlas según sea necesario.

Puede especificar un valor booleano a fin de que DisableScaleIn habilite o deshabilite la actividad de reducción horizontal para su clúster. Para obtener más información, consulte la Referencia TargetTrackingScalingPolicyConfigurationde la API Application Auto Scaling.

En el siguiente ejemplo se describe una configuración de seguimiento de destino para una política de escalado. En esta configuración, la métrica ElastiCachePrimaryEngineCPUUtilization predefinida ajusta un clúster ElastiCache (Redis OSS) en función de una utilización media de la CPU del 40 por ciento en todos los nodos principales de ese clúster. La configuración deshabilita la actividad de escalado descendente para la política de escalado.

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

Aplicación de una política de escalado

Tras registrar su clúster con el escalado automático ElastiCache (Redis OSS) y definir una política de escalado, aplique la política de escalado al clúster registrado. Para aplicar una política de escalado a un clúster ElastiCache (Redis OSS), puede utilizar la API Application Auto Scaling AWS CLI o la API Application Auto Scaling.

Aplicar una política de escalado mediante AWS CLI

Para aplicar una política de escalado a su clúster ElastiCache (Redis OSS), utilice el put-scaling-policycomando con los siguientes parámetros:

  • --policy-name: el nombre de la política de escalado.

  • --policy-type: establezca este valor en TargetTrackingScaling.

  • --resource-id: el identificador de recursos del (Redis OSS ElastiCache ). Para este parámetro, el tipo de recurso es ReplicationGroup y el identificador único es el nombre del clúster ElastiCache (Redis OSS), por ejemplo. replication-group/myscalablecluster

  • --service-namespace: establezca este valor en elasticache.

  • --scalable-dimension: establezca este valor en elasticache:replication-group:NodeGroups.

  • -- target-tracking-scaling-policy -configuración: configuración de la política de escalado de seguimiento de objetivos que se utilizará en el clúster ElastiCache (Redis OSS).

En el siguiente ejemplo, se aplica una política de escalado de seguimiento de objetivos denominada myscalablepolicy a un clúster ElastiCache (Redis OSS) denominado myscalablecluster con escalado automático ElastiCache (Redis OSS). Para ello, puede usar una configuración de la política guardada en un archivo denominado config.json.

Para Linux, macOS o 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

Para 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

Aplicación de una política de escalado mediante la API

Para aplicar una política de escalado a su clúster ElastiCache (Redis OSS), utilice el PutScalingPolicy AWS CLI comando con los siguientes parámetros:

  • --policy-name: el nombre de la política de escalado.

  • --resource-id: el identificador de recursos del (Redis OSS ElastiCache ). Para este parámetro, el tipo de recurso es ReplicationGroup y el identificador único es el nombre del clúster ElastiCache (Redis OSS), por ejemplo. replication-group/myscalablecluster

  • --service-namespace: establezca este valor en elasticache.

  • --scalable-dimension: establezca este valor en elasticache:replication-group:NodeGroups.

  • -- target-tracking-scaling-policy -configuración: configuración de la política de escalado de seguimiento de objetivos que se utilizará en el clúster ElastiCache (Redis OSS).

En el siguiente ejemplo, se aplica una política de escalado de seguimiento de objetivos denominada myscalablepolicy a un clúster ElastiCache (Redis OSS) denominado myscalablecluster con escalado automático ElastiCache (Redis OSS). Puede usar una configuración de la política en función de la métrica predefinida 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" } } }