【发布时间】:2020-08-17 09:11:31
【问题描述】:
我正在尝试为我的 AWS S3 存储桶中的一些重要数据构建备份系统。 我探索的选项之一是可以将单个对象恢复到早期状态的版本控制。 这在意外删除的情况下肯定会有所帮助。
但这里的问题是由于引入了一些错误的代码或类似的东西而发生数据损坏的情况,为了将系统恢复到较早的状态,除了需要适当的基于快照的备份解决方案之外版本控制。 这在整个存储桶被意外删除,或者版本控制被关闭并且一些数据后来被删除的情况下也有帮助。
我正在考虑的当前选项是使用 EC2 实例每天或以预定义的时间间隔将数据复制到本地驱动器(使用 aws s3 sync 或 aws s3 cp),然后将其在特定日期文件夹下上传到另一个 S3桶。我正在考虑维护一个生命周期规则以在一周后使备份过期。 不过我认为这不是很有效,因为随着应用程序的流量增加,这些存储桶可以容纳大约 100GB 的数据。
如果这是正确的继续方式,或者是否有一些 S3 或 AWS 功能可用于简化此操作,我希望有人可能已经做过类似的事情进行验证。
【问题讨论】:
-
您可以使用 S3 复制将对象复制到同一区域内或跨区域内的另一个存储桶中。
-
通过复制,我认为数据损坏也会被实时复制。
-
我认为您的问题更多是检测损坏而不是从那里恢复。越早检测到损坏,恢复解决方案就越快速、轻松和简单。只需尝试实施一种快速的方法来检测数据何时损坏,并且使用 S3 版本控制您可以返回到最早的稳定版本。您是否希望随着时间的推移在存储桶中拥有相同的文件?因为如果不是这样,那么版本控制可能不是最好的。您保留随时间变化的事物的版本,但不保留按时间创建和删除的事物的版本。
-
我不认为检测损坏是识别所有可能的用例并实施的那么简单。这可能只是代码中未经测试的场景,可能会弄乱数据。但即便如此,有一个防御策略是好的,尽管在需要时对关键数据进行昂贵的处理。
标签: amazon-web-services amazon-s3 amazon-ec2