扩展Elasticache实例?

时间:2014-03-12 11:22:32

标签: amazon-web-services redis amazon-elasticache

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

有没有办法按照扩展RDS实例的方式扩展Elasticache实例?

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

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

谢谢! 艾伦

4 个答案:

答案 0 :(得分:9)

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

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

是的,您可以立即将正在运行的Elasticache实例类型扩展为更大的大小。我已经对它进行了测试,并且经历了非常少的实际停机时间(我想起初几秒钟,但很快就会恢复在线状态,即使控制台显示该过程需要大约几分钟才能完成。)我从t2开始.micro到m3.medium没有问题。

答案 3 :(得分:0)

您可以放大或缩小

  • 转到Elasticache服务

  • 选择集群

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

  • 如下所示修改Node Type

enter image description here

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

的内容

enter image description here

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

enter image description here

仍然需要更多帮助,请随时发表评论,我们非常乐意为您提供帮助。