将整个Amazon S3存储桶复制到其他帐户中的存储桶的最简单方法是什么?理想情况下,我们希望每晚将数据库复制到亚马逊欧洲数据中心的其他帐户进行备份。
答案 0 :(得分:2)
需要考虑的一件事是,您可能希望在Amazon EC2 VM中运行此操作。如果您的备份在亚马逊的云之外运行,那么您需要双向支付数据传输费用。如果您在EC2 VM中运行,则不需要支付带宽费用(虽然我不确定在北美和欧洲商店之间是否适用) - 仅适用于EC2实例正在运行的挂起时间(无论它是什么)存储EC2 VM的成本,我想这应该是最小的。
答案 1 :(得分:1)
我怀疑没有“自动”方式来做到这一点。你只需编写一个简单的应用程序来移动文件。根据您在S3中跟踪文件的方式,您也可以只移动“更改”。
在相关的说明中,我非常确定亚马逊在备份数据方面做得非常好,所以我认为您不一定需要担心数据丢失,除非您备份用于存档目的,或者您想要防止意外删除文件。
答案 2 :(得分:1)
很酷,我可能会考虑编写一个脚本来主持Ec2。备份的主要目的是防止人为错误 - 如果用户意外删除了桶或类似的东西。
答案 3 :(得分:1)
如果你担心删除,你应该看看S3的新Versioning功能。
答案 4 :(得分:1)
您可以创建一个应用程序或服务,负责为源创建一个AmazonS3Client
实例,为目标创建另一个实例,然后源AmazonS3Client
在源存储桶和流对象中开始循环in和目标AmazonS3Client
将它们流式传输到目标存储区。
答案 5 :(得分:0)
注意:这不适用于跨帐户同步,但适用于同一帐户的跨区域。
要将所有内容从一个存储桶简单地复制到另一个存储桶,您可以使用AWS CLI(https://aws.amazon.com/premiumsupport/knowledge-center/move-objects-s3-bucket/):aws s3 sync s3://SOURCE_BUCKET_NAME s3://NEW_BUCKET_NAME
在您的情况下,您需要使用--source-region
标志:https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html
如果您要移动大量数据,则可以通过找到将传输分成不同组的方法来优化其发生速度:https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-transfer-between-buckets/
每晚有多种方式运行。一个例子是AWS实例计划(未经个人验证)https://docs.aws.amazon.com/solutions/latest/instance-scheduler/appendix-a.html