Load Balancer 가 뭔가요?

1000명 이상의 사용자가 서버로 어떠한 요청을 보낼 때 1대의 서버로는 모든 요청을 처리하는데 한계가 있겠지요.

따라서 여러 대의 서버로 요청을 분담하여 처리해야 하는데, 사용자는 각 서버의 IP 주소를 모르며, "tistory.com" 이라는 URL 주소만 알고있습니다.

tistory.com
( 10.123.24.54  LB의 IP)
192.168.10.10
192.168.12.22
192.168.11.15

그러므로 "tistory.com" URL 주소와 각 서버의 IP 를 묶어주는 역할이 필요한데,

LB는 자신의 IP를  "tistory.com" 도메인과 연동하여 자신이 수신하는 모든 요청을 각 서버에게 자동으로 분산합니다.

(정확히 말하자면 "tistory.com" 을 LB의 IP 로 변환해주는 동작은 DNS Server가 처리하며, LB는 서버에게 요청을 전달하는 동작을 수행합니다. ) 

따라서, LB를 사용하면 서버를 안정적으로 운용할 수 있습니다.  

LB는 대충 아래와 같은 구조로 사용됩니다.

출처 : Medium (Crack FAANG)

어떻게 자동으로 분산할 수 있나요?

로드밸런싱 알고리즘을 통해 요청을 자동으로 분산할 수 있습니다.

 

로드밸런싱 알고리즘

  • Round Robin
  • IP Hash
  • Least Connection ( Least Outstanding Requests )

이외에도 여러가지 알고리즘이 있지만, 대표적으로 사용되는 3가지의 알고리즘을 알아보겠습니다.

 

Round Robin

Round Robin 방식은 요청의 종류,크기와 관계없이 각 서버에 순서대로 한 번씩 요청을 분산합니다.

IP Hash

IP Hash 방식은 요청 패킷의 출발지 IP/Port , 목적지 IP/Port , 프로토콜 종류를 조합하여 해시값을 만든 후,

해당 해시값과 일치하는 서버에게 분산합니다.

Least Connection

Least Connection 방식은 서버중 현재 요청을 가장 적게 처리하고 있는 서버에 분산합니다.

 

 

'📡Network' 카테고리의 다른 글

IP Class , NAT  (0) 2022.08.14
IP  (0) 2022.08.14
IPtables  (0) 2022.08.13

+ Recent posts