본문 바로가기
Server

Scale-out 환경에서 Session 관리하기

by setung 2021. 7. 29.

Scale-out으로 서버를 확장하는 환경이라면 Session을 신경 써줘야 합니다.

예를들어 한 유저가 A 서버를 통해 로그인을 했는데,

다음 요청이 B 서버에 전달이 되어 또 다시 로그인을 하는 상황이 오기 때문입니다.

 

Scale-out 환경에서 Session을 관리하는 기법을 간단히 소개하겠습니다.

 

1. Sticky 

 - 처음 접속한 서버에 계속 요청하는 방식입니다.

 - 간단한 해결책이지만 단점이 존재합니다. 바로 특정 서버에 업무가 과중될 수 있는데요. 새로운 서버가 추가 되었어도 기존의 클라이언트는 기존의 서버에만 요청을 처리 하기 때문입니다. 또는 기존의 서버가 고장나서 복구 시켰을 때에도 복구된 서버은 요청을 못받고 놀 수 가 있는 것이지요.

   

2. Cluster

  - 모든 서버의 세션을 복사하는 방식입니다. Sticky처럼 특정 서버에 업무가 과중되는 일을 없어지겠지만 Cluster는 메모리를 낭비한다는 단점이 있습니다. 또한 서버 대수를 늘릴수록 성능은 더욱더 안좋아지는데 확장성에 한계가 있게됩니다.

 

3. Storage

  - 세션을 관리하는 별도의 서버를 만드는 것입니다. Sticky와 Cluster의 단점을 해소를 했지만 역시 단점이 존재합니다. 한대의 서버에 세션에 대한 IO 작업이 과중 될 수 있습니다.

 

각각의 방법엔 장단점이 있으니 환경에 맞게 적절히 사용하시면 되겠습니다.

'Server' 카테고리의 다른 글

Scale-Up과 Scale-Out 알아보기  (0) 2021.05.31

댓글