Core Scale & Availability
Distribute incoming traffic across multiple servers to improve availability and performance
Load balancing distributes network traffic across multiple servers to ensure no single server bears too much load. It improves application responsiveness, increases availability, and enables horizontal scaling.
Use load balancing when you need to handle high traffic volumes, ensure high availability, enable zero-downtime deployments, or scale horizontally by adding more servers.
High-performance scenarios like database connection pooling, game servers, or IoT device connections
# Layer 4 Load Balancer Configuration (HAProxy example)
frontend tcp_front
bind *:3306
mode tcp
default_backend mysql_servers
backend mysql_servers
mode tcp
balance leastconn
option tcp-check
server mysql1 10.0.1.10:3306 check
server mysql2 10.0.1.11:3306 check
server mysql3 10.0.1.12:3306 check
Web applications requiring intelligent routing, microservices architectures, API gateways, and content-based traffic distribution
# Layer 7 Load Balancer Configuration (NGINX example)
upstream api_v1 {
least_conn;
server api1.example.com:8080;
server api2.example.com:8080;
}
upstream api_v2 {
least_conn;
server api3.example.com:8080;
server api4.example.com:8080;
}
server {
listen 443 ssl;
server_name api.example.com;
# Route based on URL path
location /v1/ {
proxy_pass http://api_v1;
}
location /v2/ {
proxy_pass http://api_v2;
}
# Health check endpoint
location /health {
access_log off;
return 200 "healthy\n";
}
}
Global applications serving users worldwide, multi-region disaster recovery, and compliance with geographic data regulations
# GSLB Configuration (Conceptual)
# DNS-based global load balancing
# Route 53 Geolocation Routing Policy
resource "aws_route53_record" "api_us" {
zone_id = aws_route53_zone.main.zone_id
name = "api.example.com"
type = "A"
geolocation_routing_policy {
continent = "NA"
}
alias {
name = aws_lb.us_east.dns_name
zone_id = aws_lb.us_east.zone_id
}
health_check_id = aws_route53_health_check.us.id
}
resource "aws_route53_record" "api_eu" {
zone_id = aws_route53_zone.main.zone_id
name = "api.example.com"
type = "A"
geolocation_routing_policy {
continent = "EU"
}
alias {
name = aws_lb.eu_west.dns_name
zone_id = aws_lb.eu_west.zone_id
}
health_check_id = aws_route53_health_check.eu.id
}
Uses AWS ELB and custom Zuul gateway for routing 200+ million requests per day
Petabytes of traffic, millions of concurrent streamsMulti-region load balancing with automatic failover for ride matching service
Millions of rides per day across 70+ countriesGlobal anycast network with load balancing across 300+ data centers
Handles 20%+ of all internet trafficHorizontal - Add more backend servers
Medium - Requires proper configuration and monitoring
Medium - Load balancer costs + increased infrastructure