AWS ELBv2 Load Balancer: Less Than Two Healthy Target Instances

Description:

Amazon's Elastic Load Balancer version 2 (ELBv2) plays a crucial role in distributing incoming application traffic across multiple targets. For ensuring high availability and fault tolerance, it's a best practice to have at least two healthy target instances associated with the load balancer. Without at least two healthy instances, the load balancer is at a higher risk of becoming a single point of failure, which can lead to service disruptions.


Remediation:

1. Ensure Multiple Healthy Target Instances for ELBv2 Load Balancer:

Ensure that there are at least two healthy target instances associated with your ELBv2 Load Balancer to maintain high availability.

AWS Management Console:
  • Navigate to the Elastic Load Balancing dashboard.
  • Choose the Target Groups under Load Balancing.
  • Select your target group associated with the ELBv2 Load Balancer.
  • In the Targets tab, check the number of registered instances and their health statuses.
  • Add more instances if there are less than two, or ensure the existing ones are healthy.
AWS CLI:
# Register new targets with the target group
aws elbv2 register-targets \
    --target-group-arn <Your-Target-Group-ARN> \
    --targets Id=<instance-id-1> Id=<instance-id-2>
Terraform:
resource "aws_lb_target_group" "example" {
  // ... other configuration ...

  health_check {
    // ... health check settings ...
  }
}

resource "aws_lb_target_group_attachment" "example" {
  target_group_arn = aws_lb_target_group.example.arn
  target_id        = aws_instance.example.id
  //... potentially add more instances ...
}

resource "aws_instance" "example" {
  // ... instance configuration ...
}

2. Monitoring and Alerts:

  • Monitor the health status of your target instances using Amazon CloudWatch.
  • Set up CloudWatch alarms to notify you when the number of healthy instances falls below two.

3. Regularly Review:

  • Regularly review your AWS environment to ensure that all ELBv2 Load Balancers have at least two healthy target instances.
  • If you're dynamically scaling your infrastructure, ensure Auto Scaling Groups are correctly set up to maintain at least two instances.

To ensure high availability and fault tolerance, always have at least two healthy target instances associated with your ELBv2 Load Balancer. This measure can prevent service disruptions and ensure a consistent user experience.