variable "ebs_kms_key" { default = null} variable "mongo_disk_size_default" { default = 100} variable "mongo_disk_size" { default = null} variable "mongo_disk_type_default" { default = 100} variable "mongo_disk_type" { default = null} variable "mongo_disk_encryption" { default = null} variable "mongo_disk_kms_key" { default = null} variable "mongo_mount_default" { default = "mongo"} variable "mongo_device_name" { default = "/dev/sdh"} variable "mysql_disk_size" { default = null} variable "ifs_disk_size" { default = null} variable "num_instances" { default = 2} variable "enable_mysql" { default = false} variable "enable_mongo" { default = false} variable "enable_ifs" { default = false} provider "aws" { version = "~> 2.0" region = "us-east-2" } resource "aws_instance" "test" { count = var.num_instances ami = "ami-05c1fa8df71875112" instance_type = "t2.micro" availability_zone = "us-east-2a" tags = { Name = "test${count.index}" Count = count.index } } resource "aws_ebs_volume" "mongo" { count = var.enable_mongo == true ? var.num_instances : 0 availability_zone = "us-east-2a" size = var.mongo_disk_size != null ? var.mongo_disk_size : var.mongo_disk_size_default encrypted = var.mongo_disk_encryption != null ? var.mongo_disk_size[count.index] : true type = var.mongo_disk_type != null ? var.mongo_disk_size[count.index] : var.mongo_disk_type_default kms_key_id = var.mongo_disk_kms_key != null ? var.mongo_disk_kms_key : var.ebs_kms_key tags = { Name = "Mongo${count.index}" Count = count.index Mount = "mongo" } } resource "aws_volume_attachment" "mongo_att" { count = var.enable_mongo == true ? var.num_instances : 0 device_name = var.mongo_device_name volume_id = aws_ebs_volume.mongo[count.index].id instance_id = aws_instance.test[count.index].id }