使用 Terraform 为 RDS 创建 Route53 条目
Creating a Route53 entry for RDS using Terraform
我正在尝试为 MySQL RDS 实例创建 Route53 条目,但在从 Terraform 返回的 RDS 端点末尾的 :3306
有问题。
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
并将其输入到 CNAME 的 Route53 值中。
然后当我尝试使用 MySQL 客户端连接到 CNAME database.example.com
时,我得到:
ERROR 2005 (HY000): Unknown MySQL server host 'database.example.com' (0)
一旦我通过 AWS route53 控制台删除了 :3306,它似乎工作正常。
问题是:如何从 Terraform RDS 端点
中删除 :3306
除了 endpoint
输出外,Terraform 的 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}"]
}
我正在尝试为 MySQL RDS 实例创建 Route53 条目,但在从 Terraform 返回的 RDS 端点末尾的 :3306
有问题。
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
并将其输入到 CNAME 的 Route53 值中。
然后当我尝试使用 MySQL 客户端连接到 CNAME database.example.com
时,我得到:
ERROR 2005 (HY000): Unknown MySQL server host 'database.example.com' (0)
一旦我通过 AWS route53 控制台删除了 :3306,它似乎工作正常。
问题是:如何从 Terraform RDS 端点
中删除:3306
除了 endpoint
输出外,Terraform 的 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}"]
}