微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

即使子网位于不同的可用区域中,也无法创建RDS实例

如何解决即使子网位于不同的可用区域中,也无法创建RDS实例

terraform代码在这里

resource "aws_rds_cluster" "tf-aws-rds-1" {
  cluster_identifier      = "aurora-cluster-1"
  engine                  = "aurora-MysqL"
  engine_version          = "5.7.MysqL_aurora.2.03.2"
  availability_zones      = ["us-east-1a","us-east-1b","us-east-1c"]
  database_name           = "cupday"
  master_username         = "administrator"
  master_password         = var.password
  backup_retention_period = 5
  preferred_backup_window = "07:00-09:00"
  storage_encrypted       = true
  kms_key_id              = data.aws_kms_key.rds_key.arn
}

但是,当我运行terraform apply时,出现以下错误消息:

aws_rds_cluster.tf-aws-rds-1: Creating...

Error: error creating RDS cluster: InvalidVPCNetworkStateFault: DB subnet Group doesn't meet availability zone coverage requirement. Please add subnets to cover at least 2 availability zones. Current coverage: 0
        status code: 400,request id: bc05fb5f-311c-4d15-821a-8b97fc27ab5b

但是,我确实有多个AZ的子网,下面的截图:

enter image description here

任何主意是什么问题,我该如何解决? P.S:子网如下创建

resource "aws_subnet" "tf-aws-sn" {
  count             = var.subnet_count
  vpc_id            = aws_vpc.tf-aws-vn.id
  cidr_block        = data.template_file.public_cidrsubnet[count.index].rendered
  availability_zone = slice(data.aws_availability_zones.available.names,var.subnet_count)[count.index]
  tags              = local.common_tags
}

我得到的可用区域如下:

data "aws_availability_zones" "available" {}

解决方法

在您的代码参考中没有看到对aws_db_subnet_group的引用,因此我猜想所使用的默认子网组不满足此约束。您可以创建自己的aws_db_subnet_group

resource "aws_db_subnet_group" "db_subnets" {
  name       = "main"
  subnet_ids = aws_subnet.tf-aws-sn[*].id

  tags = {
    Name = "My DB subnet group"
  }
}

然后使用它(在这种情况下不需要availability_zones

resource "aws_rds_cluster" "tf-aws-rds-1" {
  cluster_identifier      = "aurora-cluster-1"
  engine                  = "aurora-mysql"
  engine_version          = "5.7.mysql_aurora.2.03.2"

  db_subnet_group_name    = aws_db_subnet_group.db_subnets.name

  database_name           = "cupday"
  master_username         = "administrator"
  master_password         = var.password
  backup_retention_period = 5
  preferred_backup_window = "07:00-09:00"
  storage_encrypted       = true
  kms_key_id              = data.aws_kms_key.rds_key.arn
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?