Technical Guide

Unused Load Balancers

How to identify unused load balancers? Load balancers with zero healthy targets across all target groups cost $16-33/month in base charges while serving no traffic and should be deleted immediately.

2 min read
High impact optimization

Why This Matters

Unused load balancers represent high-cost waste with significant base charges even when serving zero traffic. Unlike other AWS resources that scale to zero cost, load balancers have fixed monthly fees regardless of usage, making them expensive to leave orphaned.

Common causes:

  • Load balancers created for temporary testing that weren't cleaned up
  • Infrastructure from decommissioned applications
  • Development environments that were abandoned
  • Over-provisioned load balancers during scaling events

How to Identify Unused Load Balancers

AWS Saver flags load balancers as unused when they meet these criteria:

  1. Zero healthy targets across all associated target groups
  2. Aged over 7 days (avoids flagging during deployments)
  3. Monthly cost above $5 (focuses on meaningful savings)
  4. Status is 'active' (provisioned and billing)

How to Fix Unused Load Balancers

Step 1: List all load balancers in your account

aws elbv2 describe-load-balancers \
  --query 'LoadBalancers[].[LoadBalancerName,Type,State.Code,CreatedTime]'

Step 2: Get target groups for a specific load balancer

aws elbv2 describe-target-groups \
  --load-balancer-arn arn:aws:elasticloadbalancing:region:account:loadbalancer/app/lb-name/id \
  --query 'TargetGroups[].TargetGroupArn'

Step 3: Check target health across all target groups

aws elbv2 describe-target-health \
  --target-group-arn arn:aws:elasticloadbalancing:region:account:targetgroup/tg-name/id \
  --query 'TargetHealthDescriptions[?TargetHealth.State==`healthy`]'

Step 4: Check DNS records before deletion

aws route53 list-hosted-zones \
  --query 'HostedZones[].Id' | xargs -I {} aws route53 list-resource-record-sets \
  --hosted-zone-id {} --query 'ResourceRecordSets[?contains(AliasTarget.DNSName, `your-lb-dns-name`)]'

Step 5: Delete unused load balancer

aws elbv2 delete-load-balancer \
  --load-balancer-arn arn:aws:elasticloadbalancing:region:account:loadbalancer/app/lb-name/id

Prevention Tips

Use infrastructure as code: Deploy load balancers through CloudFormation or Terraform to track lifecycle.

Tag resources: Use consistent tagging for environment and project to track load balancer ownership.

Set up monitoring: Create CloudWatch alarms for target health and request counts to catch unused load balancers.

Regular audits: Schedule monthly reviews of load balancer target health as part of cost optimization.

Automation Available

Skip the manual work. AWS Saver automatically scans load balancers and identifies those with zero healthy targets.

Target health monitoring - Checks all target groups for healthy targets

High-impact detection - Flags expensive ALB/NLB waste ($16-33/month each)

Conservative thresholds - Only flags load balancers aged over 7 days

Multi-region coverage - Scans all AWS regions simultaneously

Ready to Optimize Your AWS Costs?

Skip the manual work. Get automated LoadBalancer optimization across your entire AWS infrastructure.

60-second setup • No credit card required • Immediate results

Automation Available

Skip the manual work. AWS Saver automatically detects and prioritizes this issue across your entire AWS infrastructure.

60-second setup • No credit card required

Manual vs Automated

Manual Process

  • • Run commands across all regions
  • • Set up monitoring and alerts
  • • Repeat regularly for new issues
  • • Scale across multiple accounts

AWS Saver Automation

  • • Continuous multi-region scanning
  • • Automatic cost impact analysis
  • • Real-time alerts and notifications
  • • Cross-account visibility