![](/img/trans.png)
[英]Can't connect to RDS read replicas' domain name hosted via 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
資源還輸出提供實例FQDN的address
。
所以你需要做的就是改變你的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}"]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.