KDT:::Sparta MSA 아키텍처 3기(week06)

1 minute read




1. HTTP Session과 Session Clustering

Session의 필요성

  • HTTP의 무상태 특성 때문에 발생하는 불편함을 해결하기 위해 ‘세션(Session)’이라는 개념등장
    • HTTP의 무상태특성? 서버가 방금 전의 일을 기억하지 못함. (이전 페이지 내용을 모름)
  • 세션은 서버가 사용자의 상태를 기억하고 유지할 수 있도록 돕는 기술
  • 웹사이트를 이용하는 동안 서버가 “이 사용자는 지금 로그인 상태이고, 장바구니에 이 물건들을 담았어”라고 기억할 수 있게 해줌
  • 서버는 각 사용자에 대해 세션ID를 부여한다.
  • 상태유지, 보안성, 효율성 좋음
  • 스케일링(확장) 이슈, 분산 환경 관리의 복잡성, 데이터유실 위험이있음

Session 관리 방식

방식 특징 장점 단점 사용 사례
로컬 관리 서버 메모리에 세션 저장 구현 간단, 빠른 접근 다중 서버 부적합, 데이터 유실 위험 단일 서버 애플리케이션
중앙 집중 관리 별도 저장소(Redis 등)에 저장 서버 간 공유 가능, 데이터 유지 중앙 저장소 의존, 성능 부담 대규모 시스템, 다중 서버 환경
분산 관리 세션 데이터를 여러 서버에 복제 데이터 신뢰성, 가용성, 확장성 보장 복제 비용 증가, 데이터 일관성 문제 가능 고가용성 및 확장성이 요구되는 시스템

세션 클러스터링

  • 여러 서버 환경에서 사용자 세션 데이터를 안정적으로 관리하고, 서비스의 연속성과 확장성을 보장하기 위한 핵심 기술
  • 사용자는 항상 동일한 세션 정보를 바탕으로 서비스를 이용
  • 방식
방식 특징 장점 단점 적용 사례
Sticky Session 동일 사용자의 요청을 항상 동일 서버로 전달 구현 간단, 빠른 성능 서버 과부하 발생 가능, 확장성 제한, 장애 시 유실 소규모 시스템, 간단한 웹 애플리케이션
Session Replication 서버 간 세션 데이터 복제 고가용성 제공, 서버 장애에도 세션 유지 성능 저하, 복잡성 증가 대규모 시스템, 고가용성 서비스(전자상거래, 금융)
Centralized Store Redis 등 중앙 저장소에 세션 저장 데이터 일관성, 확장성 우수 중앙 저장소 장애 시 모든 서버에 영향, 성능 부담 글로벌 웹 애플리케이션, API 게이트웨이