본문 바로가기
👨‍💻 프로그래밍/Architecture

로드 밸런서(Load Balancer)에 쓰이는 알고리즘

by 개발자 진개미 2023. 4. 1.
반응형

Load Balancer란?

서버의 트래픽(요청)을 분산시키는 장치

우리가 컴퓨터에 너무 많은 프로그램을 켜 놓으면 느려지고, 최악의 경우 블루스크린이 뜨며 작동을 중지하듯, 서버 또한 너무 많은 요청을 받으면 부담이 됩니다. Load Balancer부하(Load)밸런싱(Balance)해 주는 장치를 말합니다.

 

네이버 홈페이지를 생각해 보면, 하루에 네이버를 찾는 사람이 1000만명은 될 겁니다. 이 모든 요청은 1개의 서버가 받는다면 네이버 홈페이지는 터지는게 일상일테지만, 로드 밸런서가 한 요청은 춘전의 데이터센터에 보내고, 한 요청을 서울로 보내는 식으로 분산시킨다면 터지지 않을 것입니다.

 

그렇다면 로드 밸런서는 어떤 식으로 트래픽을 분산시킬까요?


흔히 쓰이는 알고리즘

Round Robin 라운드 로빈 돌아가면서 차례대로
Least Connections (LC)   현재 연결 수가 가장 적은 거 부터
Least Time (LT)   가장 시간이 덜 걸릴 거 같은 거 부터
Hash 해시 정의된 Hash에 따라 배분
IP Hash IP 해시 IP 주소의 Hash에 따라 배분
Random with 2 Choices   랜덤으로 2개 고르고 연결 수 더 적은 거

크게 2가지 카테고리로 나눌 수 있습니다.

  1. 로드 벨런서가 알아서 자신만의 기준을 가지고 분배하는 경우 (라운드 로빈, 해시)
  2. 서버의 현재 상황에 따라 분배하는 경우 (LC, LT)

 

해시 알고리즘의 경우, 해시 함수를 잘 설정하면 같은 유저는 같은 서버에 요청을 보내게 할 수 있어 Session으로 유저 정보를 관리하고 있을 경우 자주 쓰입니다.

 

꼭 1가지 알고리즘을 골라서 쓴다기보다 여러가지 알고리즘을 혼합해서 쓰는 경우가 많습니다.


대표적인 Cloud의 Load Balancer

대부분의 Cloud 서비스에는 모두 로드 밸런서가 있습니다. 그 중 대표격인 AWS의 로드 밸런서에 관한 내용은 아래의 링크에서 확인하실 수 있습니다.

 

 

웹 서버 로드 밸런싱 | 서버 로드 밸런싱 | Amazon Web Services

Application Load Balancer Gateway Load Balancer Network Load Balancer

aws.amazon.com


 

반응형