16

我目前正在运行一个通过 Elasticache 使用 Redis 的站点。我们希望移动到具有更多 RAM 的更大实例,因为我们当前的实例类型已达到 70% 左右。

有没有办法像扩展 RDS 实例一样扩展 Elasticache 实例?

或者,我想创建一个副本组并向其中添加一个更大的实例。然后,一旦它被复制并运行,将新实例提升为主实例。这似乎无法通过 AWS 控制台实现,因为副本是使用与主节点相同的实例类型创建的。

我是否遗漏了什么,或者它只是一个无法实现的用例。我知道我可以启动一个更大的实例并手动处理复制,然后将 Web 服务器移到使用新服务器,但是由于 DNS 迁移等原因,这需要一些停机时间。

谢谢!,艾伦

4

4 回答 4

12

Elasticache 感觉更像是 memcached 意义上的缓存解决方案,这意味着要扩展,您确实会启动一个新集群并将您的应用程序切换到它。性能会暂时下降,因为必须重建缓存,但仅此而已。

然而,对于很多人(我怀疑你也包括在内)来说,Redis 更像是一种 NoSQL 数据库解决方案,其中数据丢失是不可接受的。亚马逊提供只读副本作为该问题的“解决方案”,但它仍然有点不确定。当然,它提供了复制以降低数据丢失的风险,但它仍然远不如 RDS 的生产安全(或成熟)用于 Redis数据库(而不是缓存,它非常完美),它提供备份和恢复程序,以及结构良好的变更管理,以支持扩大规模。据我所知,ElastiCache 不支持更改正在运行的集群的实例类型。这表明它只是一种内存解决方案,在重新启动时会丢失所有数据。

我什至会说,如果您担心数据丢失,您应该查看自推出的 Redis 解决方案,而不是简单地使用 ElastiCache。它不仅运行起来稍微便宜一些,而且还使您能够像在任何其他 EC2 实例上一样更改实例类型(当然,在停止它之后)。它还使您能够使用 RDB 或 AOF 持久性。

于 2014-03-12T13:48:51.200 回答
2

您现在可以扩展到更大的节点类型,同时 ElastiCache 保留:

https://aws.amazon.com/blogs/aws/elasticache-for-redis-update-upgrade-engines-and-scale-up/

于 2016-04-02T16:27:25.797 回答
1

Yes, you can instantly scale up a running Elasticache instance type to a larger size. I've tested it and experienced very little actual downtime (I think a few seconds at first, but very quickly it's back online, even while the Console will show the process taking roughly a few minutes to actually finish.) I went from a t2.micro to a m3.medium with no problem.

于 2016-06-04T20:30:02.770 回答
1

您可以放大或缩小

  • 前往 Elasticache 服务

  • 选择集群

  • Actions顶部的菜单中,选择Modify

  • 修改Node Type如下图

在此处输入图像描述

如果您有一个集群,您可以添加更多分片、减少分片数量、重新平衡槽分布或添加更多只读副本。只需单击集群本身,您应该会看到类似这样的内容

在此处输入图像描述

请注意,当您删除分片时,它会自动将数据重新分配到其他现有分片,因此它会影响流量并使其他分片过载,当您尝试删除分片时,您会收到这样的警告

在此处输入图像描述

仍然需要更多帮助,请随时发表评论,我很乐意提供帮助。

于 2020-02-13T03:52:49.753 回答