我目前已配置复制,以便将us-east-1上的S3文档复制到us-west-2上的存储桶。鉴于今天的(喘气) AWS中断,我考虑过故障转移到us-west-2(此时似乎在线)。所以,我有几个问题:
答案 0 :(得分:2)
双向复制的问题总是归结为“谁拥有正确版本的数据”。当只有一个数据来源时,现在不是很难,但是当有两个数据时呢?如果一个进程写入一个区域而另一个进程将相同的东西写入另一个区域,那么判断冲突是什么?
这就是为什么你没有看到有关双向复制的文档的原因 - 它很难以通用的方式解决。我会看一些类似s3同步或自定义脚本的东西,以使桶恢复同步。
答案 1 :(得分:1)
我们在两个区域上设置跨区域相互复制规则,以便它们可以彼此复制。多年来似乎运转良好。
它不进行无限循环的原因是principal
对于上传和复制而言是不同的。如果您在 Lambda 中收听s3 event
,这将更加明显:
对于原始上传,它是:
"userIdentity": {
"principalId": "AWS:xxx:YourBucketName"
},
对于复制,它是
"userIdentity": {
"principalId": "AWS:xxx:s3-replication"
},
对于内部复制本身,引用:
For an object uploaded by you
Amazon S3 triggers the rule you configured to replicate it to another bucket
And sets Replication status to COMPLETED
For an object replicated from another bucket
Amazon S3 knows not to re-replicate the object
And sets Replication status to REPLICA
答案 2 :(得分:0)
为Amazon Simple Storage Service(Amazon S3)实施双向跨区域复制
https://wellarchitectedlabs.com/Reliability/200_Bidirectional_Replication_for_S3/README.html