Difference between Classic and Application Load Balancer - Which one is best?

Often people are confused about different type of load balancers in Cloud. Today we will discuss about them.
Both AWS and Azure offer two type of load balancers.
1) Classic Load Balancers
2) Application Load Balancers
Both load balancers are obviously used to balance the load among multiple clients.
So what is the difference between two?
Before we look into that, we have to take a crash course in communication standards.
Open Systems Interconnection model (OSI model) is a standard for telecom or computing system without regard to their underlying internal structure. To keep it simple, it has 7 layers . Each layer act as a standard for communication at that layer.
Below are the 7 layers:-
Layer 1: Physical Layer
Layer 2: Data Link Layer
Layer 3: Network Layer
Layer 4: Transport Layer
Layer 5: Session Layer
Layer 6: Presentation Layer
Layer 7: Application Layer
We won’t go deeper into each of them as they all have books written on them separately.
Now coming back to our load balancers.

Classic Load Balancer:-

Amazon calls it “AWS Classic ELB” and Microsoft calls it “Azure Load Balancer”.
Classic Load balancer works on Layer 4 in OSI network reference stack.
As we have seen above OSI Layer 4 is Transport Layer. The best known protocols for transport layer are TCP and UDP . If you want to know more about Transport layer you can check it out on wiki .
So the classic load balancer will mostly route the traffic via IPs on port 80 (HTTP) or port 443 (HTTPS) .
Now coming next to the other load balancer.

Application Load Balancer:-

Amazon calls it “AWS Application ELB” and Microsoft calls it “Azure Application Gateway” .
Application load balancer works on Layer 7 of OSI i.e. Application Layer .
Main protocols in application layer are DHCP, DNS, FTP, HTTP, LDAP, SSH, Telnet etc.
You can check out more about Layer 7 on wiki .
The application load balancer has the ability to inspect the application-level content and route requests not just based on the IP and port as is the case with classic LB.
So the rules on Application LB can be more complex for example it will process the request by not just looking at say receiving port 80 but also by checking the destination URL.
So it can process the request for different URLs like
The two URLs can be processed differently based on different Application LB rule.
You can modify or add new rules later also.

So what is best for you?

Above we have given you the details of both load balancers. In most of the cases classic ELB should be good enough for you when you want the requests to be routed based on IP and ports only.
The application load balancer can be useful when you want to create complex applications based on dockers or other containerization technology.
Be Sociable. Share It. Happy Learning!

No comments:

Post a Comment