새소식

CS

로드 밸런싱에 대해...

  • -

로드 밸런싱이란?

 

[매일메일] 다중 서버 환경에서 세션 기반 인증 방식을 사용하는 경우 발생할 수 있는 문제점은?

세션 불일치 문제란?  기존 서버의 사양을 업그레이드하여 시스템을 확장하는 방식인 스케일 업(Scale-Up)과는 달리 서버를 여러 대 추가하여 시스템을 확장하는 방식인 스케일 아웃(Scale-Out) 사

dockerel.tistory.com

 

이전에 올렸던 다중 서버 환경에서 스티키 세션 방식의 경우 로드 밸런서에 의해 요청이 각 서버에 분배되게 된다. 이를 로드 밸런싱이라 하는데, 이는 애플리케이션에 들어오는 네트워크 요청(트래픽)을 균등하게 분산시키는 것을 말한다.

 

주황색 이미지가 로드 밸런서

 

위 사진과 같이 로드 밸런서는 서버들의 앞단에 존재하며 이를 통해 애플리케이션의 가용성, 확장성 그리고 보안 및 성능을 확보할 수 있다.

로드 밸런싱 알고리즘

 

로드 밸런싱 알고리즘에는 (가중치) 라운드 로빈, (가중치) 최소 연결, 최소 응답 시간, IP 해시 방식이 존재한다.

 

(가중치) 라운드 로빈

 

 라운드 로빈은 모든 요청이 순서대로 처리되는 방식을 말한다. 예를 들어 서버가 1,2,3 이렇게 존재하면 1,2,3,1,2,3,1,2,3,... 이렇게 순서대로 요청이 전달된다.

 

 모든 서버의 처리 성능이 동등하고, 고른 분산 처리가 중요한 경우 적절한 방식일 수 있지만 반대로 서버의 처리 능력이 다른 경우? 비효율적인 방식이다.

 

 그래서 각 서버에 가중치를 적용한 가중치 라운드 로빈 방식을 고려해 볼 수 있다. 각 서버의 처리 능력과 가용 자원에 따라 가중치를 할당받고 높은 가중치를 가진 서버가 더 많은 요청을 받게 라운드 로빈을 적용할 수 있다.

 

(가중치) 최소 연결

 

 최소 연결 방식은 가장 적은 활성 연결을 가지고 있는 서버에게 요청을 전달하는 방식으로 각 서버의 활성 연결 수를 모니터링 하고 있는 경우에 사용가능하다. 하지만 이 방식 또한 서버들의 처리 능력이 다른 경우에 적합하지 않을 수 있다(더 낮은 처리 능력을 가진 서버에 요청이 더 많이 할당되는 경우가 생길 수 있음).

 

 그래서 여기에도 가중치를 두어 더 큰 가중치를 가진 서버에 요청을 더 많이 할당 시키는 방식인 가중치 최소 연결 방식을 적용해볼 수 있다.

 

최소 응답 시간

 

말 그대로 각 서버의 응답 시간을 모니터링하여 가장 빠른 응답시간을 가진 서버에 요청을 전달하는 방식이다. 사용자의 경험을 개선하는데 도움이 될 수 있지만 응답 시간만을 기준으로 하기 때문에 서버 부하 상태, 활성 연결 수와 같은 기준들에 대해서는 고려가 불가능하다는 단점이 있다.

 

IP 해시

 

IP 해시 방식은 클라이언트의 IP를 해시화한 값을 기반으로 요청 처리 서버를 결정하는 방식이다. 클라이언트 상태 관리에 용이하다는 장점이 존재하지만 상황에 따라 트래픽이 균등하게 분배되지 않을 수 있다는 단점이 존재한다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.