S3跨区域复制 - 反向复制

时间:2017-02-28 20:45:27

标签: amazon-web-services amazon-s3 replication

我目前已配置复制,以便将us-east-1上的S3文档复制到us-west-2上的存储桶。鉴于今天的(喘气) AWS中断,我考虑过故障转移到us-west-2(此时似乎在线)。所以,我有几个问题:

  1. 一旦服务恢复,上传到我们 - west-2的文件会被复制回给我们 - east-1吗?我怀疑答案是否定的,因为我没有找到任何关于双向复制的文档。
  2. 如果没有双向复制并且我决定故障转移到us-west-2,那么一旦us-east-1重新上线,恢复的过程是什么?我认为这需要编写脚本将所有丢失的文档复制回us-east-1。还有其他想法或建议吗?

3 个答案:

答案 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