instances.tf 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. resource "aws_instance" "re" {
  2. count = var.data-node-count
  3. ami = data.aws_ami.re-ami.id
  4. instance_type = var.re-instance-type
  5. availability_zone = "${element(var.vpc-azs, count.index)}"
  6. subnet_id = "${element(var.vpc-subnets, count.index)}"
  7. vpc_security_group_ids = [aws_security_group.re.id]
  8. source_dest_check = false
  9. key_name = local.ssh_key
  10. tags = merge({ Name = "RedisEnterprise-${var.vpc-name}-${count.index}" }, var.common-tags)
  11. }
  12. resource "aws_eip" "re-eip" {
  13. vpc = true
  14. count = var.data-node-count
  15. tags = merge({ Name = "${var.vpc-name}-node-eip-${count.index}" }, var.common-tags)
  16. }
  17. resource "aws_eip_association" "re-eip-assoc" {
  18. count = var.data-node-count
  19. instance_id = "${element(aws_instance.re.*.id, count.index)}"
  20. allocation_id = "${element(aws_eip.re-eip.*.id, count.index)}"
  21. depends_on = ["aws_instance.re", "aws_eip.re-eip"]
  22. }
  23. # Handle attaching volumes if enable-volumes is set (true by default)
  24. resource "aws_ebs_volume" "re-ephemeral" {
  25. count = local.count_volumes
  26. availability_zone = "${element(var.vpc-azs, count.index)}"
  27. size = "${var.re-volume-size}"
  28. tags = merge({ Name = "ephemeral-${var.vpc-name}-${count.index}" }, var.common-tags)
  29. }
  30. resource "aws_volume_attachment" "re-ephemeral" {
  31. count = local.count_volumes
  32. device_name = "/dev/sdh"
  33. volume_id = "${element(aws_ebs_volume.re-ephemeral.*.id, count.index)}"
  34. instance_id = "${element(aws_instance.re.*.id, count.index)}"
  35. }
  36. resource "aws_ebs_volume" "re-persistant" {
  37. count = local.count_volumes
  38. availability_zone = "${element(var.vpc-azs, count.index)}"
  39. size = "${var.re-volume-size}"
  40. tags = merge({ Name = "persistant-${var.vpc-name}-${count.index}" }, var.common-tags)
  41. }
  42. resource "aws_volume_attachment" "re-persistant" {
  43. count = local.count_volumes
  44. device_name = "/dev/sdj"
  45. volume_id = "${element(aws_ebs_volume.re-persistant.*.id, count.index)}"
  46. instance_id = "${element(aws_instance.re.*.id, count.index)}"
  47. }
  48. # Handle attaching volumes if enable-flash is set (false by default)
  49. resource "aws_ebs_volume" "re-flash" {
  50. count = local.count_flash
  51. availability_zone = "${element(var.vpc-azs, count.index)}"
  52. size = "${var.re-volume-size}"
  53. type = "gp2"
  54. tags = merge({ Name = "flash-${var.vpc-name}-${count.index}" }, var.common-tags)
  55. }
  56. resource "aws_volume_attachment" "re-flash" {
  57. count = local.count_flash
  58. device_name = "/dev/sdi"
  59. volume_id = "${element(aws_ebs_volume.re-flash.*.id, count.index)}"
  60. instance_id = "${element(aws_instance.re.*.id, count.index)}"
  61. }