로드 밸런싱이란?
- 로드(트래픽) + 밸런싱(균형을 맞추다)
- 로드 밸런서를 두고 서버가 처리해야 할 요청을 여러 대의 서버로 나누어 보내 분산 처리하는 것
- 고가용성(HA)을 보장할 수 있는 좋은 방법
- 수평 확장 방법
수직 확장(Vertical scale up) : 서버의 성능을 높임. 한계가 있음
수평 확장(Horizontal scale out) : 서버를 여러개를 두고 분산 처리
로드 밸런싱 종류
OSI 7계층에 따라 나뉜다
- L4(전송) : IP 주소와 포트 번호 부하 분산 가능
- L7(응용) : URL 또는 HTTP 헤더에서 부하 분산 가능
로드 밸런싱 구현 방식
- SW : 로직을 구현해서 트래픽을 분산
- HW : 서버를 물리적인 방법으로 묶음
- L4 스위치, L7 스위치
- 비싸지만 안전성이 높음(Reliable), 보안성이 좋음
로드 밸런싱 알고리즘
- 라운드 로빈(RR) : 순차적으로 하나씩 차례로 보내기
- 랜덤 선택 : 무작위로 선택. 간단하지만 평균적으로 골고루 분배됨
- Least Connection : 서버가 LB에게 자신의 부하량을 보내고, 그 값에 따라 분배
- Ratio : 여러 서버들의 각 성능을 고려해 weight를 주고 비율에 따라 분배
로드 밸런서 마스터-슬레이브
서버를 여러 개 두고 분산 처리해도 LB가 죽으면 서비스 이용이 불가능하다. (SPOF)
- Single Point of Failure: 특정 포인트에서 Failure이 발생했을 때, 시스템 전체가 다운되는 현상
따라서, LB를 여러 개를 두고 마스터-슬레이브 방식으로 구축해서 마스터가 항상 일을 하고, 여분의 슬레이브 LB는 대기한다.
출처: 코더엑스독스 youtube