Sticky Sessions (Session Affinity)
- 세션 선호도라고도 불리는 고정 세션
- 클라이언트가 로드 밸런서에 두 개의 요구를 하면, 요구에 응답하기 위해 백엔드에 같은 인스턴스를 갖는 것으로
동일한 클라이언트가 항상 로드 밸런서 뒤의 동일한 인스턴스로 리디렉션되도록 고정성을 구현하는 것이 가능 - 예) EC2 인스턴스에 ALB가 있으며 세 개의 클라이언트가 존재
고객 1이 요청하면 첫 번째 EC2 Instance를 통과하고, 두 번째로 요청하면 같은 인스턴스를 통과 (동일한 인스턴스로 고정)
- CLB와 ALB에서 가능한 행동 양식
- 일부가 전송되는데 사용되는 쿠키가 있는 동안 요청이 고정되며,
만료 기간이 존재하기 때문에 쿠키가 만료되면 클라이언트가 다른 EC2 인스턴스로 리디렉션될 수 있음 - 사용자 로그인과 같은 경우, 세션 데이터를 잃지 않기 위해서 같은 백엔드 인스턴스로 연결하는 것
- 하지만 고정을 활성화하면 백엔드 EC2 인스턴스의 부하 불균형을 초래할 수 있음
Sticky Sessions – Cookie Names
- Sitcky Sessions을 위해 가질 수 있는 두 가지 유형의 쿠키
- 앱 기반 쿠키 - 커스텀 쿠키, 애플리케이션 쿠키
1) 커스텀 쿠키
앱 자체에 목표에 의해 생성된 맞춤 쿠키로 앱에 필요한 모든 맞춤 속성을 포함
쿠키 이름은 각각의 목표 그룹에 따라 개별적으로 특화되어야 함
AWSALB, AWSALBAPP, AWSALBTG와 같은 이름은 이미 ELB 자체에서 사용 예약되었으므로 절대 사용 불가
2) 애플리케이션 쿠키
로드 밸런서 자체에서 생성되며 ALB에서 사용하는 쿠키 이름은 AWSALBAPP - 기간 기반 쿠키
로드 밸런서에 의해 생성되며 ALB에서 사용하는 쿠키 이름은 AWSALB이며 CLB에서는 AWSALB
특정 기간에 기반하며 만료일이 존재하며 기간은 로드 밸런서 자체에 의해 생성됨
<Sticky Sessions 실습>
- 로드 밸런서가 세 개의 인스턴스 사이에 있는 것을 확인
- Sticky Sessions을 활성화하기 위해 목표 그룹 레벨에서 목표 그룹을 열고
활성화목표 그룹의 속성을 편집하여 Sticky Sessions을 선택
(Load balancer general cookie, Application-based cookie 두 가지)
- 로드 밸런서에 쿠키 생성이 완료되면 Sticky Sessions 기간을 같도록 설정
- 네트워크 탭을 통해 여러 번 새로고침하더라도 같은 인스턴스에 접근하는 것을 확인할 수 있으며
네트워크 탭의 쿠키에서 응답 쿠키의 만료 기간, 경로, 값을 확인 가능 - 요청 쿠키를 확인하게 되면 브라우저가 로드 밸런서에 요구를 할 때
같은 쿠키 값을 보내므로 쿠키가 과거의 인스턴스에 있기 때문에 Sticky가 작동
'Cloud > AWS' 카테고리의 다른 글
[SAA] ELB SSL 인증서 (0) | 2022.03.05 |
---|---|
[SAA] ELB Cross Zone Load Balancing (0) | 2022.03.05 |
[SAA] GWLB (0) | 2022.03.04 |
[SAA] NLB (0) | 2022.03.04 |
[SAA] ALB (0) | 2022.03.04 |