Post

로드 밸런싱(Load Balancing)

로드 밸런싱이란?

클라이언트의 요청을 처리해야 할 중앙 처리 장치 또는 컴퓨터 자원에게 부하(Load)를 나눠 균형(balance)을 맞추는 기술입니다.

로드 밸런싱을 하는 이유

서비스 규모가 커지면 사용자가 많아지고, 서버에 접근하는 트래픽이 증가합니다. 이를 한 대의 서버로 대응하기엔 과부하의 위험이 증가하고, 원활한 서비스 제공이 불가능해집니다. 이 때, 대처 가능한 방법은 두 가지가 있습니다.

  • Scale-up 방식 : 기존 서버의 성능을 확장하는 방식
  • Scale-out 방식 : 기존 서버와 동일하거나 낮은 성능의 서버를 증설하는 방식
    Scale-out 방식을 선택한다면 두 대 이상의 서버로 트래픽을 균등하게 분산하는 로드 밸런싱 기법이 반드시 필요합니다.

로드 밸런싱 방식

여러 기법이 있으며 서버의 성능, 특성 및 상황에 맞춰 적절한 방법을 선택해야 합니다.

  • 라운드 로빈(Round Robin)
    요청을 들어온 순서대로 배정하는 방식. 여러 대의 서버가 동일한 스펙을 갖고 있고, 서버와의 연결(세션)이 오래 지속되지 않는 경우 활용합니다.

  • 가중 라운드 로빈(Weighted Round Robin)
    각 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분하는 방식. 주로 서버의 성능이 상이한 경우 사용하며 가중치가 높을수록 성능이 더 높습니다.

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

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

  • 최소 응답 시간(Least Response Time)
    서버의 현재 연결 상태와 응답 시간을 모두 고려하여 트래픽을 배분하는 방식. 가장 적은 연결 상태와 가장 짧은 응답 시간을 보이는 서버에 우선적으로 로드를 배분합니다.

L4 로드 밸런싱 / L7 로드 밸런싱

로드 밸런싱 중 L4 로드 밸런싱과 L7 로드 밸런싱이 가장 많이 활용됩니다. 여기서 L은 Layer(계층)를 의미합니다.

  • L4 로드 밸런싱
    4계층(네트워크 계층 / IP, IPX) 또는 3계층(전송 계층 / TCP, UDP)의 정보를 바탕으로 로드 분산. IP 주소, 포트번호, MAC 주소, 전송 프로토콜 등을 기준으로 트래픽 분산이 가능합니다.
    • 장점
      1. 패킷 내용을 확인하지 않고 분산하므로 속도가 빠르고 효율이 높습니다.
      2. 데이터 내용을 복호화 할 필요가 없기 때문에 안전합니다.
      3. L7 로드 밸런싱보다 비용이 적게 듭니다.
    • 단점
      1. 패킷 내용을 확인하지 않으므로, 섬세한 라우팅이 불가능합니다.
      2. 사용자의 IP가 수시로 바뀌는 경우, 연속적인 서비스 제공이 어렵습니다.
  • L7 로드 밸런싱
    7계층(어플리케이션 계층 / HTTP, FTP, SMTP) 정보를 바탕으로 로드를 분산하거나 HTTP 헤더, 쿠키 등과 같은 사용자 요청 기준으로 분산 가능하며 또한 L4 로드 밸런싱의 기능 + 패킷의 내용을 기준으로도 로드 분배가 가능합니다.
    • 장점
      1. 상위 계층에서 분산하기 때문에 훨씬 더 섬세한 라우팅이 가능합니다.
      2. 캐싱 기능을 제공합니다.
      3. 비정상 트래픽을 사전에 필터링 가능하여 안정성이 높습니다.
    • 단점
      1. L4 로드 밸런싱에 비해 비용이 많이 듭니다.
      2. 패킷의 내용을 복호화해야 하므로 비용이 추가됩니다.
      3. 클라이언트가 로드 밸런서와 인증서를 공유해야 하기 때문에 공격자가 로드 밸런서를 통해 클라이언트의 데이터에 접근할 수 있는 위험이 존재합니다.
This post is licensed under CC BY 4.0 by the author.