小编Fiv*_*ver的帖子

备份存储在 Amazon S3 上的数据

我有一个运行 Web 服务器的 EC2 实例,该服务器将用户上传的文件存储到 S3。这些文件被写入一次并且永远不会改变,但偶尔会被用户检索。我们每年可能会积累大约 200-500GB 的数据。我们希望确保这些数据是安全的,尤其是不会被意外删除,并且希望能够恢复被删除的文件,无论出于何种原因。

我已经阅读了 S3 存储桶的版本控制功能,但我似乎无法找到是否可以恢复没有修改历史记录的文件。有关版本控制,请参阅此处的 AWS 文档:

http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html

在这些示例中,它们没有显示上传数据但从未修改然后删除的场景。在这种情况下删除的文件是否可以恢复?

然后,我们认为我们可以使用对象生命周期管理将 S3 文件备份到 Glacier:

http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html

但是,这似乎对我们不起作用,因为文件对象没有复制到 Glacier 而是移动到 Glacier(更准确地说,它似乎是一个对象属性已更改,但无论如何......)。

因此,似乎没有直接的方法来备份 S3 数据,并且将数据从 S3 传输到本地服务器可能非常耗时,并且随着时间的推移可能会产生大量的传输成本。

最后,我们想我们会每个月创建一个新的bucket作为每月的完整备份,并在第1天将原始bucket的数据复制到新的bucket中。然后使用类似duplicity的东西(http://duplicity.nongnu.org/ ) 我们每晚都会同步备份桶。在月底,我们会将备份存储桶的内容放入 Glacier 存储中,并使用原始存储桶的新的当前副本创建一个新的备份存储桶……并重复此过程。这似乎可以工作并最大限度地降低存储/传输成本,但我不确定双重性是否允许直接进行存储桶到存储桶的传输,而无需先将数据传输到控制客户端。

所以,我想这里有几个问题。首先,S3 版本控制是否允许恢复从未修改过的文件?有什么方法可以将文件从 S3“复制”到我错过的 Glacier?duplicity 或任何其他工具可以直接在 S3 存储桶之间传输文件以避免传输成本吗?最后,我在备份 S3 数据的方法上是否离谱?

提前感谢您提供的任何见解!

更新

亚马逊最近宣布版本控制现在适用于生命周期规则

backup amazon-s3 amazon-web-services

16
推荐指数
1
解决办法
9613
查看次数

标签 统计

amazon-s3 ×1

amazon-web-services ×1

backup ×1