본문 바로가기
IT 이것저것

[네트워크] 로드밸런싱(Load Balancing)이란? 종류와 기법

by 관성맨 2023. 1. 25.
반응형

 

로드밸런싱 (Load Balancing) 은 '부하분산'이라고도 하며 해석 그대로 일을 밸런스 있게 맞추는 기능입니다.

 

모든 사람들이 12월 31일 23시 59분 59초에 메신저로 친구들을 포함한 지인들에게 새해 인사를 한다고 가정해봅시다.

한낱 한시에 메신저를 보내면 한꺼번에 많은 트래픽이 몰리게 되고 서버는 그 트래픽을 감당해내기가 어려워 부하를 받게 됩니다.

이를 방지하기 위해 우리는 동일한 서버를 여러 대 구비해놓고 트래픽을 분산해서 처리하게 됩니다.

 

그러나, 단순히 여러대의 서버를 구비해 놓는다고 해서 모든 서버에 적절하게 트래픽을 분산시킬 수 있는 것은 아닙니다.

여러대의 서버 중 트래픽이 몰리는 서버가 존재할 수 있고 이렇게 되면 서비스 장애가 일어날 가능성이 커집니다.

 

즉, 한 곳의 서버에 트래픽이 몰리는 것을 방지하고 여러 서버에 적절히 분산시켜주는 기술이 바로 로드 밸런싱 입니다.

 

 

 

 

 

 

 

 

로드밸런싱의 종류

로드밸런싱에는 L4로드밸런싱과 L7로드밸런싱이 많이 활용됩니다.

 

우리가 보통 OSI 7계층이라고 부르는 계층에는 제일 아래인 물리계층부터 응용계층까지 있고

그 중 4번째 계층인 전송계층을 L4 / 7번째 계층인 응용계층을 L7 라고 합니다.

 

 

L4 로드밸런싱

L4는 전송계층 프로토콜의 헤더를 부하 분산에 이용하기 때문에 붙은 접두사입니다.

트래픽을 전송계층의 로드밸런서가 받아 서버들에게 적절히 나누어 주며

L4 로드 밸런서는 네트워크 계층이나 전송 계층의 정보를 바탕으로 로드를 분산합니다.

 

 

L7 로드밸런싱

L7도 마찬가지로 트래픽을 응용계층의 로드밸런서가 받아 서버들에게 나누어 줍니다.

L7 로드 밸런서는 애플리케이션 계층에서 로드를 분산하는데 패킷의 내용을 확인하고 그 내용에 따라 로드를 특정 서버에 분배하는 것이 가능합니다.

또한, 특정 패턴의 바이러스를 감지해 네트워크 보호가 가능하며, 디도스와 같은 공격을 차단할 수 있어 보안 분야에서도 활용됩니다.

 

 

 

 

 

 

 

 

 

 

 

로드밸런싱의 기법

 

 

1. 라운드 로빈 (Round Robin)

 

순차적으로 돌아가며 세션을 할당해주는 방식입니다.

요청이 오면 단순히 그 요청을 순서대로 서버에 분배해주는데 첫 번째 요청은 첫 번째 서버, 두 번째 요청은 두 번째 서버에 할당해 줍니다. 로드밸런싱 대상 서버의 스펙이 동일하고, 처리 시간 혹은 세션지속시간이 짧은 애플리케이션의 경우 이러한 방식이 적합합니다.

 

 

 

2. 가중 라운드 로빈 (Weighted Round Robin)

 

각 서버마다 가중치를 설정해두고 해당 가중치만큼 세션을 할당해주는 방식입니다. 특정 서버의 스펙이 좋다면 해당 서버에 가중치를 좀 더 주어 세션을 더 많이 할당해주고, 스펙이 좋지 않은 서버에는 가중치를 적게 두어 세션을 적게 할당해주는 방식입니다.

 

 

 

3. 최소 연결 (Least Connection)

 

가장 적게 연결(가장 적은 세션)되어 있는 서버에 세션을 할당해주는 방식입니다.

서버에 분배된 세션들이 일정하지 않은 경우에 적합하며 부하를 줄이는 측면에서 많이 사용됩니다.

 

 

 

4. 최소 응답 (Least Response Time)

 

서버의 응답시간을 고려하여 세션을 할당해주는 방식입니다. 가장 짧은 응답 시간을 보이는 서버에 우선적으로 세션을 할당해주는 방식입니다.

 

 

 

5. 해시 (Hash)

특정 사용자는 특정 서버로만 할당시키는 방식입니다. 특정 IP주소나 포트를 갖는 사용자들은 특정 서버로만 세션을 맺도록 하는데 특정 IP주소나 포트에서 접속량이 특히 많을 때 관리가 편한 방식입니다.

 

 

 

 

출처 :

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

https://ko.wikipedia.org/wiki/%EB%B6%80%ED%95%98%EB%B6%84%EC%82%B0

반응형

댓글