Skip to main content

로드 밸런싱

로드 밸런싱 (Load Balancing)

서비스 제공 초기 단계라면 적은 수의 클라이언트로 인해 서버 한 대로 요청에 응답하는 것이 가능하다. 하지만 서비스 규모가 커짐에 따라 클라이언트 수가 늘어나게 되면 자연스레 대량의 트래픽이 발생하게 된다. 이처럼 대량의 트래픽을 한 곳의 서버가 아닌 여러 곳의 서버로 분산해주는 기술이 로드 밸런싱이다.

tip

증가한 트래픽에 대처할 수 있는 방법은 크게 2가지가 있다.

  1. Scale-up: 서버 자체의 성능을 확장
  2. Scale-out: 서버의 수를 증설, 이는 곧 로드 밸런싱이 필요함.

로드 밸런싱 알고리즘

  • 라운드로빈 방식 (Round Robin Method)
    • 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식
    • 클라이언트의 요청을 순서대로 분배하기 때문에 여러 대의 서버가 동일한 스펙을 갖고 있고, 서버와의 연결(세션)이 오래 지속되지 않는 경우에 활용하기 적합
  • 가중 라운드로빈 방식 (Weighted Round Robin Method)
    • 각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분하는 방식
    • 주로 서버의 트래픽 처리 능력이 상이한 경우 사용되는 방식
      • A서버의 가중치가 5이고, B서버의 가중치가 2라면, 로드밸런서는 A서버에 5개 B서버에 2개의 요청을 전달한다.
  • IP 해시 방식 (IP Hash Method)
    • 클라이언트의 IP주소를 해싱하여 특정 서버로 매핑하는 방식
    • 사용자가 항상 동일한 서버로 연결되는 것을 보장
  • 최소 연결 방식 (Least Connection Method)
    • 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 배분
    • 자주 세션이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우에 적합
  • 최소 응답시간 방식 (Least Response Time Method)
    • 서버의 현재 연결 상태와 응답시간을 고려하여 트래픽을 배분

로드 밸런서의 종류

보통 로드 밸런싱에는 L4 로드밸런서와 L7 로드밸런서가 가장 많이 활용된다. 그 이유는 L4 로드밸런서부터 포트 정보를 기반으로 로드를 분산하는 것이 가능하기 때문이다. 한 대의 서버에 각기 다른 포트 번호를 부여하여 다수의 서버 프로그램을 운영하는 경우라면 최소 L4 로드밸런서 이상을 사용해야 한다.

    

면접에 나올 수 있는 질문

  • 트래픽이 증가하게 되었을 때, 이에 대처할 수 있는 대표적인 방법 2가지는?
  • 로드 밸런싱이란?

참고

기여자


Junho Moon

📦