8

作为我们蓝绿部署策略的一部分,我们正在对 prod RDS 实例进行快照,然后将此快照恢复到一个新实例中,然后应用数据库迁移并将新的绿色应用程序链接到它。

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

拍摄快照大约需要 < 2 分钟

从快照恢复需要 25 分钟!

考虑到用户在这段时间内都被迫保持只读模式并且我们的数据库大小目前小于 10 mb,25 分钟的恢复时间太长了。

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

  • 亚马逊 RDS Postgres。
  • 多可用区:是
  • 实例类别:中
  • 通用 (SSD)
  • IOPS:禁用。
4

1 回答 1

7

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

以前我们在等待数据库完成多可用区更改,并且 status="available" 以继续我们的部署,但在联系 AWS 后,他们确认即使在修改实例时也可以安全地开始使用新实例应用多可用区更改。因此,一旦恢复的实例状态从“创建”变为“修改”,我们就会继续我们的部署过程

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

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

于 2016-02-24T13:36:50.570 回答