【问题标题】:S3 buckets two-way replication with terraformS3 使用 terraform 存储双向复制
【发布时间】:2021-04-25 06:20:38
【问题描述】:

使用 terraform,我正在尝试创建两个 s3 存储桶,每个存储桶相互复制。这会导致依赖循环。我不确定如何在 terraform 中处理这个问题。

我想到的一种解决方案可能是将其拆分为两组 terraform 脚本,一组用于创建两个存储桶,然后另一组用于修改这些存储桶添加复制规则。

还有其他方法可以处理这种情况吗?

【问题讨论】:

    标签: amazon-web-services amazon-s3 terraform terraform-provider-aws


    【解决方案1】:

    为您描述了解决方案。它在数据一致性方面存在一些问题,但效果很好。

    所以基本上让我们假设您在 2 个单独的区域中有 2 个存储桶:

    • bucket1-us-east-1
    • bucket1-us-west-2

    要进行双向复制,您需要设置从bucket1-us-east-1bucket1-us-west-2 的复制。然后设置从bucket1-us-west-2bucket1-us-east-1 的复制

    地形解决方案

    循环依赖存在问题,所以需要先在一个地方创建资源,然后需要为它们启用复制:

    resource "aws_s3_bucket" "west" {
        provider = "aws.west"
        bucket   = "bucket1-us-west-2"
        region   = "us-west-2"
        acl      = "private"
    
        versioning {
            enabled = true
        }
    
      replication_configuration {
        role = "${aws_iam_role.some_replication_role.arn}"
    
        rules {
          id     = "replicate_all"
          prefix = ""
          status = "Enabled"
    
          destination {
            bucket        = "arn:aws:s3:::bucket1-us-east-1"
            storage_class = "STANDARD"
          }
        }
      }
    
    }
    
    resource "aws_s3_bucket" "east" {
        provider = "aws.east"
        bucket   = "bucket1-us-east-1"
        region   = "us-east-1"
        acl      = "private"
    
        versioning {
            enabled = true
        }
    
      replication_configuration {
        role = "${aws_iam_role.some_replication_role.arn}"
    
        rules {
          id     = "replicate_all"
          prefix = ""
          status = "Enabled"
    
          destination {
            bucket        = "arn:aws:s3:::bucket1-us-west-2"
            storage_class = "STANDARD"
          }
        }
      }
    
    }
    

    参考文献

    【讨论】:

    • 谢谢,但如果可能的话,我特意寻找一个 terraform 解决方案。
    • 嗯,我已经用示例解决方案更新了帖子
    • aws_bucket_replication 似乎不作为值资源类型存在
    • 啊,可能是因为我们编译了自己的提供程序,它是旧版本的分支。
    猜你喜欢
    • 2020-10-29
    • 2019-08-09
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2021-08-14
    • 2022-01-12
    • 1970-01-01
    • 2019-08-17
    相关资源
    最近更新 更多