Azure Load Balancer is a crucial component of Azure's cloud computing platform.
There are two main types of Azure Load Balancer: Azure Load Balancer and Azure Application Gateway.
Azure Load Balancer is suitable for layer 4 and layer 7 load balancing, while Azure Application Gateway is designed for layer 7 load balancing and is more feature-rich.
Azure Load Balancer is a cost-effective option for load balancing, with a pay-as-you-go pricing model.
An Introduction
Azure Load Balancer is a crucial component of cloud computing, allowing you to distribute traffic across multiple instances of a web application or service.
It's a fundamental tool for ensuring high availability and reliability in your applications.
Azure Load Balancer can be used with both virtual machines and containers, making it a versatile solution for a wide range of use cases.
The load balancer can distribute traffic across multiple instances of a web application or service, ensuring that no single instance is overwhelmed with traffic.
There are several types of Azure Load Balancer, each with its own strengths and weaknesses.
The Standard Load Balancer is a good choice for most use cases, offering a high level of scalability and flexibility.
Azure Load Balancer Types
Azure Load Balancer offers two types of load balancers: External LB and Internal LB. External LB maps public IP and incoming traffic to the private IP/port of the VM, distributing traffic across multiple VMs or services using load balancing rules.
The Azure load balancer is OSI layer 4 LB, which means it works on TCP and UDP, and acts as a single point of contact for client traffic.
Here are the key differences between External LB and Internal LB:
Definitions
To understand the different types of Azure Load Balancer, let's start by defining some key terms.
A web application typically requires the capability to make routing decisions for Layer 7 data, such as URL paths, inspect communication payloads, or handle TLS functionality.
An internet-facing application is publicly accessible from the internet, and application owners should apply restrictive access policies or protect the application with offerings like web application firewalls and DDoS protection.
If you have a globally distributed application, you may need a single, highly available control plane to route traffic to public endpoints across regions.
Here are the key definitions to keep in mind:
- Web application: Requires Layer 7 data routing, payload inspection, or TLS functionality.
- Internet-facing application: Publicly accessible from the internet, with restrictive access policies and protection needed.
- Global deployment: Requires a single, highly available control plane for routing traffic across regions.
- PaaS: Provides integrated load balancing within a region.
- Azure Kubernetes Service (AKS): Enables containerized application deployment and management.
- IaaS: Requires internal load balancing within a virtual network using Load Balancer.
- Application-layer processing: Special routing within a virtual network, such as path-based routing.
- Performance acceleration: Features that accelerate web access, such as CDNs or Anycast traffic acceleration.
Balancer
Azure Load Balancer comes in two main types: External LB and Internal LB. External LB is used for public-facing applications, distributing traffic from a public IP to a private IP on a VM.
External LB can distribute traffic across multiple VMs or services using load balancing rules. For instance, public web requests can be handled across multiple web servers. This is particularly useful for internet-facing applications that need to handle a large volume of traffic.
Internal LB, on the other hand, distributes traffic within a virtual network. It's used for applications that are not publicly accessible from the internet. This type of load balancer is ideal for IaaS applications that require internal load balancing within a virtual network.
Here are the key differences between External LB and Internal LB:
Both types of load balancers can be used to improve the availability and scalability of applications. By distributing traffic across multiple VMs or instances, you can ensure that your application remains available even if one instance becomes unavailable.
Application Gateway (APGW)
Application Gateway (APGW) is a layer 7 load balancer designed for web applications, allowing for smart traffic routing decisions based on HTTP request details. It can route requests to different server pools based on URL path or host headers.
Application Gateway is a regional Azure managed service controller that is highly scalable and available, fully managed by Azure. It supports TLS termination, cookie session-based affinity, and many other flexibilities.
One of the key features of Application Gateway is its ability to terminate SSL at scale, providing end-to-end SSL encryption. This is a significant advantage over traditional load balancers.
Application Gateway also offers advanced web traffic load balancing, robust security protections, and deep visibility. It's designed to assist with scaling and securing even the largest cloud web application deployments on Azure.
Here are some of the key features supported in the Application Gateway service:
- Secure Sockets Layer (SSL/TLS) termination
- Autoscaling
- Zone redundancy
- Static VIP
- Ingress Controller for AKS
- URL-based routing
- Multiple-site hosting
- Redirection
- Session affinity
- WebSocket and HTTP/2 traffic
- Connection draining
- Custom error pages
- Rewrite HTTP headers and URL
- Sizing
In comparison to Azure Load Balancer, Application Gateway operates at layer 7 (HTTP/HTTPS) instead of layer 4 (TCP/UDP), providing more advanced routing capabilities.
Global vs Regional
Azure Load Balancer Types offer two main approaches to distributing traffic: global and regional.
Global load-balancing services distribute traffic across regional back-ends, clouds, or hybrid on-premises services. These services support managing a single control plane responsible for globally routing end-user traffic to an available back-end. They often react to changes in service reliability or performance to maximize availability and performance.
Regional load-balancing services, on the other hand, distribute traffic within virtual networks across virtual machines (VMs) or zonal and zone-redundant service endpoints within a region.
Here's a quick comparison of the two:
Http(S) Vs. Non-Http(S)
Azure load balancers come in two main types: HTTP(S) and non-HTTP(S).
HTTP(S) load balancers are Layer 7 load balancers that only accept HTTP(S) traffic, making them ideal for web applications or other HTTP(S) endpoints. These services often feature SSL offload, web application firewall, path-based load balancing, and session affinity.
Non-HTTP(S) load balancers, on the other hand, are Layer 4 load balancers that can handle non-HTTP(S) traffic, primarily TCP or UDP services.
Here's a quick comparison of some Azure load balancing services:
Azure Traffic Manager and Azure Load Balancer can distribute HTTP(S) traffic, but they don't have specific features to route based on protocol data unit information higher than Layer 4. They both support HTTP(S) traffic, but only at Layer 4 functionality levels.
Traffic Manager
Azure Traffic Manager is a DNS-based load balancer that manages traffic distribution to the most relevant and suitable service endpoint. It leverages DNS to direct requests to the most suitable service.
Traffic Manager works with a different routing method that provides enhanced capabilities for DNS load balancers. This allows requests to be directed to the most suitable service by using various route criteria's.
The route criteria's include Priority, Weighted, Performance, Geographic, Multivalue, and Subnet modes. Each mode has its own specific use case and benefits.
Here are the main modes and their use cases:
By selecting the right mode, you can optimize the performance of your applications, increase efficiency, and improve security posture.
Choosing the Right Type
You have two types of Azure load balancers: External LB and Internal LB. External LB maps public IP and incoming traffic to the private IP/port of the VM, while Internal LB distributes traffic to resources inside a virtual network.
External LB is suitable for distributing traffic across multiple VMs or services, and can be used for public web requests. Internal LB, on the other hand, is ideal for distributing traffic to resources within a virtual network.
Here's a quick summary of the two types of Azure load balancers:
Decision Tree for Balance
Choosing the right type of load balancing solution can be overwhelming, but it doesn't have to be. By considering a few key factors, you can narrow down your options and find the best solution for your application.
Traffic type is a crucial consideration. Is your application a web HTTP(S) application, or is it a private application? This will help you determine which type of load balancing solution is best suited for your needs.
Availability is also a key factor. What's your service-level agreement? Are you looking for high availability or are you okay with some downtime?
Cost is another important consideration. In addition to the cost of the service itself, you'll also need to consider the operations cost for managing a solution built on that service.
Here are the key decision criteria to consider:
- Traffic type: web HTTP(S) application or private application?
- Global vs. regional: load balance within a single virtual network or across regions?
- Availability: what's the service-level agreement?
- Cost: consider both service and operations costs
- Features and limits: what capabilities are supported and what are the service limits?
Application Gateway Comparison
Application Gateway is designed to handle Layer 7 traffic, supporting HTTP and HTTPS protocols. It's perfect for web applications and APIs.
Operating at Layer 7, Application Gateway provides more advanced routing capabilities than Azure Load Balancer. It can route traffic based on URL path, host headers, and cookies.
Application Gateway offers advanced health checks, including HTTP and HTTPS checks, which is a significant improvement over Azure Load Balancer's basic TCP and HTTP checks.
SSL offloading is also available on Application Gateway, allowing for end-to-end encryption. This feature is not available on Azure Load Balancer.
A key benefit of Application Gateway is its built-in Web Application Firewall (WAF), which includes OWASP rulesets for added security. This feature is not available on Azure Load Balancer.
Application Gateway also supports automatic scaling based on load, whereas Azure Load Balancer requires manual scaling.
The table below summarizes the key differences between Application Gateway and Azure Load Balancer:
Azure Load Balancer Features
Azure Load Balancer Features are designed to handle various traffic scenarios. The Frontend IP Configuration is the point of contact for clients interacting with your Azure Load Balancer, and it can be configured with either a Public IP Address or a Private IP Address.
The Backend Pool consists of virtual machines or instances that serve incoming requests. Scaling for increased traffic volume is achieved by adding more instances to the backend pool, ensuring cost-effective operations.
Health Probes determine the health status of instances within the backend pool by assessing whether an instance is healthy and can receive incoming traffic. Load Balancer rules define how incoming traffic is distributed to instances within the backend pool, mapping a specific frontend IP configuration and port to multiple backend IP addresses and ports.
Here are some key features of Azure Load Balancer rules:
- Load Balancer rules handle inbound traffic.
- A Load Balancer rule for port 80 routes traffic from the frontend IP to port 80 on backend instances.
- A Load Balancer rule configured with ‘protocol – all and port – 0’ is termed a High Availability (HA) port rule, facilitating the load balancing of all TCP and UDP flows arriving on all ports of an internal Standard Load Balancer.
Balancer Components
Azure Load Balancer is made up of several key components that work together to distribute traffic and ensure high availability. The Frontend IP Configuration is the point of contact for clients interacting with your Azure Load Balancer, and it can be configured with either a Public IP Address or a Private IP Address.
A Frontend IP Configuration with a Public IP Address creates a public load balancer, while a Private IP Address results in an internal load balancer. The Backend Pool consists of virtual machines or instances in a virtual machine scale set responsible for serving incoming requests.
Health Probes play a crucial role in determining the health status of instances within the backend pool. They are configured during load balancer creation to assess whether an instance is healthy and can effectively receive incoming traffic.
Load Balancer rules define how incoming traffic is distributed to instances within the backend pool. These rules map a specific frontend IP configuration and port to multiple backend IP addresses and ports.
Here are the key components of Azure Load Balancer:
- Frontend IP Configuration
- Backend Pool
- Health Probes
- Load Balancer Rules
- High Availability Ports
- Inbound NAT Rules
- Outbound Rules
Security by Default
Azure Load Balancer takes security seriously, and it's built with security in mind from the ground up.
Standard Load Balancer is built on the Zero Trust network security model, which means it doesn't make any assumptions about the security of its surroundings.
Standard Load Balancer is part of your virtual network, which is private and isolated for security. This means that your resources are protected from unauthorized access.
Standard load balancers and standard public IP addresses are closed to inbound connections, unless network security groups (NSGs) open them. You use NSGs to explicitly permit allowed traffic.
If you don't have an NSG on a subnet or network interface card (NIC) of your virtual machine resource, traffic isn't allowed to reach the resource. To learn more about NSGs and how to apply them, see the article on Network Security Groups.
Basic Load Balancer, on the other hand, is open to the internet by default. This means you'll need to take extra steps to secure it.
Azure Load Balancer doesn't store customer data, so you don't have to worry about sensitive information being stored on the load balancer.
Pricing and SLA
The pricing for Azure Load Balancer is straightforward. The Basic Load Balancer is offered at no charge.
One of the benefits of the free Basic Load Balancer is that it has no Service Level Agreement (SLA). This means you don't have to worry about meeting specific uptime or performance requirements.
The lack of SLA on the free tier is a significant advantage for small projects or testing environments where you're not yet ready to commit to a paid service.
Frequently Asked Questions
What are the two load balancing methods supported by Azure?
Azure supports two load balancing methods: Global, which distributes traffic across regions, and Regional, which directs traffic within virtual networks across virtual machines or zonal service endpoints. Choose the method that best fits your application's needs.
Sources
- https://www.ccslearningacademy.com/azure-load-balancer-vs-application-gateway/
- https://www.cloudedge.co.il/news-resources/cloudedge-blog-news-resources-azure-load-balancers/
- https://learn.microsoft.com/en-us/azure/load-balancer/load-balancer-overview
- https://learn.microsoft.com/en-us/azure/architecture/guide/technology-choices/load-balancing-overview
- https://medium.com/@shyamsandeep28/azure-load-balancer-an-introduction-a536aa795f72
Featured Images: pexels.com