Definición de una política de escalado - 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.

Definición de una política de escalado

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. Puede utilizar ese archivo de texto al invocar AWS CLI o la API de Auto Scaling de aplicaciones. Para obtener más información sobre la sintaxis de configuración de políticas, 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. Puede utilizar ese archivo de texto al invocar AWS CLI o la API de Auto Scaling de aplicaciones. Para obtener más información sobre la sintaxis de configuración de políticas, 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 las métricas predefinidas, puede definir rápidamente una política de escalado de seguimiento de destino para un clúster de ElastiCache para Valkey y Redis OSS que funciona con el seguimiento de destino en el escalado automático de ElastiCache. Actualmente, ElastiCache admite las siguientes métricas predefinidas en el escalado automático de réplicas de ElastiCache:

ElastiCacheReplicaEngineCPUUtilization: el valor medio de la métrica EngineCPUUtilization en CloudWatch en todas las réplicas del clúster. Puede encontrar el valor agregado de la métrica en CloudWatch en ReplicationGroupId, Role de ElastiCache para los valores de ReplicationGroupId y Role Replica necesarios.

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 en función de cualquier métrica de ElastiCache para Valkey y Redis OSS que cambie en proporción al escalado. No todas las métricas de ElastiCache funcionan para el seguimiento de destino. 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.

ejemplo

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 sobre 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 evitar que la configuración de la política de escalado de seguimiento de destino reduzca horizontalmente su clúster de ElastiCache para Valkey y Redis OSS desactivando la actividad de reducción horizontal. 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 sobre DisableScaleIn, consulte TargetTrackingScalingPolicyConfiguration en la Referencia de la API de Auto Scaling de aplicaciones.

ejemplo

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 }

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

Tras registrar su clúster con escalado automático de ElastiCache para Valkey y Redis OSS y definir una política de escalado, puede aplicarla al clúster registrado. Para aplicar una política de escalado a un clúster de ElastiCache para Valkey y Redis OSS, puede utilizar la AWS CLI o la API de Escalado automático de aplicaciones.

Uso de AWS CLI

Para aplicar una política de escalado a un clúster de ElastiCache para Valkey y Redis OSS, utilice el comando put-scaling-policy 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-configuration: la configuración de la política de escalado de seguimiento de destino que se utilizará para el clúster.

ejemplo

En el siguiente ejemplo, se aplica una política de escalado de seguimiento de destino denominada myscalablepolicy a un clúster denominado myscalablecluster con escalado automático de ElastiCache. 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 de la API

Para aplicar una política de escalado a un clúster de ElastiCache con la API de Escalado automático de aplicaciones, utilice la operación PutScalingPolicy de la API de Escalado automático de aplicaciones con los siguientes parámetros:

  • PolicyName: el nombre de la política de escalado.

  • PolicyType: establezca este valor en TargetTrackingScaling.

  • 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 clúster de ElastiCache para Redis OSS, por ejemplo, replication-group/myscalablecluster.

  • ServiceNamespace: establezca este valor en elasticache.

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

  • TargetTrackingScalingPolicyConfiguration: la configuración de la política de escalado de seguimiento de destino que se utilizará para el clúster.

ejemplo

En el siguiente ejemplo, se aplica una política de escalado de seguimiento de destino denominada scalablepolicy a un clúster denominado myscalablecluster con escalado automático de ElastiCache. 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" } } }