Terraform InvalidParameterCombination: группы безопасности БД могут быть связаны только с инстансами БД VPC

Я пытаюсь подготовить экземпляр RDS, используя шаблон terraform, и мой шаблон выглядит так

template.tf

  resource "aws_security_group" "web-server-security"{
  name = "webserver-sg"
  description = "webserver security group"
  ingress {
  from_port = 80
  to_port = 80
  protocol = "tcp"
  cidr_blocks = ["0.0.0.0/0"]
}
tags{
  Name = "web-server-sg"
}

resource "aws_security_group" "db-server-sg" {
  name = "db-server"
  description = "dbserver security group"
  ingress {
  from_port = 3306
  to_port = 3306
  protocol = "tcp"
  security_groups = ["${aws_security_group.web-server-security.id}"]
 }
  tags{
   Name = "db-server-sg"
  }
 }

resource "aws_db_instance" "echomany_db" {
   name = "echomanydb"
   engine = "mysql"
   engine_version = "5.7"
   storage_type = "gp2"
   allocated_storage = 20
   instance_class = "db.t2.micro"
   username = "${var.AWS_DB_USERNAME}"
   password = "${var.AWS_DB_PASSWORD}"
   parameter_group_name = "default.mysql5.7"
   skip_final_snapshot = true
   security_group_names = [
   "${aws_security_group.db-server-sg.id}"
  ]
  tags{
    Name = "db-server"
  }
 }

Однако я получаю следующую ошибку:

Произошла 1 ошибка (и): * aws_db_instance.echomany_db: 1 ошибка (и):

  • aws_db_instance.echomany_db: ошибка при создании экземпляра БД: InvalidParameterCombination: группы безопасности БД могут быть связаны только с экземплярами БД VPC с использованием версий API с 15 января 2012 года по 17 сентября 2012 года. код состояния: 400, идентификатор запроса: a19ea8ea-8ea0-46e4-97c6-b946419df9a3

я не знаю, в чем проблема и как решить эту проблему.


person Ashok    schedule 05.02.2019    source источник


Ответы (3)


Как указано в документации, вместо security_group_names, который является устаревшим аргументом.

person Quentin Revel    schedule 05.02.2019

Параметр с именем

security_group_names = [ "${aws_security_group.db-server-sg.id}" ]

может использоваться только при использовании классического режима ec2 или вне VPC. Вместо этого используйте vpc_security_group_ids.

person Sohaib Mustafa    schedule 06.02.2019

вы можете использовать vpc_security_groups_ids = [ ] вместо security_group_names, потому что его можно использовать только при использовании классического режима ec2

пример:

vpc_security_group_ids=["${aws_security_group.rds.id}"]
person Aabhusan Maharjan    schedule 03.12.2019