LoadBalancer
⚖️ LoadBalancer란?
정의
LoadBalancer는 들어오는 요청을 여러 서버로 분산하여 처리하는 장치 또는 소프트웨어이다. 특정 서버에 부하가 몰리지 않도록 나눠 주고, 서비스 가용성을 높이는 데 사용한다.
🧭 역할
- 요청을 여러 서버로 분산한다.
- 특정 서버 장애 시 다른 서버로 우회한다.
- 상태가 좋은 서버만 선택하도록 도울 수 있다.
- 서비스 확장성을 높인다.
🧱 주요 기능
- 트래픽 분산
- 헬스 체크
- 장애 서버 제외
- 세션 유지
- SSL 종료
- 라우팅 정책 적용
포인트
로드밸런서는 단순히 요청을 나누는 것만이 아니라 정상 서버만 골라 보내는 운영 장치이기도 하다.
🔀 분산 방식
Round Robin
- 요청을 순서대로 번갈아 분배한다.
Least Connection
- 현재 연결 수가 가장 적은 서버로 보낸다.
IP Hash
- 클라이언트 IP를 기준으로 같은 서버로 보내는 방식이다.
Weighted 방식
- 서버 성능에 따라 가중치를 다르게 둔다.
🧩 계층 기준
L4 LoadBalancer
- TCP/UDP 계층에서 분산한다.
- 빠르고 단순하다.
L7 LoadBalancer
- HTTP 같은 애플리케이션 계층에서 분산한다.
- 경로, 헤더, 쿠키 기준 라우팅이 가능하다.
구분
L4는 전송 계층 중심이고, L7은 애플리케이션 계층 중심이다.
🛠️ 실무에서 고려할 점
- 헬스 체크 주기를 어떻게 둘지
- 세션을 유지할지 여부
- SSL 종료를 어디서 할지
- 장애 서버를 얼마나 빨리 제외할지
- 라우팅 규칙을 어디까지 세밀하게 둘지
✅ 활용 예시
- 웹 서버 앞단 요청 분산
- WAS 다중화
- 무중단 운영
- 서비스 확장
- 장애 복구
⚠️ 주의할 점
- 로드밸런서가 있어도 애플리케이션 자체 병목은 해결되지 않는다.
- 세션 공유가 없으면 사용자 경험이 깨질 수 있다.
- 헬스 체크가 부정확하면 정상 서버를 잘못 제외할 수 있다.
[!important] 정리 LoadBalancer는 성능과 가용성을 함께 고려하는 분산 지점이다. 어떤 방식으로 분산할지보다 먼저 서비스의 특성과 세션 구조를 이해해야 한다.
댓글남기기