Несколько БД в одном aws_rds_cluster_instance - PullRequest
0 голосов
/ 11 января 2019

Я создаю aws_rds_cluster через terraform с одной БД, теперь мне нужно создать вторичную базу данных на том же 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 голосов
/ 12 января 2019

aws_rds_cluster_instance

В Amazon Aurora вы не назначаете первичные и последующие реплики. Вместо этого вы просто добавляете инстансы RDS, а Aurora управляет репликацией. Вы можете использовать мета-параметр count, чтобы создать несколько экземпляров и соединить их все в одном кластере RDS, или вы можете указать разные ресурсы экземпляра кластера с различными размерами instance_class.

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

Схема с несколькими базами данных

Вызов API RDS CreateDBInstance принимает только 1 схему, насколько я понимаю, как в github , следовательно, Terraform также может указывать только 1 схему. Как и в связанных # 3122 и # 3653, после создания кластера / экземпляра используйте соответствующий поставщик + базу данных, например. Поставщик MySQL должен быть таким.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...