如何解决即使子网位于不同的可用区域中,也无法创建RDS实例
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的子网,下面的截图:
任何主意是什么问题,我该如何解决? 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 举报,一经查实,本站将立刻删除。