Reputation: 2840
Terraform code is here:
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
}
However, when I do run terraform apply, I get the error message below:
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
However, I do have subnets in multiple AZ, screenshot below:
Any idea what is the issue and how do I solve it? P.S: Subnet created as like below
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, 0, var.subnet_count)[count.index]
tags = local.common_tags
}
Availability Zones I get as like below:
data "aws_availability_zones" "available" {}
Upvotes: 3
Views: 3579
Reputation: 238081
I don't see in your code reference to aws_db_subnet_group, so I guess a default subnet group used does not meet this constrain. You can create your own 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"
}
}
And then use it (no need for availability_zones
in this case)
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
}
Upvotes: 3