镜像Amazon S3存储桶的实用方法是什么?

我想镜像我的Amazon S3存储桶。 我想这样做,因为1)我不希望我所有的数据只与一个提供者存在; 2)如果发生软件错误或安全漏洞,我希望备份数据。

我可以使用s3cmd同步function镜像到本地磁盘,但是对于非常大的存储桶不能扩展,对于快速备份还原没有用处。 我宁愿将我的数据镜像到像Rackspace Cloud Files这样的竞争对手。

任何人都有一个简单而强大的方法来促进这种镜像在Linux上的自动化方式的一些build议?

您可以使用“ s3cmd ”实用程序与“同步”选项,虽然我偶然发现你的问题,因为我试图找出这个同步机制是否搞砸了我的备份。

我有同样的问题,所以我掀起了一个专门devise用来镜像一个S3存储桶的小程序。 我称之为s3s3mirror。

我首先尝试了“s3cmd sync”的方法,但是我有一个桶里面有成千上万的对象,而“s3cmd sync”只是坐在那里,没有做任何事情,只是消耗了越来越多的内存,直到我的系统死亡。 我devise了s3s3mirror立即开始,使用100个并发线程(可configuration),并适度使用CPU和内存。 如果我自己这么说的话,那真是太疯狂了。

我已经使用Apache许可证在github上提供了这个function。 如果你决定让它旋转,请让我知道你的想法,如果有什么可以改善的。

这里是链接: https : //github.com/cobbzilla/s3s3mirror

谢谢!

  • 乔纳森。

检查丛林磁盘服务器 。 它适用于Amazon S3和Rackspace云文件。 您可以将S3和CF安装在文件系统的不同位置,然后在两者之间使用rsync。

亚马逊现在有一个支持的工具来做到这一点, aws cli 。

它可以在本地和远程之间或者在两个S3位置之间以任一方向镜像。

不幸的是,它没有任何直接支持非S3位置的机架空间,但我认为这将是一个有用的答案,一些谁发现这个问题。 像我一样,在我find之前。

尤其是,

aws s3 sync s3://some/s3/path /some/local/path 

你可以尝试使用s3fs来安装保险丝。 完成之后,可以从安装点将rsync同步到本地磁盘。

您可以设置Minio服务器 ,开源和S3兼容API。 您可以在EC2或任何云提供商上将其设置为您的替代服务器,并使用Minio客户端 mc mirror命令定期拍摄S3的镜像。 你可以自动化写一个简单的cron脚本。

希望它有帮助。 免责声明:我为Minio工作

对于桶的联机同步,您可以使用跨区域复制。 这样,原始存储桶的所有更新将自动同步到另一个区域的S3存储桶: https : //docs.aws.amazon.com/AmazonS3/latest/dev/crr.html

请记住,它需要为存储桶启用版本控制,因此,如果要对存储桶中的对象进行更新/删除,您需要启用生命周期策略来删除旧对象。