[AWS] 웹서버 Session 관리를 위한 ELB Sticky Session



Apache Tomcat 을 기반의 웹서버를 구성하고  AWS  ELB(Elastic load Balancer) 를 활용하여 Multi-AZ(Available Zone) Instance 이중화를 구성하였습니다.

그런데 웹서버에 접속후 로그인 세션이 유지되지 않는 문제가 발생하였습니다.

원인은  ELB 는 트래픽 분산방식이 기본적으로 RoundRobin 방식으로 구현되어 사용자 세션이 유지되지 못하는 현상이었습니다.

이런 문제를 해결하기 위하여 ELB는 Sticky Session 기능을 적용합니다.
최초에 ELB 구성시 Sticky Session 은 Disabe 상태입니다.

확인을 위해 AWS 콘솔에 접속하여 EC2 DashBoard - Loadbalancer 항목으로 이동해 보겠습니다.




Description 탭에 PortConfigration 항목에 설정에서 변경을 원하는 Port 구성에
Edit stickiness  를 선택합니다.



Enable Load Balancer Generated Cookie Stickines 를 선택합니다.
Expiration Period 에 세션이 유지될 시간을 "초" 단위로 입력해 줍니다.

이제 ELB 에서 생성한 쿠키를 사용하여 해당 시간동안 ELB 에서는 동일한 서버로 트래픽을 연결하여 세션을 유지하게 됩니다.

간단하게 ELB 를 통한 세션 설정이 완료 되었습니다.



ELB 에서 생성한 Cookie 대신 웹 Application에서 직접 Cookie 를 생성하고 세션을 관리 할수도 있습니다.




Enable Application Generated Cookie Stickiness 를 선택하면 웹서버에서 생성한 쿠키를 사용하여 세션을 유지하게 됩니다. 

이때는 Cookie Name 에  웹서버에서 생성한 Cookie Name 을 입력해 주면 됩니다. 


AWS Console 을 통하여 간단하게 Sticky Session 구성이 완료 되었습니다.



댓글

주간 인기글

[정보] 인스타그램은 당신의 소리를 '듣고' 있을 수도 있습니다

[Angular] 모델, 값이 바뀌었는데 화면 template 이 업데이트 되지 않을 때 조치 팁

[AWS] Lambda + API GateWay를 이용해 간단한 RESTful API 만들기 #1

[AWS] Lambda + API GateWay를 이용해 간단한 RESTful API 만들기 #2

안드로이드에서 당겨서 새로고침(SwipeRefreshLayout) 쉽게 구현하기