로드밸런싱(Load Balancing)이란? (트래픽 분배)

클라이언트가 요청을 하면 백엔드 서버는 요청에 대해 응답합니다. 이때 로드밸런서(Load Balancer)는 클라이언트와 서버 사이에서 요청 트래픽을 관리 및 분배합니다. 로드밸런서가 트래픽을 분배하는 작업을 로드밸런싱(Load Balancing)이라고 부릅니다.

로드밸런싱

로드밸런싱은 사용자인 클라이언트로부터 트래픽을 받아 정해진 알고리즘을 기준으로 서버로 전달합니다. 어느 한 서버에 트래픽이 너무 몰렸다 싶으면 한가한 서버에 트래픽을 보내고, 어느 한 서버가 다운되면 정상적인 서버로 트래픽을 몰아주는 식입니다. 한마디로 서버가 효율적으로 사용될 수 있는 상태를 만드는 게 목표입니다. 이를 통해 처리 능력을 끌어올리고, 유연성과 효율성을 높이는 한편, 다운타임과 서버 과부하를 방지합니다. 이런 점에서 로드밸런서는 ‘traffic cop(트래픽 경찰)’로 불린다고 합니다.

 

예를 들어, www.google.com이라는 도메인에 접속했을 때 이 응답을 처리할 서버가 3대 있습니다. 각각의 IP 주소는 64.233.160.0, 64.233.160.1, 64.233.160.2입니다. 이때 클라이언트의 요청을 셋 중 어디로 보낼 것인지를 결정하고 요청을 보내주는 게 로드밸런싱입니다. 

 

<출처 = NGINX>

 

로드밸런서는 하드웨어 일수도 있고 소프트웨어 일수도 있습니다. 통상적으로는 하드웨어인 L4 스위치가 로드밸런싱을 수행합니다. 과거에는 하드웨어만이 로드밸런싱을 수행하다가 점점 소프트웨어 로드밸런싱의 역할도 늘었다고 하네요.

로드밸런싱 알고리즘 종류

로드밸런싱 알고리즘은 트래픽을 어떻게 분배할지에 대한 정의입니다. 간단하게 몇 가지만 소개해드리겠습니다. 이 부분은 정보처리기사 자격증 시험에서도 자주 등장하는 용어 같습니다.

  • 라운드 로빈(Round Robin) : 다른 변수에 관계없이 정해진 순서대로 트래픽을 배분합니다.
  • 리스트 커넥션(Least Connections) : 현재 연결이 가장 적은 서버에 트래픽을 보냅니다.
  • 리스트 타임(Least Time) : 가장 빠른 응답시간과 가장 적은 활성화 연결 상태의 서버에 트래픽을 보냅니다.
  • 해시(Hash) : 클라이언트의 IP 주소처럼 정의한 키를 기반으로 서버에 트래픽을 보냅니다.
반응형

댓글

Designed by JB FACTORY