반응형
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 구성이 완료 되었습니다.
'Cloud > AWS' 카테고리의 다른 글
[AWS] Bastion Host 를 활용한 SSH 접근통제 #1 (0) | 2020.04.16 |
---|---|
[AWS] S3 버킷 통한 정적 웹사이트 구성하기 (0) | 2020.04.16 |
[AWS] Lambda + API GateWay를 이용해 간단한 RESTful API 만들기 #1 (0) | 2020.04.16 |
[AWS] Cloudwatch 와 SNS를 이용한 Email 알림기능 설정 (0) | 2020.04.16 |
AWS 계정간 EC2 인스턴스 공유하기 (0) | 2020.04.16 |