备份存储在Amazon S3上的数据

Modified on: Tue, 20 Aug 2019 01:00:02 +0800

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

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

http://docs.aws.amazon.com/AmazonS3/最新的/ dev / ObjectVersioning.html

在这些示例中,它们不显示上载数据但从未修改过然后删除的方案。在此方案中删除的文件是否可以恢复?

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

http://docs.aws.amazon。 COM / AmazonS3 /最新的/ dev /对象的生命周期mgmt.html

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

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

最后,我们认为我们每个月都会创建一个新的存储桶作为每月完整备份,并在第1天将原始存储桶的数据复制到新存储桶中。然后使用duplicity(http://duplicity.nongnu.org/)我们会每晚同步备份桶。在月末,我们将备份存储桶的内容放在Glacier存储中,并使用原始存储桶的新当前副本创建新的备份存储桶...并重复此过程。这似乎可以工作并最小化存储/传输成本,但我不确定duplicity是否允许直接进行桶到桶传输而不首先将数据传递给控制客户端。

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

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

更新

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

作者:,Fiver

最佳答案

  

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

我刚试过这个。是的,您可以从原始版本恢复。删除文件时,它会创建一个删除标记,您可以在此之前恢复该版本,即:单一,仅修订。

  

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

  
  

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

Glacier非常适合长期存储,很少被访问。一次性检索大部分数据也会非常昂贵,因为它不适用于大量数据的时间点恢复(百分比)。

  

最后,我们认为我们会每个月创建一个新的存储桶作为每月完整的>备份,并在第1天将原始存储桶的数据复制到新存储桶中。然后使用>像duplicity(http://duplicity.nongnu.org/)我们会每隔>晚上同步备份桶。

不要这样做,每个帐户只能有100个存储桶,因此在3年内,只需备份就可以占用存储容量的三分之一。

  

所以,我想这里有几个问题。首先,S3版本是否允许恢复从未修改过的>文件?

  

有没有办法将文件从S3“复制”到我错过的Glacier?

不是我知道的

作者:Sirex

相关问答

添加新评论