본문 바로가기

CS(Computer Science)

CS Study 3주차 : 로드 밸런싱

로드 밸런싱

  • 서버가 처리해야 할 업무 혹은 요청(Load)을 여러 대의 서버로 나누어(Balancing) 처리하는 것
  • 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 기기의 서버가 최적의 퍼포먼스를 보일 수 있도록 하는 것이 목적
  • 기존의 서버와 동일하거나 낮은 성능의 서버를 증설하는 Scale-out 방식에 반드시 필요
    → Scale-out 방식을 통해 증가한 트래픽을 여러 대의 서버로 균등하게 분산해 주기 위해서
    • scale-out : 비슷한 성능의 서버를 여러대 증설하는 것(수평적 확장)

 

로드 밸런서 종류

로드 밸런서 - 클라이언트와 서버 사이에 위치해, 서버의 부하를 분산시키는 하드웨어 또는 소프트웨어

  • 로드 밸런서는 OSI 7계층을 기준으로 부하를 어떻게 분산할지에 따라 종류가 나뉜다.
  • 주로 L4와 L7 사용

L2

  • OSI 2계층에서 MAC 주소를 바탕으로 로드 밸런싱

L3

  • OSI 3계층에서 IP 주소를 바탕으로 로드 밸런싱

L4

  • OSI 4계층에서 TCP/UDP 포트 번호를 바탕으로 로드 밸런싱
  • 한 대의 서버에 각기 다른 포트 번호를 부여하여 다수의 서버 프로그램을 운영하는 경우라면 최소 L4 로드 밸런서 이상을 사용

L7

  • OSI 7계층에서 HTTP/HTTPS 헤더, 쿠키 등과 같은 사용자의 요청을 기준으로 로드 밸런싱 가능
  • 서버의 응답까지도 알고 분석할 수 있어서 서버들로부터 필요한 정보를 응답 받아 클라의 요청을 전달하기 전에 서버의 상태를 파악한 후 로드밸런싱을 진행 가능

 

 

 

 

로드 밸런싱 기법

라운드 로빈 방식(Round Robin Method)

  • 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식
  • 클라이언트의 요청을 순서대로 분배하기 때문에 여러 대의 서버가 동일한 스펙을 가지고 있음
  • 서버와의 연결이 오래 지속되지 않는 경우에 활용하기 적합함

 

가중 라운드 로빈 방식(Weighted Round Robin Method)

  • 각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분하는 방식
  • 주로 서버의 트래픽 처리 능력이 상이한 경우 사용되는 부하 분산 방식

 

IP 해시 방식(IP Hash Method)

  • 클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
  • 사용자의 IP를 해싱해 로드를 분배하기 때문에 사용하자 항상 동일한 서버로 연결되는 것을 보장
    • 해싱(Hashing) : 임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑하는것, 또는 그러한 함수

 

최소 연결 방식(Least Connection Method)

  • 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 배분하는 방식
  • 자주 세션이 길이지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우에 적합한 방식

 

최소 응답 시간 방식(Least Response Time Method)

  • 서버의 현재 연결 상태와 응답 시간을 모두 고려하여 트래픽을 배분하는 방식
  • 가장 적은 연결 상태와 가장 짧은 응답 시간을 보이는 서버에 우선적으로 로드를 배분
    • 응답 시간(Response Time) : 서버에 요청을 보내고 최초 응답을 받을 때까지 소요되는 시간