如何备份AWS S3存储桶而无需对源存储桶进行版本化

有什么方法可以从意外删除Amazon S3 Bucket中恢复?

我们在我们的存储桶中获得了关键信息,我需要降低存储桶本身意外或恶意删除的风险。

我知道我可以在本地同步整个存储桶,但是如果我的存储桶大小为100GB,这不太实际。

任何想法的备份策略?

    另一种方法是在你的存储桶上启用S3版本。 然后您可以恢复删除的文件等。 请参阅S3文档以了解如何启用此function

    使用像BucketExplorer这样的第三方工具使得版本控制变得非常简单(直接调用API)。

    您也可以为您的S3存储桶启用多重身份validation删除function – 这使得“意外删除”变得更加困难;)

    更多没有多因素authentication删除
    更多关于删除对象

    你可以使用s3cmd http://s3tools.org/s3cmd

    所以要备份一个名为mybucket的桶

    s3cmd mb s3://mybucket_backup s3cmd --recursive cp s3://mybucket s3://mybucket_backup 

    这不是一个便宜的解决scheme,但是如果您的存储桶确实非常重要,那么请执行以下步骤:启动Amazon EC2实例并定期同步内容。

    Amazon EC2是他们的虚拟化托pipe服务提供商。 你可以启动Linux,Windows等实例,并运行你想要的任何东西。 你按小时付费,你在本地为这台服务器获得了相当大的存储空间。 例如,我使用“大”大小的实例,它具有850GB的本地磁盘空间。

    很酷的部分是它与S3在同一个networking上,并且在S3和EC2之间可以无限制地传输数据。 我在Windows EC2实例上使用$ 20 Jungle Disk软件,这使我可以像访问本地磁盘文件夹一样访问我的S3存储桶。 然后,我可以执行预定的batch file,将内容从S3复制到本地EC2磁盘空间。 如果你愿意的话,你可以自动化它来保持每小时的备份,或者如果你想赌钱,可以设置JungleDisk(或者它的Linux等价物)同步一个小时左右。 如果有人删除了一个文件,至less要花几分钟的时间才能从EC2中恢复。 我build议使用常规的脚本备份,如果将它们压缩到850GB的容量,保留几天的备份容易。

    这对于SQL Server日志传送非常有用,但我可以看到它是如何实现您的目标的。

    一个可能的解决scheme可能是创build一个“备份存储桶”,并在那里复制敏感信息。 从理论上讲,S3中的数据比硬盘更安全。

    此外,我不确定意外删除是否是一个真正的问题,因为您需要在删除存储桶之前意外删除所有存储桶密钥。

    修改布伦特(优秀)答案一点; 你不需要保持实例运行。 创build一个EC2 AMI,将数据拉下来,将其同步到EBS卷,快照该卷并closures。

    您可以保持卷本身的运行状态,但对其进行快照应该足以进行备份。 如果你的自定义AMI在没有交互的情况下完成了所有这些(包括完成后自行closures),那么你的“备份”脚本只需要'ec2run -n 1 -t m1.small ami-'并且不会被遗忘。

    另一个可能的解决scheme是在S3中将您的存储桶复制到欧洲区域。 这可能会在你意外删除足够长的时间后继续存在。