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 |
---|