2014-01-31 106 views
2

我目前正在使用S3存储用户在我的应用程序中上传的大量帐户级别数据,如图像,文本文件和其他形式的持久内容。我正在寻找这个数据的增量快照(每周一次)并将其发送到另一个S3存储桶。我想这样做是为了防止意外丢失数据,即我们的工程师之一意外删除S3浏览器中的大量数据。S3增量备份

任何人都可以提出一些方法来实现这个吗?我们是否需要在EC2实例上托管我们自己的备份应用程序?是否有一个应用程序可以处理这个开箱即用的问题?这些数据可以进入S3 Glacier,不需要随时访问,这比其他任何保险政策都更重要。

编辑1

我相信在版本也许答案交换(继续研究这个): http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html

EDIT 2

为他人寻找这个问题的答案, ServerFault上有一个很好的线程。我只碰到这个后来:

https://serverfault.com/questions/9171/aws-s3-bucket-backups

回答

4

启用你的水桶版本是正确的解决方案。它可以用来防止意外删除和覆盖。

有一个在S3常见问题解答的一个问题,在“数据保护”,即确切地讨论了这个问题(意外删除/覆盖):http://aws.amazon.com/s3/faqs/#Why_should_I_use_Versioning

+0

AFAIK版本不能防止桶删除。这些第三方blob浏览器中的一些使得通过几次点击删除整个存储桶变得微不足道。 – QFDev

+0

除非为空,否则无法删除存储桶。如果使用“常规”(即非版本化)的DELETE对象调用来删除版本化存储桶中的对象,那么对象不会被真正删除,只有“删除标记”被添加到版本堆栈的顶部目的。所以你不能删除那个桶。从这个意义上讲,版本控制防止_accidental_删除。 如果您明确想要删除存储桶,则只需运行一个LIST操作,该操作将返回所有对象的所有版本,然后删除所有对象。 –