로드 밸런싱(Load Balancing)은 여러 서버(또는 노드)에 트래픽(또는 작업 부하)을 고르게 분산하여 서버 과부하를 방지하고 서비스 가용성과 성능을 향상시키는 기술입니다. 클라이언트 요청이 급증하더라도 특정 서버에 부하가 집중되지 않도록 하여 신뢰성과 확장성을 확보할 수 있습니다.
성능 향상
- 여러 서버에 작업을 고르게 분산하여 각 서버의 처리 부담을 완화하고 전체 응답 속도를 개선.
고가용성(HA, High Availability)
- 특정 서버에 장애가 발생하더라도, 트래픽을 자동으로 다른 서버로 분산하여 서비스 중단 시간을 최소화.
확장성(Scalability)
- 트래픽이 증가하면 서버를 추가하여 쉽게 확장 가능. 로드 밸런서는 자동으로 새로운 서버로 트래픽을 분산.
유연성
- 특정 서버(또는 노드)를 점검하거나 업데이트할 때, 트래픽을 다른 서버로 우회함으로써 무중단 배포가 가능.
클라이언트 요청
- 사용자가 웹사이트나 API에 접속하려고 할 때, DNS 혹은 로드 밸런서의 IP로 요청을 보냄.
로드 밸런서 확인
- 로드 밸런서는 현재 어떤 서버가 가용한지, 어떤 서버가 과부하 상태인지 확인.
서버 선택 및 요청 전달
- 로드 밸런서는 특정 알고리즘(예: 라운드 로빈, 가중치 기반 등)을 사용해 서버를 선택한 뒤, 클라이언트의 요청을 해당 서버로 전달.
서버 응답
- 선택된 서버는 요청을 처리하고, 결과를 로드 밸런서를 통해 클라이언트에게 반환.
Round Robin (라운드 로빈)
- 트래픽을 순차적으로 각 서버에 분산.
- 예: Server1 → Server2 → Server3 → Server1 → …
Weighted Round Robin
- 각 서버에 가중치(Weight)를 부여하여, 고성능 서버에 더 많은 트래픽을 분산.
Least Connections
- 현재 접속 중인 세션(연결 수)이 가장 적은 서버로 트래픽을 보냄.
IP Hash
- 클라이언트 IP를 해시하여 특정 서버로 라우팅. 같은 클라이언트 IP는 항상 동일한 서버로 연결될 가능성이 높음.
Least Response Time / CPU 사용량 기반
- 서버의 실시간 상태(응답 시간, CPU 사용량 등)에 따라 트래픽 분산.
하드웨어 로드 밸런서
- F5, Citrix NetScaler와 같은 전문 네트워크 장비. 성능이 뛰어나지만 비용이 높음.
소프트웨어 로드 밸런서
- Nginx, HAProxy, Envoy 등. 일반 서버나 클라우드 환경에서 실행 가능하며, 설정이 유연.
클라우드 로드 밸런서
- AWS ELB, GCP Load Balancing, Azure Load Balancer 등. 클라우드에서 제공하는 매니지드 로드 밸런싱 서비스.
L4 (Layer 4) 로드 밸런싱
- OSI 7계층 중 전송 계층(TCP/UDP) 기반으로 패킷을 라우팅.
- IP, 포트 정보만 확인하고 트래픽 분산.
L7 (Layer 7) 로드 밸런싱
- 애플리케이션 계층에서 동작. HTTP 헤더, 쿠키, URL 경로 등을 분석해 더 세밀한 라우팅 가능.
- 예: /images 요청은 이미지 서버로, /videos 요청은 동영상 서버로 분산.
http {
upstream backend_servers {
server backend1.example.com weight=3;
server backend2.example.com weight=2;
server backend3.example.com weight=1;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend_servers;
}
}
}
- upstream 블록에서 서버 목록과 가중치를 설정.
- proxy_pass로 클라이언트 요청을 여러 서버로 분산.
- ALB(Application Load Balancer), NLB(Network Load Balancer) 중 선택.
- ALB는 L7 레벨에서 HTTP 헤더 분석 가능.
- NLB는 L4 레벨에서 TCP/UDP 트래픽 분산.
헬스 체크(Health Check)
- 서버의 상태를 주기적으로 확인하여 장애 서버를 자동으로 트래픽 대상에서 제외.
이중화 구성
- 로드 밸런서가 단일 장애 지점이 되지 않도록 액티브-액티브나 액티브-스탠바이로 이중화.
보안 설정
- SSL/TLS 종료, 방화벽, WAF(Web Application Firewall) 연동 등을 고려.
모니터링
- 서버 CPU, 메모리, 네트워크, 응답 시간 등을 모니터링하여 균등 분산 여부 확인.
오토스케일링
- 클라우드 환경에서는 서버 인스턴스를 자동으로 늘리고 줄이면서 동적으로 부하를 처리.
로드 밸런싱은 여러 서버 간 트래픽 분산을 통해 성능, 가용성, 확장성을 높이는 핵심 기술입니다. 트래픽 패턴, 비용, 보안, 유지보수 편의성 등을 고려하여 적절한 로드 밸런서(하드웨어/소프트웨어/클라우드)와 알고리즘(L4, L7 등)을 선택하는 것이 중요합니다.