Network & Server Factory

개인 공부 기록

IT 용어 & 팁

[Network] 로드밸런서란? Scale-up과 Scale-out, 부하 분산 알고리즘 정리

1nfra 2020. 5. 5. 23:26
로드밸런서는 클라이언트와 서버 사이에서 요청을 여러 서버로 나눠 한 서버에 부하가 몰리지 않게 합니다. 서버를 늘리는 Scale-out 구조에서는 반드시 필요하며, 분배 방식은 알고리즘으로 정합니다.

1. 로드밸런서란

로드밸런서는 서버의 부하(로드)를 분산(밸런싱)하는 장비나 소프트웨어입니다. 클라이언트와 서버 사이에 위치해 들어오는 트래픽을 여러 서버로 나눠 보냅니다.

2. Scale-up과 Scale-out

트래픽이 늘었을 때 대응하는 방법은 크게 두 가지입니다.

scale-up & scale-out

Scale-up과 Scale-out 비교

방식 내용 예시 로드밸런서
Scale-up 서버 한 대의 성능을 높입니다. CPU를 i7에서 i9로 교체 필요 없음
Scale-out 같은 역할의 서버를 여러 대 둡니다. 웹 서버 1대 → 3대 필요

 

Scale-out은 서버가 여러 대이므로 요청을 어느 서버로 보낼지 정해 주는 로드밸런서가 반드시 있어야 합니다.

3. 부하 분산 알고리즘

알고리즘 동작 적합한 경우
라운드 로빈(Round Robin) 요청을 서버에 순서대로 돌아가며 배정합니다. 서버 성능이 비슷하고 연결이 짧게 끝나는 경우
가중 라운드 로빈(Weighted Round Robin) 서버마다 가중치를 주고, 가중치 비율만큼 요청을 더 많이 배정합니다. 서버마다 처리 능력이 다른 경우
IP 해시(IP Hash) 클라이언트 IP를 해싱해 서버를 정합니다. 같은 IP는 항상 같은 서버로 갑니다. 세션을 한 서버에 유지해야 하는 경우
최소 연결(Least Connection) 요청 시점에 연결 수가 가장 적은 서버로 보냅니다. 세션이 길거나 요청마다 부하 차이가 큰 경우
최소 응답 시간(Least Response Time) 연결 수와 응답 시간을 함께 보고 가장 여유 있는 서버로 보냅니다. 서버 응답 속도 차이가 큰 경우

4. 정리

  • 로드밸런서는 트래픽을 여러 서버로 나눠 부하 집중을 막습니다.
  • Scale-up은 서버 성능을 올리고, Scale-out은 서버 수를 늘리며 로드밸런서가 필요합니다.
  • 알고리즘은 서버 성능 차이, 세션 유지 여부, 연결 길이에 맞춰 고릅니다.
728x90
서울
--:--:--
-전체 글
-카테고리
오늘 방문