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

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

有没有什么办法可以恢复意外删除的 Amazon S3 存储桶?

我们的存储桶里有关键信息,我需要降低意外或恶意删除存储桶本身的风险。

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

对备份策略有什么想法吗?

答案1

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

使用第三方工具如桶探索器使版本控制工作变得非常简单(与直接调用 API 相比)。

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

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

答案2

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

因此要备份一个名为 mybucket 的 bucket

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

答案3

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

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

答案4

这不是一个便宜的解决方案,但如果您的存储桶确实很重要,您可以这样做:启动Amazon EC2 实例并定期同步那里的内容。

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

很酷的是,它与 S3 位于同一网络上,您可以在 S3 和 EC2 之间进行无限制传输。我使用 20 美元的丛林磁盘软件在 Windows EC2 实例上,它允许我访问我的 S3 存储桶,就像它们是本地磁盘文件夹一样。然后我可以执行计划的批处理文件,将内容从 S3 复制到我的本地 EC2 磁盘空间。如果您愿意,您可以自动执行每小时备份,或者如果您想冒险一试,请设置 JungleDisk(或其 Linux 等效程序)以每小时同步一次左右。如果有人删除了文件,您至少有几分钟的时间从 EC2 中恢复它。不过,我建议使用常规脚本备份 - 如果您将备份压缩到 850GB 卷上,则很容易保留几天的备份。

这对于 SQL Server 日志传送确实很有用,但我也知道它如何实现您的目标。

相关内容