2016-10-04 22 views
9

MySQL RDSインスタンスのRoute53エントリを作成しようとしていますが、Terraformから返されたRDSエンドポイントの末尾にある:3306に問題があります。Terraformを使用したRDSのRoute53エントリの作成

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}"] 
    } 

テラフォームは、エンドポイントの終わりに:3306を置き、それはCNAMEのRoute53価値を締結します。

私はその後、私が手MySQLクライアントでCNAME database.example.comに接続しよう:

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

私は削除すると:を3306 AWSのroute53コンソールを介して、うまく動作するようです。

質問です:私はテラフォームRDSエンドポイント

答えて

11

と同様にendpoint出力から:3306を削除するにはどうすればよい、テラフォームのaws_db_instanceリソースは、インスタンスのFQDNを提供addressを出力します。

だから、あなたがする必要があるすべては代わりにaddressを使用するようにaws_route53_recordリソースを変更です:

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}"] 
} 
+0

mydb.addressは魅力のように働きました。 アドレス - RDSインスタンスのアドレス。 私は答えをプラスしますが、私はまだ十分な影響力を持っていないようです。 – Cale

関連する問題