如何将AWS S3和EBS备份到非Amazon提供商?

我们将大部分业务集中在AWS上,并且非常喜欢那里的易用性。 然而,每隔一段时间,我脑海中那偏执的一面就会想,如果坏人抓住了我们的pipe理钥匙,会发生什么 ?

在亚马逊生态系统中,我们有一个非常好的备份计划:我们将大部分静态数据保存在S3中。 EBS卷每晚进行快照。 然而,真正的偏执狂意味着要支持亚马逊生态系统之外的提供商。 你如何处理这个? 我特别感兴趣的是备份EBS快照和S3内容。 备份RDS的奖励点数。

这不是我亲自实施的,但是我的策略如下:

S3桶

其他几个提供商实施S3 API,例如Dream Objects或Google Could Storage 。 我只是有一个脚本,它遍历一个桶,并把对象提供给另一个提供者。 为了节省带宽,你可以检查校验和。

EBS

我会以编程方式克隆EBS快照,将其挂载到运行备份的实例上,使用dd或simmilar创build映像,将其压缩并上传到S3。 那么很明显,包括图像作为你的S3备份的一部分。

RDS

与EBS类似,但不是克隆磁盘,而是使用快照来启动一个新的实例,然后运行mysqldump(或任何等效的RDBMS工具)并将结果上传到S3。

或者,您可以有一个外部从属到您的RDS实例,并保持外部备份。

您可以将这些脚本烧成AMI,然后在启动时运行AMI,然后只需启动该实例即可,不过您经常需要备份。