Создание записи 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}"]
}