nlb-splunk.tf 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #------------------------------------------------------------------------------
  2. # Splunk2Splunk Requires an NLB
  3. #------------------------------------------------------------------------------
  4. resource "aws_eip" "alsi_splunk_nlb" {
  5. count = var.alsi_splunk_nlb ? 2 : 0
  6. vpc = true
  7. tags = merge(var.standard_tags, var.tags, { "Name": "${var.prefix}-alsi-splunk" })
  8. }
  9. resource "aws_lb" "alsi_splunk_nlb" {
  10. count = var.alsi_splunk_nlb ? 1 : 0
  11. tags = merge(var.standard_tags, var.tags, { "Name": "${var.prefix}-alsi-splunk" })
  12. name = "${var.prefix}-alsi-splunk-nlb"
  13. internal = false
  14. load_balancer_type = "network"
  15. #subnets = data.terraform_remote_state.infra.subnets
  16. subnet_mapping {
  17. subnet_id = element(var.subnets,0)
  18. allocation_id = element(aws_eip.alsi_splunk_nlb.*.id,0)
  19. }
  20. subnet_mapping {
  21. subnet_id = element(var.subnets,1)
  22. allocation_id = element(aws_eip.alsi_splunk_nlb.*.id,1)
  23. }
  24. access_logs {
  25. bucket = "xdr-elb-${ var.environment }"
  26. enabled = true
  27. }
  28. }
  29. resource "aws_lb_target_group" "nlb_targets_9997" {
  30. count = var.alsi_splunk_nlb ? 1 : 0
  31. name = "${var.prefix}-alsi-splunk-nlb-9997"
  32. port = 9997
  33. protocol = "TCP"
  34. vpc_id = var.vpc_id
  35. }
  36. resource "aws_lb_listener" "nlb_targets_9997" {
  37. count = var.alsi_splunk_nlb ? 1 : 0
  38. load_balancer_arn = aws_lb.alsi_splunk_nlb[count.index].arn
  39. port = 9997
  40. protocol = "TCP"
  41. default_action {
  42. target_group_arn = aws_lb_target_group.nlb_targets_9997[count.index].arn
  43. type = "forward"
  44. }
  45. }
  46. resource "aws_lb_target_group_attachment" "alsi_nlb_target_9997_instance" {
  47. count = var.alsi_splunk_nlb ? var.alsi_workers : 0
  48. target_group_arn = aws_lb_target_group.nlb_targets_9997[0].arn
  49. target_id = aws_instance.worker[count.index].id
  50. port = 9997
  51. }
  52. resource "aws_lb_target_group" "nlb_targets_9998" {
  53. count = var.alsi_splunk_nlb ? 1 : 0
  54. name = "${var.prefix}-alsi-splunk-nlb-9998"
  55. port = 9998
  56. protocol = "TCP"
  57. vpc_id = var.vpc_id
  58. }
  59. resource "aws_lb_listener" "nlb_targets_9998" {
  60. count = var.alsi_splunk_nlb ? 1 : 0
  61. load_balancer_arn = aws_lb.alsi_splunk_nlb[count.index].arn
  62. port = 9998
  63. protocol = "TCP"
  64. default_action {
  65. target_group_arn = aws_lb_target_group.nlb_targets_9998[count.index].arn
  66. type = "forward"
  67. }
  68. }
  69. resource "aws_lb_target_group_attachment" "alsi_nlb_target_9998_instance" {
  70. count = var.alsi_splunk_nlb ? var.alsi_workers : 0
  71. target_group_arn = aws_lb_target_group.nlb_targets_9998[0].arn
  72. target_id = aws_instance.worker[count.index].id
  73. port = 9998
  74. }
  75. #########################
  76. # Security Groups
  77. # no security groups for NLB, access is controlled on the worker itself
  78. #########################
  79. # DNS Entry
  80. module "public_dns_record_alsi_nlb" {
  81. count = var.alsi_splunk_nlb ? 1 : 0
  82. source = "../../../submodules/dns/public_A_record"
  83. name = "${var.prefix}-alsi-splunk"
  84. ip_addresses = aws_eip.alsi_splunk_nlb.*.public_ip
  85. dns_info = var.dns_info
  86. providers = {
  87. aws.mdr-common-services-commercial = aws.mdr-common-services-commercial
  88. }
  89. }