iI am using thisa terraform template to create awsAWS resources. myMy count is 2, every thing is gettingeverything gets created as per plan, and, iI am attaching a 2nd ebsEBS volume of 1 gbGB to both machines, which is also happening well.
However, but the only issue is when iI try to delete one ec2EC2 instance byusing the command below cmd,, both of the 2nd ebs volumeEBS volumes of 1gb1 GB are getting destory,,idestroyed. I checked they are connected on seperateseparate instances.
THisThis is the main.tf:
# Define webserver inside the public subnets
resource "aws_instance" "jumpserver" {
count = "${var.num_of_instances}"
ami = "${var.ami}"
instance_type = "t2.micro"
key_name = "${aws_key_pair.ProdKeypair.id}"
subnet_id = "${aws_subnet.public_subnet.id}"
vpc_security_group_ids = ["${aws_security_group.sg_internet_facing.id}"]
associate_public_ip_address = true
source_dest_check = false
# user_data = "${file("install.sh")}"
root_block_device = {
volume_type = "gp2"
volume_size = "8"
delete_on_termination = "${var.delete_on_termincation}"
}
tags {
Name = "${format("jump-%01d",count.index+1)}"
}
provisioner "remote-exec" {
inline = ["sudo apt-get -y install python"]
connection {
type = "ssh"
user = "ubuntu"
private_key = "${file(var.private_key_path)}"
}
}
}
resource "aws_ebs_volume" "vol_generic_data" {
size = "1"
count = "${var.num_of_instances}"
type = "gp2"
availability_zone = "${element(aws_instance.jumpserver.*.availability_zone, count.index)}"
tags = {
Name = "${format("jump-%01d",count.index+1)}"
}
}
resource "aws_volume_attachment" "generic_data_vol_att" {
device_name = "/dev/xvdf"
volume_id = "${element(aws_ebs_volume.vol_generic_data.*.id, count.index)}"
instance_id = "${element(aws_instance.jumpserver.*.id, count.index)}"
count = "${var.num_of_instances}"
}
# Define webserver inside the private subnet
resource "aws_instance" "backendserver" {
ami = "${var.ami}"
instance_type = "t2.micro"
key_name = "${aws_key_pair.ProdKeypair.id}"
subnet_id = "${aws_subnet.private_subnet.id}"
vpc_security_group_ids = ["${aws_security_group.sg_backend.id}"]
associate_public_ip_address = false
source_dest_check = false
user_data = "${file("install.sh")}"
tags {
Name = "backendserver"
}
}
# Define webserver inside the public subnets
resource "aws_instance" "jumpserver" {
count = "${var.num_of_instances}"
ami = "${var.ami}"
instance_type = "t2.micro"
key_name = "${aws_key_pair.ProdKeypair.id}"
subnet_id = "${aws_subnet.public_subnet.id}"
vpc_security_group_ids = ["${aws_security_group.sg_internet_facing.id}"]
associate_public_ip_address = true
source_dest_check = false
# user_data = "${file("install.sh")}"
root_block_device = {
volume_type = "gp2"
volume_size = "8"
delete_on_termination = "${var.delete_on_termincation}"
}
tags {
Name = "${format("jump-%01d",count.index+1)}"
}
provisioner "remote-exec" {
inline = ["sudo apt-get -y install python"]
connection {
type = "ssh"
user = "ubuntu"
private_key = "${file(var.private_key_path)}"
}
}
}
resource "aws_ebs_volume" "vol_generic_data" {
size = "1"
count = "${var.num_of_instances}"
type = "gp2"
availability_zone = "${element(aws_instance.jumpserver.*.availability_zone, count.index)}"
tags = {
Name = "${format("jump-%01d",count.index+1)}"
}
}
resource "aws_volume_attachment" "generic_data_vol_att" {
device_name = "/dev/xvdf"
volume_id = "${element(aws_ebs_volume.vol_generic_data.*.id, count.index)}"
instance_id = "${element(aws_instance.jumpserver.*.id, count.index)}"
count = "${var.num_of_instances}"
}
# Define webserver inside the private subnet
resource "aws_instance" "backendserver" {
ami = "${var.ami}"
instance_type = "t2.micro"
key_name = "${aws_key_pair.ProdKeypair.id}"
subnet_id = "${aws_subnet.private_subnet.id}"
vpc_security_group_ids = ["${aws_security_group.sg_backend.id}"]
associate_public_ip_address = false
source_dest_check = false
user_data = "${file("install.sh")}"
tags {
Name = "backendserver"
}
}