AWS S3 备份策略 - 我应该如何备份 S3 存储桶?

AWS S3 备份策略 - 我应该如何备份 S3 存储桶?

我正在构建一个网络应用程序,该应用程序可能需要大量存储需求,而亚马逊 S3 可以满足这些需求。

我主要担心的是服务器上 API 密钥的使用情况,以及未经授权的人员如何以某种方式利用服务器、获取密钥并使用它们销毁 S3 存储桶中的所有数据。

  1. 我应该采取什么策略来最大限度地减少我的 API 密钥的潜在暴露?
  2. 在预算有限的情况下,备份 TB 级 S3 资产的稳健方法是什么?

答案1

首先想到的是,S3 的数据进出非常昂贵。如果你经常备份(你应该这样做),那么仅传输费用就可能超出控制范围。话虽如此,回答你的问题,备份应该从一个单独的、强化的服务器执行,该服务器的唯一任务就是执行备份。没有 apache,只能通过密钥身份验证的 SSH 进行远程访问,等等。如果你这样做,同时确保只有少数人可以访问服务器,那么你的密钥应该非常安全。如果你真的偏执狂,您可以使用 pgp 加密包含密钥的文件 - 但这种方法的问题在于,每次运行备份作业时,它都要求您输入密码。这可能不是您想要的,对吗?

听说你的预算有限,我不禁想你最好改变一下存储策略。我不确定你的服务器情况如何,但你是否可以在服务器上本地托管文件,然后只使用 S3 进行备份?有一个很棒的备份脚本叫做表里不一可以对 S3(以及其他几种后端存储类型)执行压缩、加密、增量备份。

[编辑] 如果你最终在 S3 上托管并备份到本地磁盘,看起来有一个“If-Modified-Since”标题在 S3 API 中,这将有助于执行增量备份。对于这样的备份,您很可能需要自己编写一些东西,尽管这并不太难。只需使用 SimpleDB/BerleleyDB/etc 来存储有关您已备份的文件的元信息以及指向它们在磁盘上的位置的指针。将元信息保存在数据库中还可以快速完成备份验证以及创建备份作业报告。

答案2

即使我遇到了同样的问题,我所做的就是编写一个简单的 bash 脚本来为我执行此操作,但我在单个区域中运行良好,但在多个区域中不起作用,这是脚本 http://geekospace.com/back-up-and-restore-the-database-between-two-aws-ec2-instances/

相关内容