Создание записи Route53 для RDS с помощью Terraform

Я пытаюсь создать запись Route53 для экземпляра MySQL RDS, но у меня проблемы с :3306 в конце конечной точки RDS, возвращенной из Terraform.

    resource "aws_db_instance" "mydb" {
     allocated_storage    = 10
     engine               = "mysql"
     engine_version       = "5.6.17"
     instance_class       = "db.t2.micro"
     name                 = "mydb"
     username             = "foo"
     password             = "bar"
     db_subnet_group_name = "my_database_subnet_group"
     parameter_group_name = "default.mysql5.6"
   }

   resource "aws_route53_record" "database" {
      zone_id = "${aws_route53_zone.primary.zone_id}"
      name = "database.example.com"
      type = "CNAME"
      ttl = "300"
      records = ["${aws_db_instance.default.endpoint}"]
   }

Terraform ставит :3306 в конце конечной точки, и это вводится в значение Route53 CNAME.

когда я затем пытаюсь подключиться к CNAME database.example.com С клиентом MySQL я получаю:

    ERROR 2005 (HY000): Unknown MySQL server host 'database.example.com' (0)

как только я удаляю :3306 через консоль AWS route53, кажется, работает только штраф.

вопрос в том, как мне снять :3306 из конечной точки Terraform RDS

1 ответов


и endpoint выход, терраформа aws_db_instance ресурс также выводит address, который предоставляет FQDN экземпляра.

поэтому все, что вам нужно сделать, это изменить свой aws_route53_record ресурс address вместо:

resource "aws_db_instance" "mydb" {
  allocated_storage    = 10
  engine               = "mysql"
  engine_version       = "5.6.17"
  instance_class       = "db.t2.micro"
  name                 = "mydb"
  username             = "foo"
  password             = "bar"
  db_subnet_group_name = "my_database_subnet_group"
  parameter_group_name = "default.mysql5.6"
}

resource "aws_route53_record" "database" {
  zone_id = "${aws_route53_zone.primary.zone_id}"
  name = "database.example.com"
  type = "CNAME"
  ttl = "300"
  records = ["${aws_db_instance.mydb.address}"]
}