Load Balancer
⚖️ Load Balancer (로드 밸런서) 구축 가이드 🚀
1️⃣ Load Balancer란?
로드 밸런서(Load Balancer) 는 여러 서버로 트래픽을 분산하여 부하를 분산시키고 가용성을 높이는 기술입니다.
웹 서비스, 데이터베이스, API 서버 등 다양한 환경에서 사용됩니다.
✅ 로드 밸런서의 주요 기능
- 트래픽 분산 → 서버 부하 방지 및 성능 향상
- 고가용성(HA) → 장애 발생 시 자동으로 다른 서버로 트래픽 전달
- SSL 종료(Offloading) → HTTPS 트래픽의 암호화/복호화 부담을 감소
- 세션 유지(Sticky Session) → 특정 사용자가 동일한 서버로 접속 유지
2️⃣ 로드 밸런서 유형
유형 | 설명 | 대표 솔루션 |
---|---|---|
L4 (Layer 4) LB | IP 및 포트 기반 트래픽 분산 | HAProxy, Nginx, LVS |
L7 (Layer 7) LB | HTTP/HTTPS 기반 트래픽 분산 | Nginx, Traefik, Envoy |
DNS 기반 LB | 도메인 수준 트래픽 분산 | Route 53, Cloudflare |
클라우드 LB | 클라우드 제공 로드 밸런서 | AWS ALB, GCP LB |
3️⃣ 로드 밸런서 솔루션 비교
솔루션 | 특징 | 추천 환경 |
---|---|---|
Nginx | L7 지원, SSL 종료 가능 | 웹 서비스 |
HAProxy | 고성능 L4/L7 지원 | API 서버, 데이터베이스 |
LVS (IPVS) | 커널 기반 L4 LB | 대규모 트래픽 환경 |
Traefik | 컨테이너 친화적 | Kubernetes, Docker |
Envoy | 마이크로서비스 아키텍처 | 서비스 메시 |
4️⃣ HAProxy 기반 L4 로드 밸런서 구축 (Ubuntu 22.04)
🔹 1. HAProxy 설치
sudo apt update
sudo apt install haproxy -y
🔹 2. HAProxy 설정 (/etc/haproxy/haproxy.cfg
)
frontend http_front
bind *:80
default_backend web_servers
backend web_servers
balance roundrobin
server web1 192.168.1.10:80 check
server web2 192.168.1.11:80 check
🔹 3. HAProxy 재시작 및 확인
sudo systemctl restart haproxy
sudo systemctl enable haproxy
haproxy -c -f /etc/haproxy/haproxy.cfg
5️⃣ Nginx 기반 L7 로드 밸런서 구축
🔹 1. Nginx 설치
sudo apt update
sudo apt install nginx -y
🔹 2. Nginx 설정 (/etc/nginx/nginx.conf
)
http {
upstream backend {
server 192.168.1.10;
server 192.168.1.11;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}
🔹 3. Nginx 재시작 및 확인
sudo systemctl restart nginx
sudo systemctl enable nginx
6️⃣ 클라우드 로드 밸런서 설정 (AWS ALB 예시)
🔹 1. AWS ALB 생성
1️⃣ AWS 콘솔 → EC2 → 로드 밸런서 → 새 ALB 생성
2️⃣ 타겟 그룹 추가 (서버 리스트 등록)
3️⃣ 리스너 설정 (HTTP/HTTPS 트래픽 처리)
4️⃣ 보안 그룹 및 라우팅 설정 후 생성
🔹 2. AWS ALB 상태 확인
aws elbv2 describe-load-balancers
7️⃣ 로드 밸런서 상태 확인 및 문제 해결
✅ HAProxy 상태 확인
sudo systemctl status haproxy
haproxy -c -f /etc/haproxy/haproxy.cfg
✅ Nginx 상태 확인
sudo systemctl status nginx
nginx -t
✅ 활성화된 백엔드 서버 확인 (HAProxy)
echo "show stat" | sudo socat /var/lib/haproxy/stats stdio
✅ 로드 밸런서 포트 확인
sudo netstat -tulnp | grep LISTEN
🔟 결론 🚀
✅ 로드 밸런서는 서비스의 가용성과 성능을 높이는 핵심 기술
✅ L4(LVS, HAProxy) / L7(Nginx, Traefik) 등 환경에 맞는 솔루션 선택
✅ 클라우드 환경에서는 AWS ALB, GCP LB 활용 가능
📚 추가 자료
1️⃣ HAProxy 공식 문서
2️⃣ Nginx 로드 밸런싱
3️⃣ AWS ALB 개요
마지막 수정일자