본문 바로가기
CS

로드 밸런싱

by L_SU 2022. 11. 20.

서사

어떠한 서비스를 시작해  그 서비스의 이용자가 늘고 규모가 커지게 되면 어느 순간 기존의 서버만으로 벅찬 순간이 찾아오게 된다. 이 때의 해결책으로 크게 두가지고 나뉘게 된다.

  • Scale-up : 기존 서버 성능을 확장하는 방식
  • Scale-out : 기존 서버와 동일 or 낮은 성능의 서버를 증설하는 방식

이 때 SCale-out 방식을 선택하게 된다면,

여러 대의 서버로 트래픽을 균등하게 분산해주는 로드 밸런싱이 반드시 필요하게 됨

 

로드 밸런싱

- 서버가 처리해야할 업무 or 요청을 여러 대의 서버로 나누어 처리하는 것을 의미

 (한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리하기 위한 목적)

 

 

로드 밸런싱 기법

  • 라운드로빈 방식(Round Robin Method)
    - 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식
    - 클라이언트의 요청을 순서대로 분배하기 때문에 여러 대의 서버가 동일한 스펙 보유
    - 서버와의 연결이 오래 지속되지 않는 경우에 적합
  • 가중 라운드로빈 방식(Weighted Round Robin Method)
    - 각 서버의 가중치를 매기고, 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분하는 방식
    - 주로 서버의 트래픽 처리 능력이 상이한 경우 사용됨

  • IP 해시 방식(IP Hash Method)
    - 클라이언트 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
    - 사용자가 항상 동일한 서버로 연결되는 것을 보장
      (사용자의 IP를 해싱해 로드를 분배하기 때문)

  • 최소 연결 방식(Least Connection Method)
    - 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽 분배
    - 자주 세션이 길어지거나 서버에 분배된 트래픽들이 일정하지 않을 때 적합
  • 최소 응답 시간 방식(Least Response Time Method)
    - 가장 적은 연결 상태와 가장짧은 응답 시간을 보이는 서버에 우선적으로 로드를 배분하는 방식
    - 서버의 현재 연결 상태와 응답시간을 모두 고려해 트래픽을 배분

'CS' 카테고리의 다른 글

ep 05-1. index  (0) 2022.12.02
ep 04. Blocking/Non-blocking  (0) 2022.11.28
TLS/SSL HandShake  (0) 2022.11.20
HTTP GET vs. POST  (0) 2022.11.13
ep 02-2. HTTP vs. HTTPS  (0) 2022.11.13