네트워크Medium#406
Load Balancer(로드 밸런서)의 역할과 작동 방식에 대해 설명해주세요.
#네트워크#LoadBalancer#트래픽#가용성
답변 포인트
트래픽 분산, 장애 대응, 헬스 체크 관점에서 역할을 정리해보세요.
정답 및 해설
빠른 요약
로드 밸런서는 클라이언트로부터 들어오는 네트워크 트래픽을 여러 대의 서버로 분산시켜 주는 장치 또는 소프트웨어입니다. ## 주요 역할 1.
로드 밸런서는 클라이언트로부터 들어오는 네트워크 트래픽을 여러 대의 서버로 분산시켜 주는 장치 또는 소프트웨어입니다.
주요 역할
- 부하 분산 (Load Distribution): 트래픽을 여러 서버로 골고루 나누어 특정 서버에 과부하가 걸리는 것을 방지합니다.
- 가용성 및 신뢰성 향상 (Availability): 특정 서버에 장애가 발생하면, 정상적인 다른 서버로 트래픽을 우회시켜 서비스 중단을 막습니다. (Health Check 활용)
- 확장성 지원 (Scalability): 트래픽 증가 시 서버를 추가(Scale-out)하면 로드 밸런서가 이를 즉시 인지하여 트래픽을 분산합니다.
- 보안 및 SSL 오프로딩: SSL 인증서 처리를 로드 밸런서에서 대신 수행하여 서버의 부담을 줄이거나, 침입 탐지 기능을 수행할 수 있습니다.
주요 알고리즘 (작동 방식)
로드 밸런서는 어떤 서버로 보낼지 결정하기 위해 다양한 알고리즘을 사용합니다.
- Round Robin: 서버 목록을 순차적으로 돌아가며 할당합니다. (가장 단순)
- Weighted Round Robin: 서버의 사양(Weight)에 따라 할당 비중을 다르게 합니다. (성능 좋은 서버에 더 많이 할당)
- Least Connections: 현재 연결(Connection) 수가 가장 적은 서버에 우선 할당합니다.
- IP Hash: 클라이언트의 IP 주소를 해싱하여 특정 클라이언트는 항상 동일한 서버로 연결되게 합니다. (세션 유지에 유리)
계층별 분류
- L4 로드 밸런서: 전송 계층(Transport Layer)에서 동작. IP 주소와 포트 번호를 기준으로 트래픽을 분산합니다. (TCP/UDP)
- L7 로드 밸런서: 응용 계층(Application Layer)에서 동작. HTTP 헤더, URL, 쿠키 등 애플리케이션 데이터를 분석하여 더 정교하게 분산합니다. (HTTP/HTTPS)