RDS快照还原耗时太长

时间:2016-02-18 19:34:54

标签: postgresql amazon-web-services database-restore rds blue-green-deployment

作为我们的蓝绿色部署策略的一部分,我们正在为prod RDS实例创建快照,然后将此快照恢复到应用db迁移并将新的Green应用程序链接到它的新实例。

我们的RDS实例有100 GB的空间,但我们的数据库目前仅使用10 MB。

拍摄快照大致< 2分钟

从快照恢复需要25分钟!

恢复的25分钟太长,因为用户被迫在所有这段时间内保持只读模式,而且我们的数据库大小目前还不到10 MB。

我想知道这个恢复时间是否是Amazon RDS的正常时间,或者我们是否做错了。

  • Amazon RDS Postgres。
  • 多重AZ:是
  • 实例类:中等
  • 通用(SSD)
  • IOPS:已停用。

1 个答案:

答案 0 :(得分:5)

经过一些实验,我们能够将恢复时间从25分钟缩短到5分钟。这是因为RDS首先尝试恢复快照。 (在我们的例子中,这需要5分钟)。然后,它将Multi Az更改应用于新实例。 (这花了20分钟)

之前我们正在等待数据库完成MULTI AZ更改,并且状态=“可用”以继续我们的部署,但在联系AWS后,他们已经确认即使实例也可以安全地开始使用新实例正在修改以应用MULTI AZ更改。因此,只要恢复的实例状态从“创建”更改为“修改”

,我们就会继续部署过程

正确地说,这个解决方案可能无法很好地扩展,但目前这不是一个问题,因为我们不期望这个数据库显着增长。

我们认为这种方法非常安全,因为任何数据库架构更改都不会影响实时数据库,我们可以在切换到PROD之前安全地测试整个GREEN堆栈。这里唯一需要注意的是应用程序需要处于只读模式,以免在蓝色和绿色环境之间丢失信息