nlb.tf 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #########################
  2. # EIP
  3. resource "aws_eip" "static" {
  4. count = 2
  5. #checkov:skip=CKV2_AWS_19:These EIPs are attached to the NLB
  6. vpc = true
  7. tags = merge(var.tags, { Name = "${var.name}-nlb-external-${var.environment}" })
  8. }
  9. #########################
  10. # ELB
  11. resource "aws_lb" "static" {
  12. name_prefix = substr("${var.name}-static", 0, 6)
  13. load_balancer_type = "network"
  14. internal = false #tfsec:ignore:aws-elb-alb-not-public
  15. enable_cross_zone_load_balancing = true
  16. subnet_mapping {
  17. subnet_id = var.public_subnets[0]
  18. allocation_id = aws_eip.static[0].id
  19. }
  20. subnet_mapping {
  21. subnet_id = var.public_subnets[1]
  22. allocation_id = aws_eip.static[1].id
  23. }
  24. access_logs {
  25. bucket = "xdr-elb-${var.environment}"
  26. enabled = true
  27. }
  28. tags = merge(var.tags, { Name = "${var.name}-nlb-external-${var.environment}" })
  29. }
  30. resource "aws_lb_listener" "static" {
  31. load_balancer_arn = aws_lb.static.arn
  32. port = var.listener_port
  33. protocol = "TCP"
  34. default_action {
  35. type = "forward"
  36. target_group_arn = aws_lb_target_group.static.arn
  37. }
  38. tags = merge(var.tags, { Name = "${var.name}-nlb-external-${var.environment}" })
  39. }
  40. resource "aws_lb_target_group" "static" {
  41. name_prefix = substr("${var.name}-static", 0, 6)
  42. port = var.listener_port
  43. protocol = "TCP"
  44. target_type = "alb"
  45. vpc_id = var.vpc_id
  46. tags = merge(var.tags, { Name = "${var.name}-nlb-external-${var.environment}" })
  47. }
  48. resource "aws_lb_target_group_attachment" "static" {
  49. target_group_arn = aws_lb_target_group.static.arn
  50. target_id = aws_lb.external.id
  51. port = var.listener_port
  52. }