我们将大部分操作集中在 AWS 上,并且喜欢那里的易用性。然而,每隔一段时间,我大脑中偏执的一面就会想,如果坏人掌握了我们的管理员密钥会发生什么?
在亚马逊生态系统中,我们有一个非常好的备份计划:我们将大部分静态数据保存在 S3 中。EBS 卷每晚进行一次快照。然而,真正的偏执狂意味着支持亚马逊生态系统之外的供应商。你如何处理这样做?我对备份 EBS 快照和 S3 内容特别感兴趣。备份 RDS 的奖励积分。
我们将大部分操作集中在 AWS 上,并且喜欢那里的易用性。然而,每隔一段时间,我大脑中偏执的一面就会想,如果坏人掌握了我们的管理员密钥会发生什么?
在亚马逊生态系统中,我们有一个非常好的备份计划:我们将大部分静态数据保存在 S3 中。EBS 卷每晚进行一次快照。然而,真正的偏执狂意味着支持亚马逊生态系统之外的供应商。你如何处理这样做?我对备份 EBS 快照和 S3 内容特别感兴趣。备份 RDS 的奖励积分。
这不是我个人实施的,但我的策略如下:
S3 存储桶
其他几个提供商实现了 S3 API,例如Dream Objects或Google Can Storage。我只是有一个脚本,它遍历一个存储桶并将对象放到另一个提供者。为了节省带宽,您可以检查校验和。
EBS
我会以编程方式克隆 EBS 快照,将其挂载到运行备份的实例上,使用 dd 或类似方法创建映像,压缩它然后将其上传到 S3。然后显然将图像包含在您的 S3 备份中。
RDS
与 EBS 类似,但不是克隆磁盘,而是我使用快照来启动一个新实例,然后运行 mysqldump(或任何适用于您的 RDBMS 的等效工具)并将结果上传到 S3。
或者,您可以为您的 RDS 实例设置一个外部从属设备,并在外部进行备份。
您可以将这些脚本烘焙到 AMI 中,该 AMI 在启动时运行它们然后关闭,只需启动该实例,无论您需要备份的频率如何。