nlb.tf 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. resource "aws_lb" "nlb" {
  2. name = "${var.instance_name}-nlb"
  3. internal = false
  4. load_balancer_type = "network"
  5. # Not supported for NLB
  6. #security_groups = [aws_security_group.nlb-sg.id]
  7. # Note, changing subnets results in recreation of the resource
  8. subnets = var.subnets
  9. enable_cross_zone_load_balancing = true
  10. access_logs {
  11. bucket = "xdr-elb-${ var.environment }"
  12. enabled = true
  13. }
  14. tags = merge(var.standard_tags, var.tags)
  15. }
  16. #########################
  17. # Listeners
  18. resource "aws_lb_listener" "nlb-listener-3023" {
  19. load_balancer_arn = aws_lb.nlb.arn
  20. port = "3023"
  21. protocol = "TCP"
  22. default_action {
  23. type = "forward"
  24. target_group_arn = aws_lb_target_group.nlb-target-3023.arn
  25. }
  26. }
  27. resource "aws_lb_listener" "nlb-listener-3024" {
  28. load_balancer_arn = aws_lb.nlb.arn
  29. port = "3024"
  30. protocol = "TCP"
  31. default_action {
  32. type = "forward"
  33. target_group_arn = aws_lb_target_group.nlb-target-3024.arn
  34. }
  35. }
  36. resource "aws_lb_listener" "nlb-listener-443" {
  37. load_balancer_arn = aws_lb.nlb.arn
  38. port = "443"
  39. protocol = "TCP"
  40. default_action {
  41. type = "forward"
  42. target_group_arn = aws_lb_target_group.nlb-target-3024.arn
  43. }
  44. }
  45. resource "aws_lb_listener" "nlb-listener-3026" {
  46. load_balancer_arn = aws_lb.nlb.arn
  47. port = "3026"
  48. protocol = "TCP"
  49. default_action {
  50. type = "forward"
  51. target_group_arn = aws_lb_target_group.nlb-target-3026.arn
  52. }
  53. }
  54. #########################
  55. # Targets
  56. resource "aws_lb_target_group" "nlb-target-3023" {
  57. name = "${var.instance_name}-nlb-target-3023"
  58. port = 3023
  59. protocol = "TCP"
  60. target_type = "instance"
  61. vpc_id = var.vpc_id
  62. tags = merge(var.standard_tags, var.tags)
  63. }
  64. resource "aws_lb_target_group_attachment" "nlb-target-3023-instance" {
  65. target_group_arn = aws_lb_target_group.nlb-target-3023.arn
  66. target_id = aws_instance.instance.id
  67. port = 3023
  68. }
  69. resource "aws_lb_target_group" "nlb-target-3024" {
  70. name = "${var.instance_name}-nlb-target-3024"
  71. port = 3024
  72. protocol = "TCP"
  73. target_type = "instance"
  74. vpc_id = var.vpc_id
  75. tags = merge(var.standard_tags, var.tags)
  76. }
  77. resource "aws_lb_target_group_attachment" "nlb-target-3024-instance" {
  78. target_group_arn = aws_lb_target_group.nlb-target-3024.arn
  79. target_id = aws_instance.instance.id
  80. port = 3024
  81. }
  82. resource "aws_lb_target_group" "nlb-target-3026" {
  83. name = "${var.instance_name}-nlb-target-3026"
  84. port = 3026
  85. protocol = "TCP"
  86. target_type = "instance"
  87. vpc_id = var.vpc_id
  88. tags = merge(var.standard_tags, var.tags)
  89. }
  90. resource "aws_lb_target_group_attachment" "nlb-target-3026-instance" {
  91. target_group_arn = aws_lb_target_group.nlb-target-3026.arn
  92. target_id = aws_instance.instance.id
  93. port = 3026
  94. }
  95. #########################
  96. # DNS Entry
  97. module "public_dns_record_for_nlb" {
  98. source = "../../submodules/dns/public_ALIAS_record"
  99. name = "${var.instance_name}-nlb"
  100. target_dns_name = aws_lb.nlb.dns_name
  101. target_zone_id = aws_lb.nlb.zone_id
  102. dns_info = var.dns_info
  103. providers = {
  104. aws.mdr-common-services-commercial = aws.mdr-common-services-commercial
  105. }
  106. }