我想解决当我更改我的 Amazon ElastiCache for Redis 节点类型时发生的错误。
简短描述
以下是更改 ElastiCache for Redis 节点类型时发生错误的常见原因:
- 目标节点类型的内存不足
- 容量不足
- 弹性网络接口或 IP 地址不足
- 指定的节点类型在可用区中不可用
- Redis 引擎版本不支持目标节点类型
- ApplyImmediately 参数设置为 false
- 节点利用率高
解决方法
**注意:**您可以使用 ElastiCache 事件和 AWS CloudTrail 来获得进一步的见解和查看错误消息。
目标节点类型的内存不足
如果目标节点类型的内存不足,则会出现以下错误消息:
"Failed to scale down to cache node type Replication Group <replication_group_name> because the node has insufficient memory.Please select a different node type or reduce current memory usage and retry."
当 **BytesUsedForCache ** 指标高于目标节点类型的最大容量时,就会出现此错误。
要解决此错误,请确保新节点类型足够大,可以容纳您所有数据和所需的 Redis 开销。此外,请确保 BytesUsedForCache 指标中显示的当前总内存使用量低于目标节点类型的最大容量。
**注意:**默认情况下,每个缓存节点都预留 25% 的内存用于非数据使用和后台写入。此数量在 reserved-memory-percent 参数中设置。该预留内存将用于缓存数据的最大内存减少到其用于数据存储的可用内存的 75%。有关更多信息,请参阅 Redis 节点类型的特定参数。要修改此数量,请创建自定义参数组。如果将 eserve-memory-percent 设置为 0,则快照等集群操作可能会失败。有关更多信息,请参阅为什么我无法缩减我的 ElastiCache 集群?
容量不足
InsufficientCacheClusterCapacity 错误表明 ElastiCache 无法按要求从给定可用区分配尽可能多的实例。有关更多信息,请参阅 Amazon ElastiCache 错误消息中的 InsufficientCacheClusterCapacity 部分。
弹性网络接口或 IP 地址不足
如果您的弹性网络接口或 IP 地址不足,则会出现以下错误消息:
"Failed to modify the cache node type to Replication Group <replication_group_name> due to insufficient Elastic Network Interface or free IP address.Please verify your network limits and retry."
要解决此错误,请确保您的弹性网络接口或 IP 地址有适当的容量。要提高限制,请使用服务配额。有关更多信息,请参阅如果我已达到 AWS 区域中的弹性网络接口限制,如何获得更多的弹性网络接口?此外,请确保集群使用的子网有足够的空闲 IP 地址。
指定的节点类型在可用区中不可用
如果您使用特定可用区不支持的节点类型,则会出现以下 InvalidParameterValue 错误消息:
"Specified node type <node_type> is not available in AZ <availability_zone>"
有关可用节点类型的更多信息,请参阅为什么我无法缩减我的 ElastiCache 集群?
要列出可用的节点类型,请使用 list-allowed-node-type-modifications API。如果任一节点类型在特定可用区域中不可用,则这些节点类型不会显示在 list-allowed-node-type-modifications API 输出中。当您通过 AWS 管理控制台修改集群时,未出现在此输出中的节点也不会出现在下拉菜单中。
Redis 引擎版本不支持目标节点类型
某些节点类型需要更新版本的 Redis 引擎。有关更多信息,请参阅 Supported node types。要解决此错误,请在升级节点类型之前升级 Redis 引擎版本。
“ApplyImmediately”参数设置为“false”
如果将 ApplyImmediately 参数设置为 false,则复制组中的节点更改将在下次维护重启或失败重启时应用。如果您需要立即进行更改,请将 ApplyImmediately 参数设置为 true。
**注意:**节点类型更改需要多长时间取决于节点类型和集群中有多少数据。最佳做法是在集群流量最低时进行升级。
节点利用率高
修改期间集群上的繁重工作负载可能会干扰 ElastiCache 工作流程。最佳做法是在数据流量较低的时段启动节点修改。