Definición de una política de escalado - Amazon ElastiCache

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

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 NodeGroup:

  • ElastiCachePrimaryEngineCPUUtilization: el valor medio de la métrica EngineCPUUtilization en CloudWatch en todos los nodos principales del clúster.

  • ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage: el valor medio de la métrica DatabaseMemoryUsageCountedForEvictPercentage en CloudWatch en todos los nodos principales del clúster.

  • ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage: el valor medio de la métrica ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage en CloudWatch en todos los nodos principales del clúster.

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

En el siguiente ejemplo, se describe una configuración de la política típica para el escalado de seguimiento de destino de un clúster de ElastiCache para Valkey y Redis OSS. En esta configuración, la métrica predefinida ElastiCachePrimaryEngineCPUUtilization se utiliza para ajustar el clúster en función de la utilización promedio de la CPU del 40 % 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 métrica de ElastiCache 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 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 de ElastiCache para Redis OSS en función de una utilización promedio de la CPU del 50 % en todas las particiones 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": "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 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 ElastiCachePrimaryEngineCPUUtilization se utiliza para ajustar un clúster de ElastiCache para Redis OSS en función de la utilización promedio de la CPU del 40 % 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 }