RDS快照恢复时间过长

9
作为我们蓝绿部署策略的一部分,我们正在对prod RDS实例进行快照,并将此快照恢复到一个新实例中,然后在其中应用数据库迁移,并将新的Green应用程序链接到它。
我们的RDS实例拥有100GB的空间,但目前我们的DB仅使用10MB。
拍摄快照大约需要<2分钟。
从快照还原需要25分钟!
考虑到用户被迫在整个期间保持只读模式并且我们的DB大小目前小于10MB,25分钟的还原时间太长了。
我想知道这种还原时间是Amazon RDS的通常时间还是我们做错了什么。
亚马逊RDS Postgres。
多AZ:是
实例类型:中型
通用型(SSD)
IOPS:已禁用。

2
你使用的实例类是什么?SSD 存储吗?它是多可用区域的吗? - Matt Houser
如果你期望数据库增长,那么这种方法并不是特别好或可扩展的。你考虑过其他替代方案吗?比如将只读副本提升为主库,或者使用AWS数据库迁移服务? - Anthony Neace
@MattHouser:我更新了帖子,并回答了你的问题。 - user1990009
1个回答

10
经过一些试验,我们成功将恢复时间从25分钟缩短至5分钟。这是因为RDS首先尝试还原快照(在我们的情况下需要5分钟),然后再将Multi Az更改应用于新实例(大约需要20分钟)。
之前,我们一直等待DB完成MULTI AZ更改并状态变为“available”,然后才继续部署。但在联系AWS后,他们确认即使实例正在修改以应用MULTI AZ更改,也可以安全地开始使用新实例。因此,我们会在恢复实例的状态从“creating”变为“modifying”时立即继续我们的部署流程。
正如所说,这种解决方案可能不太适合大规模应用,但目前我们并不担心这个DB会显著增长。
我们认为这种方法非常安全,因为任何DB模式更改都不会影响实时DB,我们可以在切换到PROD之前安全地测试整个GREEN stack。唯一的注意事项是应用程序需要处于只读模式,以避免在蓝色和绿色环境之间丢失信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接