定义扩缩策略
目标跟踪扩展策略配置是由 JSON 块表示的,其中定义了指标和目标值。您可以在文本文件中将扩展策略配置保存为 JSON 块。在调用 Amazon CLI 或 Application Auto Scaling API 时,您可以使用该文本文件。有关策略配置语法的更多信息,请参阅 Application Auto Scaling API 参考中的 TargetTrackingScalingPolicyConfiguration。
您可以使用以下选项定义目标跟踪扩缩策略配置:
使用预定义的指标
通过使用预定义的指标,您可以快速为 ElastiCache for Valkey and Redis OSS 集群定义与 ElastiCache 自动扩缩中的目标跟踪搭配使用的目标跟踪扩缩策略。
目前,ElastiCache 在 NodeGroup 自动扩缩中支持以下预定义指标:
-
ElastiCachePrimaryEngineCPUUtilization – 集群中所有主节点在 CloudWatch 中
EngineCPUUtilization指标的平均值。 -
ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage – 集群中所有主节点在 CloudWatch 中
DatabaseMemoryUsageCountedForEvictPercentage指标的平均值。 -
ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage – 集群中所有主节点在 CloudWatch 中
ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage指标的平均值。
有关 EngineCPUUtilization、DatabaseMemoryUsageCountedForEvictPercentage 和 DatabaseCapacityUsageCountedForEvictPercentage 指标的更多信息,请参阅使用 CloudWatch 指标监控使用情况。要在扩展策略中使用预定义的指标,您需要为扩展策略创建一个目标跟踪配置。该配置必须包含 PredefinedMetricSpecification 以表示预定义的指标,并包含 TargetValue 以表示该指标的目标值。
以下示例说明了 ElastiCache for Valkey and Redis OSS 集群的典型目标跟踪扩缩策略配置。在该配置中,ElastiCachePrimaryEngineCPUUtilization 预定义指标用于根据集群中所有主节点的平均 CPU 使用率(40%)来调整该集群。
{ "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization" } }
使用自定义指标
通过使用自定义指标,您可以定义满足您的自定义要求的目标跟踪扩展策略。您可以根据随扩展按比例变化的任何 ElastiCache 指标来定义自定义指标。并非所有 Elasticache 指标都适用于目标跟踪。指标必须是有效的使用率指标,它用于描述实例的繁忙程度。指标值必须随集群中分区数按比例增加或减少。要使用指标数据按比例横向扩展或缩减分区数,必须按比例进行这种增加或减少。
以下示例说明了扩缩策略的目标跟踪配置。在该配置中,一个自定义指标根据名为 my-db-cluster 的集群中所有分片的平均 CPU 使用率(50%)调整 ElastiCache for Redis OSS 集群。
{ "TargetValue": 50, "CustomizedMetricSpecification": { "MetricName": "EngineCPUUtilization", "Namespace": "AWS/ElastiCache", "Dimensions": [ { "Name": "ReplicationGroup","Value": "my-db-cluster" }, { "Name": "Role","Value": "PRIMARY" } ], "Statistic": "Average", "Unit": "Percent" } }
使用冷却时间
您可以为 ScaleOutCooldown 指定一个值(秒)以添加横向扩展集群的冷却时间。同样,您可以为 ScaleInCooldown 添加一个值(秒)以添加横向缩减集群的冷却时间。有关更多信息,请参阅 Application Auto Scaling API 参考中的 TargetTrackingScalingPolicyConfiguration。
以下示例说明了扩缩策略的目标跟踪配置。在该配置中,ElastiCachePrimaryEngineCPUUtilization 预定义指标用于根据该集群中所有主节点的平均 CPU 使用率(40%)调整 ElastiCache for Redis OSS 集群。该配置将缩减冷却时间指定为 10 分钟,并将扩展冷却时间指定为 5 分钟。
{ "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }