Как выполнить восстановление после отказа CloudFront с помощью Terraform? - PullRequest
1 голос
/ 18 января 2020

Я успешно настроил CloudFront Origin Failover в Консоли управления. Интересно, как я могу сделать то же самое, используя Terraform?

Это очень простая установка, два источника, одна группа происхождения с одним основным и одним вторичным источником.

1 Ответ

0 голосов
/ 18 января 2020

Terraform предлагает пример конфигурации этого в документации.

Если вы начнете с простого ресурса CloudFront, подобного приведенному ниже

resource "aws_cloudfront_distribution" "s3_distribution" {    
  origin {
    domain_name = "${aws_s3_bucket.primary.bucket_regional_domain_name}"
    origin_id   = "primaryS3"

    s3_origin_config {
      origin_access_identity = "${aws_cloudfront_origin_access_identity.default.cloudfront_access_identity_path}"
    }
  }

  default_cache_behavior {
    # Note: Origin set to the single origin.
    target_origin_id = "primaryS3" 
  }
}

Затем добавьте Настройка Origin Failover довольно проста.

  1. Добавьте вторичное происхождение.
  2. Сгруппируйте его с первичным (порядок членов важен).
  3. Установите в качестве источника по умолчанию группу.

Вот пример (из документации):

resource "aws_cloudfront_distribution" "s3_distribution" {
  origin_group {
    origin_id = "groupS3"

    failover_criteria {
      status_codes = [403, 404, 500, 502]
    }

    member {
      origin_id = "primaryS3"
    }

    member {
      origin_id = "failoverS3"
    }
  }

  # Primary Origin
  origin {
    domain_name = "${aws_s3_bucket.primary.bucket_regional_domain_name}"
    origin_id   = "primaryS3"

    s3_origin_config {
      origin_access_identity = "${aws_cloudfront_origin_access_identity.default.cloudfront_access_identity_path}"
    }
  }

  # Secondary Origin
  origin {
    domain_name = "${aws_s3_bucket.failover.bucket_regional_domain_name}"
    origin_id   = "failoverS3"

    s3_origin_config {
      origin_access_identity = "${aws_cloudfront_origin_access_identity.default.cloudfront_access_identity_path}"
    }
  }

  default_cache_behavior {
    # Important, use the failover group instead of the primary origin.
    target_origin_id = "groupS3" 
  }
}
...