CNAME-псевдоним в Terraform / Route53 - PullRequest
       38

CNAME-псевдоним в Terraform / Route53

0 голосов
/ 19 сентября 2019

У меня есть существующая запись DNS, такая как "thing.domainmanagedbyroute53.de. ";" 3600 ";" IN ";" CNAME ";" ";" server.some-external-domain.de "

и хочу выразить этот ALIAS в Terraform для Route53.

Под https://www.terraform.io/docs/providers/aws/r/route53_record.html У меня сложилось впечатление, что я должен использовать что-то вроде

resource "aws_elb" "main" {
     name               = "foobar-terraform-elb"
     availability_zones = ["us-east-1c"] 

     listener {
       instance_port     = 80
       instance_protocol = "http"
       lb_port           = 80
       lb_protocol       = "http"
     }
   }

   resource "aws_route53_record" "www" {
     zone_id = "${aws_route53_zone.primary.zone_id}"
     name    = "example.com"
     type    = "A"

     alias {
       name                   = "${aws_elb.main.dns_name}"
       zone_id                = "${aws_elb.main.zone_id}"
       evaluate_target_health = true
     }
   }

Однако мне интересно, гдецель идет ...

1 Ответ

1 голос
/ 19 сентября 2019

Псевдонимы Route53 - это специальный механизм, который позволяет вам включать набор записей в вашей зоне, который берется из набора записей в другой зоне.Тем не менее, он работает только в том случае, если псевдоним набора записей, который вы хотите также в зоне Route53, ограничен следующими зонами:

  • Та же зона Route53, в которой создается записьв.
  • Зоны Route53, предоставляемые AWS для таких сервисов, как Amazon S3, Cloudfront и т. д.

Обратите внимание, что невозможно создать псевдоним из зоны вне Route53, также невозможно создать псевдоним из какой-либо другой зоны Route53 в вашей учетной записи.

В приведенном вами примере показано, как записи псевдонимов используются с Terraform: какой-то другой сервис (эластичный балансировщик нагрузки).(в данном случае) предоставляет как DNS-имя , так и идентификатор зоны Route53, к которой принадлежит DNS-имя, и вы указываете оба из них в блоке alias.

Эффектэтого ресурса заключается в том, что если Route53 получает запрос (в данном случае) A записей на example.com, то он будет внутренне запрашивать другую зону Route53, указанную в aws_elb.main.zone_id, для имени хоста, указанного в aws_elb.main.dns_name, и retuВне зависимости от того, какие IP-адреса там указаны.

Ни одно из имен хостов, которые вы показали в вашем примере, похоже, не относится напрямую к сервису AWS, который предлагает зону Route53, поэтому вы не можете использовать псевдонимы для удовлетворения этого варианта использования.,Вместо этого вы должны использовать CNAME записей.

...