目标跟踪扩缩策略 - Amazon ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

目标跟踪扩缩策略

使用目标跟踪扩展策略,您可以选择一个指标并设置目标值。 ElastiCache for Valkey 和 Redis OSS AutoScaling 创建和管理触发扩展策略的 CloudWatch 警报,并根据指标和目标值计算扩展调整。扩展策略根据需要均匀地添加或删除所有分区的副本,以便将指标保持在指定的目标值或接近该值。除了将指标保持在目标值附近以外,目标跟踪扩展策略还会根据由于负载模式波动而造成的指标波动进行调节,并最大限度减少队列容量发生快速波动的情况。

副本的弹性伸缩条件

弹性伸缩策略为您的集群定义以下预定义指标:

ElastiCacheReplicaEngineCPUUtilization: ElastiCache 用于触发自动缩放操作的所有副本的引AVG擎CPU利用率阈值。您可以将此使用率目标设置为 35% 到 70% 之间。

当服务检测到您的ElastiCacheReplicaEngineCPUUtilization指标等于或大于 Target 设置时,它将自动增加分片间的副本。 ElastiCache 按等于两个数字中较大者的计数来扩展集群副本:与 Target 的百分比差异和一个副本。对于缩小规模,除非总体指标值低于定义目标的 75%,否则 ElastiCache 不会自动缩减。

关于横向扩展示例,如果您有 5 个分区,每个分区中有 1 个副本:

如果你的 Target 违规率为 30%, ElastiCache 对于 Valkey 和 Redis,则在所有分片上OSS扩展 1 个副本(最大(0.3,默认为 1))。这会导致 5 个分片,每个分片有 2 个副本,

以缩减为例,如果您选择了 60% 的目标值,则在 Valkey 和 Redis 的指标小于或等于 45%(低于目标 60% 的 25%)之前,Valkey 和 Redis OSS 不会自动缩小。 ElastiCache

弹性伸缩注意事项

请注意以下事项:

  • 目标跟踪扩展策略假设它应该在指定指标高于目标值时执行向外扩展。当指定指标低于目标值时,您不能使用目标跟踪扩展策略进行扩展。 ElastiCache 对于 Valkey 和 Redis,按集群中所有分片中现有副本的最大值(与 Target 的偏差百分比四舍五入,默认为 1)进行OSS扩展。

  • 当指定指标数据不足时,目标跟踪扩展策略不会执行扩展。它不会执行向内扩展,因为它不会将数据不足解读为使用率低。

  • 您可能会看到目标值与实际指标数据点之间存在差距。这是因为 ElastiCache Auto Scaling 在确定要添加或移除多少容量时,总是通过向上或向下四舍五入来行事。以免添加的容量不足或删除的容量过多。

  • 为了确保应用程序可用性,服务会针对指标尽快按比例横向扩展,但渐进式横向缩减,集群中所有分区的最大横向缩减副本数为 1。

  • 您可以为 Valkey 和 Redis OSS 集群设置多个目标跟踪扩展策略,前提是每个策略都使用不同的指标。 ElastiCache 自动扩缩的目的是始终优先考虑可用性,因此其行为会有所不同,具体取决于目标跟踪策略是否已准备好横向扩展或横向缩减。如果任何目标跟踪策略已准备好进行扩展,它将扩展服务,但仅在所有目标跟踪策略(启用了缩减部分)准备好缩减时才执行缩减。

  • 请勿编辑或删除 ElastiCache Auto Scaling 为目标跟踪扩展策略管理的 CloudWatch 警报。在您删除扩缩策略或删除集群时,自动扩缩会自动删除警报。

  • ElastiCache Auto Scaling 不会阻止您手动修改分片间的副本。这些手动调整不会影响附加到扩展策略的任何现有 CloudWatch 警报,但可能会影响可能触发这些 CloudWatch 警报的指标。

  • 这些由 Auto Scaling 管理的 CloudWatch 警报是根据集群中所有分片的AVG指标定义的。因此,拥有热分区可能会导致以下任一情况:

    • 由于几个热分片上的负载会触发警报,因此不需要时进行 CloudWatch 扩展

    • 由于AVG所有分片的聚合影响警报,因此无法在需要时进行扩展。

  • ElastiCache 每个集群的节点数的默认限制仍然适用。因此,当选择弹性伸缩时,如果您希望最大节点数超过默认限制,请在 Amazon Service Limits 请求提高限制,并选择限制类型 Nodes per cluster per instance type(每个实例类型的集群的节点数)。

  • 确保您有足够的ENIs(弹性网络接口)VPC,这是横向扩展期间所必需的。有关更多信息,请参阅弹性网络接口

  • 如果没有足够的可用容量EC2, ElastiCache Auto Scaling 将不会横向扩展,直到容量可用,或者您手动将集群修改为具有足够容量的实例类型。

  • ElastiCache Auto Scaling 不支持在集群占比ReservedMemoryPercent低于 25% 的情况下扩展副本。有关更多信息,请参阅 管理 Valkey 和 Redis 的预留内存 OSS