- 부하분산이라고도 하며, 컴퓨터 네트워크 기술의 일종
- 웹 서비스에선 트래픽을 여러 서버로 분산 처리하는 것을 의미
- 로드 밸런싱을 처리하는 기기를 Load Balancer라고도 함
- 분류는 여러가지로 할 수 있긴 한데, 기본적으론 장비를 업그레이드 하는 Scale-up 방식, 장비를 여러개를 두는 Scale-out 방식이 있음
- 따로 분류를 하자면 2가지로 L4, L7 로드밸런싱으로 구분할수 있음
Layer 4 Load Balancing
- 유저가 도메인을 통해 로드밸런서에 접속, 여러 웹서버 중 하나로 포워딩하는 방식
- 일반적으로 IP 주소 또는 포트를 기반으로 트래픽을 나누고, 스트리밍 관련 서비스에선 사용할 수 없다
Layer 7 Load Balancing
- L4가 웹서버를 선택해서 트래픽을 나눈 반면, L7은 어플리케이션 레이어에서 로드밸런싱을 함
- IP, 포트 외 URL, 헤더, 쿠키 등을 기반으로도 트래픽을 분산시킬 수 있다
- 예를 들면 기존 웹 페이지 서버가 있고 API용 서버가 따로 있어서, 페이지 요청은 웹 서버로, API 요청은 API 서버로 나누는 방식
그럼 LoadBalancer는 서버를 어떻게 선택할 수 있을까?
- Round Robin : 요청이 들어오는대로 균등하게 요청을 분배, 가장 단순한 방식
- Weighted Round Robin Scheduling : 서버의 가중치에 따라 요청을 분배하는 방식, 이는 사용자가 지정할 수도 있고 LoadBalancer가 동적으로 조정할 수도 있음
- Least Connection : 서버에 연결된 커넥션 갯수를 확인하여 가장 적은 서버들로 요청을 분배
- Fastest Response Time : 서버 요청에 대한 응답 시간이 빠른 서버를 확인하여 요청을 분배
- Source Hash Scheduling : 요청 IP를 해싱하여 그 결과값에 따라 서버로 요청을 분배, 이는 같은 IP로 들어오면 같은 서버로 연결되는 보장을 가질 수 있음
이걸 일반인에게 설명하라고 한다면?