我正在通过带有单个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))}"
}
现在,如何在同一台计算机上添加第二个数据库架构?
答案 0 :(得分:1)
您不会指定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}"
}
RDS CreateDBInstance API调用仅接受1个模式,因此Terraform也只能指定1个模式。与链接的#3122和#3653中一样,一旦创建集群/实例,则使用相应的提供程序+数据库,例如MySQL Provider应该是这种方式。