What is the difference between the internal and External load balancer in AWS?

An internal load balancer is assigned to a private subnet and does not have a public IP. It cannot be accessed by a client not on the VPC (even if you create a Route53 record pointing to it). If you want clients to be able to connect to your load balancer who are not on the VPC, you need to set up an internet-facing load balancer.

An internal load balancer routes traffic to your EC2 instances in private subnets. The clients must have access to the private subnets.


The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the Internet.

The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can only route requests from clients with access to the VPC for the load balancer.

Ref: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-internal-load-balancers.html