Computer Engineering/Network

sticky session 이란?

jordan.bae 2018. 3. 16. 21:03


sticky session 이란 무엇일까?





Sticky session 이란?



먼저 sticky 의 의미 중 하나는 끈적 끈적한, 여간에서 떨어지지 않는 다는 의미가 있다.


어떤 것 과 여간에서 떨어지지 않는 것 일까 ?



바로 요청에 대한 응답을 만드는 웹 서버(AWS 서비스에서 쉽게 예를 들면, EC2) 이다.


영어로는 이렇게 표현을 하는 것을 봤다. 


only single session object will be there.



한국 말로는 껌딱지? 한 서버 인스턴스에만 붙어있는 세션이라고 생각하면 될 것 같다.




머가 문제지? 문제는 다중 서버 구성 시에 발생한다.



sticky session 을 이용하면 AWS Loadbalancer의 경우 traffic 에 따라서 인스턴스에 http request를 분산하여 전달 하기 때문에


A 서버는 session 정보를 가지고 있지만, B 서버는 가지고 있지 않을 수 있는 상황이 발생한다.




이런 경우 로그인 해서 새로고침을 했더니 로그아웃이 되어 버릴 수도 있다.



어떻게 해결해야 할까 ?



먼저 , AWS ELB(elastic load balancer) 를 이용하고 있다면 간단한 설정으로 해결할 수 있다.


쉽게 말해,  sticky하게 해결한다. 만약 a라는 사용자가 x라는 서버에서 응답을 받았다고 하면 x라는 서버에서 계속 응답을 주는 것이다. 


즉, 밀착마크다....! 하지만, load balancer의 기본적인 장점이 조금 상쇄 되기 때문에 조금 아쉬울 수 있지만 괜찮은 해결 방법이다.


관련자료:


https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-sticky-sessions.html



다른 경우 같은 경우는 sticky session 을 복제해서 다른 서버들에게 동기화 해주거나 따로 세션 서버를 구축하는 방법도 있다.


stack over flow에 관련 자료들이 있다.


https://stackoverflow.com/questions/10494431/sticky-and-non-sticky-sessions




간단하게 sticky session의 개념과 관련 문제가 발생했을 때 해결하는 방법에 대해서 기록해봤다.






반응형

'Computer Engineering > Network' 카테고리의 다른 글

DNS란 / DNS 동작 과정  (0) 2024.04.03