1. HTTP Session과 Session Clustering
Session의 필요성
- HTTP의 무상태 특성 때문에 발생하는 불편함을 해결하기 위해 ‘세션(Session)’이라는 개념등장
- HTTP의 무상태특성? 서버가 방금 전의 일을 기억하지 못함. (이전 페이지 내용을 모름)
- 세션은 서버가 사용자의 상태를 기억하고 유지할 수 있도록 돕는 기술
- 웹사이트를 이용하는 동안 서버가 “이 사용자는 지금 로그인 상태이고, 장바구니에 이 물건들을 담았어”라고 기억할 수 있게 해줌
- 서버는 각 사용자에 대해 세션ID를 부여한다.
- 상태유지, 보안성, 효율성 좋음
- 스케일링(확장) 이슈, 분산 환경 관리의 복잡성, 데이터유실 위험이있음
Session 관리 방식
| 방식 |
특징 |
장점 |
단점 |
사용 사례 |
| 로컬 관리 |
서버 메모리에 세션 저장 |
구현 간단, 빠른 접근 |
다중 서버 부적합, 데이터 유실 위험 |
단일 서버 애플리케이션 |
| 중앙 집중 관리 |
별도 저장소(Redis 등)에 저장 |
서버 간 공유 가능, 데이터 유지 |
중앙 저장소 의존, 성능 부담 |
대규모 시스템, 다중 서버 환경 |
| 분산 관리 |
세션 데이터를 여러 서버에 복제 |
데이터 신뢰성, 가용성, 확장성 보장 |
복제 비용 증가, 데이터 일관성 문제 가능 |
고가용성 및 확장성이 요구되는 시스템 |
세션 클러스터링
- 여러 서버 환경에서 사용자 세션 데이터를 안정적으로 관리하고, 서비스의 연속성과 확장성을 보장하기 위한 핵심 기술
- 사용자는 항상 동일한 세션 정보를 바탕으로 서비스를 이용
- 방식
| 방식 |
특징 |
장점 |
단점 |
적용 사례 |
| Sticky Session |
동일 사용자의 요청을 항상 동일 서버로 전달 |
구현 간단, 빠른 성능 |
서버 과부하 발생 가능, 확장성 제한, 장애 시 유실 |
소규모 시스템, 간단한 웹 애플리케이션 |
| Session Replication |
서버 간 세션 데이터 복제 |
고가용성 제공, 서버 장애에도 세션 유지 |
성능 저하, 복잡성 증가 |
대규모 시스템, 고가용성 서비스(전자상거래, 금융) |
| Centralized Store |
Redis 등 중앙 저장소에 세션 저장 |
데이터 일관성, 확장성 우수 |
중앙 저장소 장애 시 모든 서버에 영향, 성능 부담 |
글로벌 웹 애플리케이션, API 게이트웨이 |