如何进行异地 AWS RDS PostgreSQL 备份?

如何进行异地 AWS RDS PostgreSQL 备份?

作为缓解灾难的措施,例如恶意实体获得我们 AWS 账户的完全访问权限,以及删除所有内容,我正在为我们的生产数据库设置异地备份。我们在 AWS RDS 上使用 PostgreSQL。我们在 RDS 上启用了每日备份。

我想到了以下两个选择:

1)(每日)下载 RDS 生成的数据库快照(虽然我不确定这是否可以编写脚本甚至是否可行)

2)(每日)启动只读副本并在该副本上使用 pg_dump 备份数据库

实现这一目标的最佳方法是什么?

如果这有帮助的话我们已经有一个工具可以每天备份我们的 s3 存储桶。

答案1

您可以选择将 RDS 快照复制到另一个 AWS 账户。这是一种常用的做法。

可以通过以下方式实现:

  1. 与您的第二个 AWS 账户共享您的 RDS 快照。
  2. 将 RDS 快照从源账户复制(“拉取”)到目标账户。
  3. 删除源快照上的共享。

https://aws.amazon.com/blogs/aws/amazon-rds-update-cross-account-snapshot-sharing/

答案2

我还想对我的 AWS RDS 以及代码、日志等进行异地备份。我通过以下方式进行备份:

  • 定期(对我来说,每晚午夜)将数据库导出到给定目录中
  • 拥有阁楼备份备份该目录。这会进行差异、压缩、重复数据删除备份。它会保留每周、每月和每年的快照 - 如果需要回滚,可以配置这些快照。我还以同样的方式备份了我的 webroot 和日志。
  • 然后我使用一个脚本将 Attic 备份同步到 Dropbox。您也可以使用 BitTorrent Sync、FTP 或您喜欢的其他任何方式。

我打算花点时间把这一切都记录下来,但这真的很简单。

2017 年更新

我停止使用 Attic,因为它没有得到积极的开发或支持。我使用Borg 备份用于重复数据删除备份,它是 Attic 的一个分支。

Borg 备份存储在我的文件系统中。我使用以下方式将这些文件同步到 AWS S3:S3同步。如果我现在设置它,我会考虑使用S3FS将备份直接写入 S3,尽管 S3FS 不是一个完整的文件系统,所以在这种情况下它可能不太适用。

相关内容