-
-
Save sandcastle/4e7b979c480690044bd8 to your computer and use it in GitHub Desktop.
| ######################## | |
| ## Variables | |
| ######################## | |
| variable "environment_name" { | |
| description = "The name of the environment" | |
| } | |
| variable "vpc_id" { | |
| description = "The ID of the VPC that the RDS cluster will be created in" | |
| } | |
| variable "vpc_name" { | |
| description = "The name of the VPC that the RDS cluster will be created in" | |
| } | |
| variable "vpc_rds_subnet_ids" { | |
| description = "The ID's of the VPC subnets that the RDS cluster instances will be created in" | |
| } | |
| variable "vpc_rds_security_group_id" { | |
| description = "The ID of the security group that should be used for the RDS cluster instances" | |
| } | |
| variable "rds_master_username" { | |
| description = "The ID's of the VPC subnets that the RDS cluster instances will be created in" | |
| } | |
| variable "rds_master_password" { | |
| description = "The ID's of the VPC subnets that the RDS cluster instances will be created in" | |
| } | |
| ######################## | |
| ## Cluster | |
| ######################## | |
| resource "aws_rds_cluster" "aurora_cluster" { | |
| cluster_identifier = "${var.environment_name}_aurora_cluster" | |
| database_name = "mydb" | |
| master_username = "${var.rds_master_username}" | |
| master_password = "${var.rds_master_password}" | |
| backup_retention_period = 14 | |
| preferred_backup_window = "02:00-03:00" | |
| preferred_maintenance_window = "wed:03:00-wed:04:00" | |
| db_subnet_group_name = "${aws_db_subnet_group.aurora_subnet_group.name}" | |
| final_snapshot_identifier = "${var.environment_name}_aurora_cluster" | |
| vpc_security_group_ids = [ | |
| "${var.vpc_rds_security_group_id}" | |
| ] | |
| tags { | |
| Name = "${var.environment_name}-Aurora-DB-Cluster" | |
| VPC = "${var.vpc_name}" | |
| ManagedBy = "terraform" | |
| Environment = "${var.environment_name}" | |
| } | |
| lifecycle { | |
| create_before_destroy = true | |
| } | |
| } | |
| resource "aws_rds_cluster_instance" "aurora_cluster_instance" { | |
| count = "${length(split(",", var.vpc_rds_subnet_ids))}" | |
| identifier = "${var.environment_name}_aurora_instance_${count.index}" | |
| cluster_identifier = "${aws_rds_cluster.aurora_cluster.id}" | |
| instance_class = "db.t2.small" | |
| db_subnet_group_name = "${aws_db_subnet_group.aurora_subnet_group.name}" | |
| publicly_accessible = true | |
| tags { | |
| Name = "${var.environment_name}-Aurora-DB-Instance-${count.index}" | |
| VPC = "${var.vpc_name}" | |
| ManagedBy = "terraform" | |
| Environment = "${var.environment_name}" | |
| } | |
| lifecycle { | |
| create_before_destroy = true | |
| } | |
| } | |
| resource "aws_db_subnet_group" "aurora_subnet_group" { | |
| name = "${var.environment_name}_aurora_db_subnet_group" | |
| description = "Allowed subnets for Aurora DB cluster instances" | |
| subnet_ids = [ | |
| "${split(",", var.vpc_rds_subnet_ids)}" | |
| ] | |
| tags { | |
| Name = "${var.environment_name}-Aurora-DB-Subnet-Group" | |
| VPC = "${var.vpc_name}" | |
| ManagedBy = "terraform" | |
| Environment = "${var.environment_name}" | |
| } | |
| } | |
| ######################## | |
| ## Output | |
| ######################## | |
| output "cluster_address" { | |
| value = "${aws_rds_cluster.aurora_cluster.address}" | |
| } |
small update:
Error: aws_rds_cluster.aurora_cluster: only alphanumeric characters and hyphens allowed in "final_snapshot_identifier" Error: aws_rds_cluster.aurora_cluster: only lowercase alphanumeric characters and hyphens allowed in "cluster_identifier" Error: aws_rds_cluster_instance.aurora_cluster_instance: only lowercase alphanumeric characters and hyphens allowed in "identifier"
may want to change the underscores in the values to hyphens
Hi, did we happen to resolve this "final_snapshot_identifier" error?
just change the "_" to "-" so that they are hyphens which it will accept. ( for those who come later to this thread)
every variable must have a default value at least , but in this code there is no default value for any variable
I have to change to
subnet_ids = split(",", var.vpc_rds_subnet_ids)
There is also the issue that there is now way to determine from the api-provided az list whether or not its members are actually alive.