同一aws_rds_cluster_instance上的多个DB

时间:2019-01-11 18:16:41

标签: amazon-rds terraform

我正在通过带有单个DB的terraform创建aws_rds_cluster,现在我需要在同一aws_rds_cluster上创建辅助数据库。

那我该怎么办?

我的第一个冲动是将database_name定义为["db1", "db2"],在查看文档后,我发现它不受支持。

这是创建单个“ db1”实例并起作用的代码。

resource "aws_rds_cluster" "my_cluster" {
  cluster_identifier        = "${var.env}-my-project"
  availability_zones        = "${var.azs}"
  database_name             = "${var.database_name}"
  master_username           = "${var.user}"
  master_password           = "${var.password}"
  backup_retention_period   = 5
  preferred_backup_window   = "07:00-09:00"
  db_subnet_group_name      = "${aws_db_subnet_group.subnet_group.name}"
  engine                    = "aurora"
  skip_final_snapshot       = false
  final_snapshot_identifier = "final"
  vpc_security_group_ids    = ["${data.aws_security_group.sg_mysql.id}"]
  db_cluster_parameter_group_name = "${aws_rds_cluster_parameter_group.parameter_group.name}"
  tags = "${merge(var.tags, map("Name", var.tag_name, "environment", var.env))}"
}

现在,如何在同一台计算机上添加第二个数据库架构?

1 个答案:

答案 0 :(得分:1)

aws_rds_cluster_instance

  

您不会指定Amazon Aurora主副本和后续副本。相反,您只需添加RDS实例,Aurora即可管理复制。您可以使用count元参数来创建多个实例,并将它们全部加入同一个RDS群集,也可以使用各种instance_class大小指定不同的Cluster Instance资源。

resource "aws_rds_cluster_instance" "rds_cluster_instance" {
    count                 = "${length(var.azs)}"
    identifier            = "${aws_rds_cluster.my_cluster.id}-instance-${count.index}"
    cluster_identifier    = "${aws_rds_cluster.my_cluster.id}"
    instance_class        = "${var.db_instance_class}"
}

多个数据库架构

据我了解,在github中,

RDS CreateDBInstance API调用仅接受1个模式,因此Terraform也只能指定1个模式。与链接的#3122和#3653中一样,一旦创建集群/实例,则使用相应的提供程序+数据库,例如MySQL Provider应该是这种方式。