로드 밸런싱이란?

Load Balancer

  • 서버의 부하를 분산시켜주는 장치 또는 기술
  • 보통 서버 상단 네트워크에 위치하여 서버 한 대에 집중되지 않게 트래픽을 관리하여 과부화가 되는 것을 방지해줌
  • 서버의 부하를 분산시켜줄 뿐만 아니라 트래픽 자체를 분산해주기도 함

 

Load Balancer 기능

Health Check


지정된 포트, 프로토콜 및 ping 경로를 사용하여 지정된 시간 마다 모든 등록 대상에 상태 확인 요청을 전송한다. 즉, 등록된 대상들의 상태(열려있는지)를 지속적으로 확인해준다.

 

알고리즘에 따른 분산 처리


알고리즘을 이용하여 트래픽 분산 처리

 

NAT(Network Address Translation)


대상 IP 주소를 변경하여 사용자와 서버 간의 트래픽을 라우팅한다. 쉽게 말해, 원래의 IP 를 다른 IP 로 보이게 처리해준다.

 

DSR


  • 클라이언트 → 로드밸런스 → 서버 → 로드밸런스 → 클라이언트로 가는 네트워크 트래픽 순서가 있는데
  • 클라이언트 → 로드밸런스 → 서버 → 클라이언트로 보내줌 (한 단계 줄여서 트래픽 부하 줄여줌)

 

Load Balancing 알고리즘

Least Connection 알고리즘


현재 매핑되어 있는 커넥션이 가장 적은 서버로 세션을 연결해주는 방식 (가장 많이 사하는 방식)

ex) A 서버, B 서버 - 유저 가, 나, 다

  1. A 서버에 가 접속
  2. 커넥션 적은 B 서버에 나 연결해줌
  3. A 서버에 다 접속 ....
  • 문제점 : 세션 데이터 관리로 인한 문제점이 발생할 수 있다.

 

Round Robin (라운드 로빈) 알고리즘


들어오는 트래픽을 서버 순서대로 배치하는 방식

연결된 세션이 비교적 오래 사용되지 않는 경우에 채택하는 것이 좋음

ex) A 서버, B 서버 - 유저 가, 나, 다

  1. A 서버 첫 번째 서버이므로 유저 가 배치
  2. B 서버 두 번째 서버이므로 유저 나 배치
  3. B 서버에서 가 유저 세션 끊어짐
  4. (순차적으로 쌓이기 때문에) A 서버로 다 유저 배치
  • Least Connection 과 다르게 무조건 순차적으로 서버 연결해줌

 

Hash(해쉬) 알고리즘


특정 기준을 잡아 특정 서버에 매핑하여 고정적으로 트래픽을 분산해주는 방식

일반적으로 사용되는 기준은 출발지(클라이언트)의 IP가 됨

ex) A 서버, B 서버, C 서버 - 유저 가, 나, 다

  1. 유저 가 는 A 서버에 고정적으로 트래픽 사용
  2. 유저 나 는 B 서버에 고정적으로 트래픽 사용
  3. 유저 다 는 C 서버에 고정적으로 트래픽 사용

참고

로드밸런싱(Load Balancing)이란? [ 인프라 네트워크 (Infrastructure Network) ] - YouTube

반응형