Answers:
另一种方法是在存储桶上启用S3版本控制。然后,您可以还原已删除的文件等。有关如何启用此功能的信息,请参阅S3文档。
使用BucketExplorer之类的第三方工具可以使版本控制变得非常简单(与直接调用API相比)。
您还可以为S3存储桶启用多因素身份验证删除-这使“意外删除”变得有点困难;)
您可以使用s3cmd http://s3tools.org/s3cmd
因此要备份一个名为mybucket的存储桶
s3cmd mb s3://mybucket_backup
s3cmd --recursive cp s3://mybucket s3://mybucket_backup
这不是一个便宜的解决方案,但是如果您的存储桶确实很关键,请按以下步骤操作:启动Amazon EC2实例并定期同步那里的内容。
Amazon EC2是他们的虚拟化托管提供商。您可以启动Linux,Windows等实例,并运行所需的任何程序。您按小时付费,就可以在本地为该服务器获得相当大的存储空间。例如,我使用“大型”实例,该实例带有850GB的本地磁盘空间。
最酷的部分是它与S3在同一网络上,并且您可以在S3和EC2之间获得无限的传输。我在Windows EC2实例上使用了售价20美元的Jungle Disk软件,该软件使我可以像访问本地磁盘文件夹一样访问S3存储桶。然后,我可以执行计划的批处理文件以将内容从S3复制到本地EC2磁盘空间。您可以根据需要自动执行该操作以保持每小时备份,或者如果要赌博,请将JungleDisk(或其Linux等效版本)设置为每小时大约同步一次。如果有人删除了文件,则至少需要几分钟的时间才能从EC2取回文件。不过,我还是建议您使用常规脚本备份-如果要将备份压缩到850GB的卷中,则很容易保留几天的备份。
这对于SQL Server日志传送确实很有用,但是我也可以看到它如何实现您的目标。
修改布伦特的(优秀)答案;您无需保持实例运行。创建一个EC2 AMI,将您的数据下拉,将其同步到EBS卷,对该卷进行快照并关闭自身。
您可以使卷本身保持正常运行,但是对其进行快照应足以进行备份。如果您的自定义AMI在没有交互的情况下完成了所有这些操作(包括在完成操作后将其自身关闭),那么您的“备份”脚本只需要执行“ ec2run -n 1 -t m1.small ami-”并立即执行即可。