如何在不对源存储桶进行版本控制的情况下备份AWS S3存储桶[关闭]


43

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

我们的存储桶中有重要信息,我需要减轻存储桶本身意外或恶意删除的风险。

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

关于备份策略有什么想法吗?


这是我写的S3备份策略指南:eladnava.com/backing-up-your-amazon-s3-buckets-to-ec2
Elad Nava

Answers:


23

另一种方法是在存储桶上启用S3版本控制。然后,您可以还原已删除的文件等。有关如何启用此功能的信息,请参阅S3文档。

使用BucketExplorer之类的第三方工具可以使版本控制变得非常简单(与直接调用API相比)。

您还可以为S3存储桶启用多因素身份验证删除-这使“意外删除”变得有点困难;)

有关多因素身份验证的
更多信息,有关删除对象的更多信息


2
问题是在不进行版本控制的情况下实现这一目标。
Anuruddha

13

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

因此要备份一个名为mybucket的存储桶

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

3
有更快的方法吗?如果存储桶中有n个键,则至少有n个复制请求和一些列出请求(并可能检查结果)。对于大型水桶,这可能需要一段时间。
Kariem

1
当mybucket损坏并且需要还原mybucket_backup时,您能否详细介绍备份操作?
Augustin Riedinger 2013年

7

这不是一个便宜的解决方案,但是如果您的存储桶确实很关键,请按以下步骤操作:启动Amazon EC2实例并定期同步那里的内容。

Amazon EC2是他们的虚拟化托管提供商。您可以启动Linux,Windows等实例,并运行所需的任何程序。您按小时付费,就可以在本地为该服务器获得相当大的存储空间。例如,我使用“大型”实例,该实例带有850GB的本地磁盘空间。

最酷的部分是它与S3在同一网络上,并且您可以在S3和EC2之间获得无限的传输。我在Windows EC2实例上使用了售价20美元的Jungle Disk软件,该软件使我可以像访问本地磁盘文件夹一样访问S3存储桶。然后,我可以执行计划的批处理文件以将内容从S3复制到本地EC2磁盘空间。您可以根据需要自动执行该操作以保持每小时备份,或者如果要赌博,请将JungleDisk(或其Linux等效版本)设置为每小时大约同步一次。如果有人删除了文件,则至少需要几分钟的时间才能从EC2取回文件。不过,我还是建议您使用常规脚本备份-如果要将备份压缩到850GB的卷中,则很容易保留几天的备份。

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


我想您可以使用微型实例,并根据需要添加尽可能多的EBS(弹性块存储)。可能是一个更便宜的选择。
肖恩·维达

实际上,您不应该这样做,因为往返于S3的专用带宽取决于EC2实例的大小。如果要获得大吞吐量,则需要一个大(= $$$$)实例。我的前雇主很难做到这一点。
John Cowan

6

一种可能的解决方案是只创建一个“备份存储桶”,并在那里复制您的敏感信息。从理论上讲,S3中的数据比硬盘驱动器中的数据更安全。

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


+1,因为很难“意外地”删除存储桶中的所有内容,然后再删除存储桶。

10
如果您使用的是rm -rf
s3cmd之

亚马逊冰川呢?是否可以选择?
Tony

6

另一个可能的解决方案是将存储桶复制到S3中的欧洲区域。意外删除后,这可能会使存储桶保留足够长的时间以至于无法恢复。


1
存储桶复制是一个不错的选择。作为额外的保护层,请使用跨帐户复制以确保不违反源帐户不会导致数据丢失。
加雷斯·奥克利

6

修改布伦特的(优秀)答案;您无需保持实例运行。创建一个EC2 AMI,将您的数据下拉,将其同步到EBS卷,对该卷进行快照并关闭自身。

您可以使卷本身保持正常运行,但是对其进行快照应足以进行备份。如果您的自定义AMI在没有交互的情况下完成了所有这些操作(包括在完成操作后将其自身关闭),那么您的“备份”脚本只需要执行“ ec2run -n 1 -t m1.small ami-”并立即执行即可。


我喜欢别人的这个想法,这是更合理,更便宜的解决方案。
宝马
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.