로드 밸런싱
- 로드 밸런서는 서비스용 주소를 가진 가상 서버로 동작
- 클라이언트와 다중화된 각각의 실제 서버를 중계하는 역할 수행
- 전 )
- 후 )
- 목적 )
- 서버 자원 사용의 최적화
- 데이터 처리량의 증가
- 클라이언트와 서버 간 응답 속도 감소
- 특정 서버의 과부화 방지
- 안전성, 가용성 극대화
알고리즘
1. 정적 부하 분산(Static Load Balancing)
1) 라운드 로빈(Round Robin)
: 입력받은 요청을 각각의 서버에 순차적으로 할당하는 방식
- 클라이언트의 요청을 순서대로 분배하기 때문에 알고리즘이 단순하고 각 서버가 트래픽을 골고루 나눠서 처리함
- 각 서버의 처리량이 비슷할 경우 운용
2) IP Hash
: 클라이언트의 IP 주소를 특정 서버에 매핑해 특정 IP에서 전달받은 요청을 항상 매핑된 서버로 보내는 방식
- 클라이언트는 항상 동일한 서버로 접속하게 됨
2. 동적 부하 분산(Dynamic Load Balancing)
1) 가중치 라운드 로빈(Weight Round Robin)
: 각 서버별로 가중치를 설정하고 가중치가 가장 높은 서버에 트래픽을 우선 배정함
- 클라이언트 입력이 100이고 서버 A, B, C의 가중치가 2, 3, 5라고 가정했을 때 각 서버에는 20, 30, 50의 입력이 Round Robin 방식으로 전달됨
- 각 서버의 처리량이 상이할 경우 운용
로드 밸런서의 종류
1. L4 로드 밸런싱
- IP, MAC, PORT 등 OSI 계층 중 4계층(전송 계층) 이하 프로토콜의 헤더를 기반으로 부하를 분산
2. L7 로드 밸런싱
- L4의 기능 + HTTP, FTP, SMTP 등 OSI 7계층 중 7계층(애플리케이션 층)이하 프로토콜 헤더를 기반으로 부하를 분산
3. 주의할 점
- 로드밸런서 또한 일종의 장치이기 때문에 다중화 등 장애 대비책을 마련해야 함
L4 vs L7
- 공통점 )
- 도달한 패킷을 적절한 목적지로 보내줌
- 로드밸런싱 기능을 수행
- 차이점 )
- TCP 프로토콜
- L4 스위치는 중계된 서버와 클라이언트 간 3-way handshake을 통해 하나의 세션을 생성
- L7 스위치는 클라이언트와 스위치, 스위치와 서버 간 3-way handshake을 통해 각각의 TCP 세션을 생성
- L7는 패킷, 페이로드의 분석을 통해 패킷 필터링 기능을 수행할 수 있음
- Mega Proxy Problem : L4 스위치에서 IP Hash 방식으로 부하를 분산할 경우 특정 서버에 요청이 집중되는 현상이 발생할 수 있음
'네트워크' 카테고리의 다른 글
9. HTTPS (0) | 2025.02.28 |
---|---|
8. HTTP 진화 과정 (0) | 2025.02.21 |
6. 네트워크 기기 (0) | 2025.02.21 |
5. DNS + 웹 통신 흐름 (0) | 2025.02.21 |
4. TCP & UDP (0) | 2025.02.21 |