Defining a scaling policy - Amazon ElastiCache

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 acerca de la sintaxis de configuración de la política, consulte TargetTrackingScalingPolicyConfiguration en la referencia de la API de Auto Scaling de aplicaciones.

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

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 acerca de la sintaxis de configuración de la política, consulte TargetTrackingScalingPolicyConfiguration en la referencia de la API de Auto Scaling de aplicaciones.

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 ElastiCache para un clúster OSS de Valkey y Redis que funcione con el seguimiento de objetivos en Auto Scaling. ElastiCache Actualmente, ElastiCache admite la siguiente métrica predefinida en ElastiCache Replicas Auto Scaling:

ElastiCacheReplicaEngineCPUUtilization— El valor medio de la CPUUtilization métrica del motor en CloudWatch todas las réplicas del clúster. Puede encontrar el valor de la métrica agregada en la CloudWatch sección ElastiCache ReplicationGroupId, Role correspondiente a las réplicas requeridas ReplicationGroupId y a las réplicas de roles.

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 PredefinedMetricSpecification para la métrica predefinida y TargetValue para el valor de destino de esa métrica.

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 basada en cualquier métrica de OSS ElastiCache de Valkey y Redis 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 réplicas del clúster. Este aumento o reducción proporcionales son necesarios para utilizar los datos de las métricas a fin de ampliar o reducir proporcionalmente el número de réplicas.

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 en función de un uso medio de la CPU del 50 % en todas las réplicas de un clúster denominado my-db-cluster.

{"TargetValue": 50, "CustomizedMetricSpecification": {"MetricName": "EngineCPUUtilization", "Namespace": "AWS/ElastiCache", "Dimensions": [ {"Name": "ReplicationGroup","Value": "my-db-cluster"}, {"Name": "Role","Value": "REPLICA"} ], "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 acerca de ScaleInCooldown y ScaleOutCooldown, consulte TargetTrackingScalingPolicyConfiguration en la referencia de la API de Auto Scaling de aplicaciones. 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 predefinida ElastiCacheReplicaEngineCPUUtilization se usa para ajustar un clúster en función del uso medio de la CPU del 40 % en todas las réplicas 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": "ElastiCacheReplicaEngineCPUUtilization" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }

Desactivación de actividad de escalado descendente

Puede impedir que la configuración de la política de escalado de seguimiento de objetivos se escale en su clúster de OSS ElastiCache para Valkey y Redis deshabilitando la actividad de escalado interno. La deshabilitación de la actividad de escalado horizontal evita que la política de escalado elimine réplicas, a la vez que permite a la política de escalado agregarlas 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 acerca de DisableScaleIn, consulte TargetTrackingScalingPolicyConfiguration en la referencia de la API de Auto Scaling de aplicaciones.

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 predefinida ElastiCacheReplicaEngineCPUUtilization ajusta un clúster en función del uso medio de la CPU del 40 % en todas las réplicas de ese clúster. La configuración deshabilita la actividad de escalado descendente para la política de escalado.

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

Aplicar una política de escalado a un clúster de OSS para Valkey y Redis ElastiCache

Tras registrar el clúster ElastiCache para el autoescalado de Valkey y Redis OSS y definir una política de escalado, se aplica la política de escalado al clúster registrado. Para aplicar una política de escalado a un clúster OSS ElastiCache para Valkey y Redis, puede utilizar la API Application Auto Scaling AWS CLI o la API Application Auto Scaling.

Usando la AWS CLI

Para aplicar una política de escalado a su clúster de OSS ElastiCache para Valkey y Redis, 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 recurso para el clúster. Para este parámetro, el tipo de recurso es ReplicationGroup y el identificador único es el nombre del clúster, por ejemplo. replication-group/myscalablecluster

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

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

  • -- 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.

En el siguiente ejemplo, se aplica una política de escalado de seguimiento de objetivos denominada myscalablepolicy a un clúster denominado con myscalablecluster ElastiCache autoescalado. 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:Replicas \ --target-tracking-scaling-policy-configuration file://config.json
{"TargetValue": 40.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization" }, "DisableScaleIn": true }

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:Replicas ^ --target-tracking-scaling-policy-configuration file://config.json

Uso del API

Para aplicar una política de escalado a su ElastiCache clúster con la API Application Auto Scaling, utilice la operación PutScalingPolicyApplication Auto Scaling API con los siguientes parámetros:

  • PolicyName — El nombre de la política de escalado.

  • PolicyType — Establezca este valor enTargetTrackingScaling.

  • ResourceID: el identificador de recurso para el clúster. Para este parámetro, el tipo de recurso es ReplicationGroup y el identificador único es el nombre del ElastiCache clúster OSS de Redis, por ejemploreplication-group/myscalablecluster.

  • ServiceNamespace — Establezca este valor en elasticache.

  • ScalableDimension — Defina este valor en. elasticache:replication-group:Replicas

  • TargetTrackingScalingPolicyConfiguration — La configuración de la política de escalado de seguimiento de objetivos que se utilizará en el clúster.

En el siguiente ejemplo, se aplica una política de escalado de seguimiento de objetivos denominada scalablepolicy a un clúster denominado con myscalablecluster ElastiCache autoescalado. Puede usar una configuración de la política en función de la métrica predefinida ElastiCacheReplicaEngineCPUUtilization.

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:Replicas", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization" } } }