2

Terraform を使用して AWS 内の 2 台のマシンをプロビジョニングするとします。

  • NodeJS を実行する EC2 マシン
  • RDS インスタンス

NodeJS コードはどのようにして RDS インスタンスのアドレスを取得しますか?

4

2 に答える 2

1

ここにはいくつかのオプションがあります。最も簡単な方法は、Route53 でデータベース用の CNAME レコードを作成し、アプリケーションで常にその CNAME を指すようにすることです。

基本的な例は次のようになります。

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

別のオプションには、インスタンスの作成時または Consul への渡し時にendpointから出力を取得してユーザー データ スクリプトに渡し、 Consulテンプレートを使用してアプリケーションが使用する構成を制御することが含まれます。aws_db_instance

于 2016-05-07T18:07:44.883 に答える