본문 바로가기
CS/네트워크

[네트워크] 로드 밸런싱(Load Balancing)

by s0ojin 2023. 2. 3.

 

로드 밸런싱이란?


: 트래픽이 크게 증가하며, 아무리 뛰어난 서버라고 하더라도 방대한 트래픽을 전부 견딜 수 없게 되었다. 이를 해결하기 위해 오늘날 기업들은 서버를 추가로 구비하고 여러 대의 서버에 동일한 데이터를 저장해 수많은 트래픽을 효과적으로 분산하여 처리한다. 그러나 서버를 분리한다고 해도 트래픽이 한곳으로 쏠릴 수가 있다. 이때 트래픽을 여러대의 서버로 분산시켜주는 역할을하는 것이 로드 밸런싱이다.

 

 

트래픽이 증가한다면?


scale-up : 증가한 트래픽을 견디기 위해 기존의 서버의 성능을 확장하는 방식

scale-out : 기존과 동일하거나 낮은 성능의 서버를 증설하는 방식

 

이때 scale-out방식을 채택한다면, 로드밸런싱이 반드시 필요하다.

 

 

로드 밸런싱 종류


로드 밸런싱의 종류는 OSI계층에 따라 나뉜다.

  • L4 : Transport 계층을 사용, IP 주소포트 번호 부하 분산이 가능
  • L7 : Application 계층을 사용, URI, Payload, Cookie, Http Header  등의 내용을 기준으로 부하를 분산

 

로드 밸런싱 알고리즘


: 로드 밸런서가 서로 다른 클라이언트 요청 각각에 가장 적합한 서버를 결정하기 위해 따르는 규칙 세트

 

정적 로드 밸런싱

: 정적 로드 밸런싱 알고리즘은 고정된 규칙을 따르며 현재 서버 상태와 무관하다.

 

  • 라운드 로빈 방식 : 서버에 들어온 요청을 순서대로 서버에 배정하는 방식. 여러대의 서버가 동일한 스펙일 때 적합한 방식.
  • 가중 기반 라운드 로빈 방식  : 서버에 가중치를 두어 가중치가 높은 서버에 우선 할당하는 방식. 서버의 스펙이 상이할 때 주로 채택.
  • IP 해시 방식 : 유저의 IP주소를 특정 서버로 매핑하여 요청하는 방식. 사용자가 항상 동일한 서버로 연결되는 것을 보장.

동적 로드 밸런싱

: 동적 로드 밸런싱 알고리즘은 트래픽을 배포하기 전에 서버의 현재 상태를 검사한다.

 

  • 최소 연결 방법 : 활성 연결이 가장 적은 서버를 확인하고 해당 서버로 트래픽을 전송. 모든 연결에 모든 서버에 대해 동일한 처리 능력이 필요하다고 가정. 세션이 길어지는 경우 유용
  • 최소 응답 시간 방법 : 가장 적은 연결 상태와 가장 짧은 응답 시간을 보이는 서버에 우선 배정.

 

 

Reference


https://tecoble.techcourse.co.kr/post/2021-11-07-load-balancing/

https://server-talk.tistory.com/118

https://aws.amazon.com/ko/what-is/load-balancing/

https://dev.classmethod.jp/articles/load-balancing-types-and-algorithm/

 

 

 

 

댓글