세션 기반 인증 방식
다중 서버 환경에서 세션 기반 인증 방식을 사용하는 경우 발생할 수 있는 문제점
세션기반 인증 방식을 사용하는 경우에는 세션 불일치 문제가 발생할 수 있음. 만약 서버 A,B를 관리하고 있을 때, 로드밸런서는 사용자의 요청을 상황에 맞게 A,B 중 한곳으로 전달함. 유효한 로그인 요청이 A서버로 처음 도착하면 사용자에 대한 세션 정보는 A 서버에 저장됨. 이후 해당 사용자의 또 다른 요청이 로드밸런서에 도착했을때 B서버로 라우팅하여 도착하게되면 사용자의 세션데이터가 존재하지 않는 문제 발생 → 세션 불일치 문제
세션 불일치 문제는 어떻게 해결?
(1)스티키 세션 방식, (2)세션 클러스터링 방식, (3)스토리지 분리 방식
스티키 세션 방식은 사용자 요청이 항상 사용자 세션 정보가 저장된 서버로 가도록 고정하는 방식
사용자 요청의 쿠키나 IP를 통해서 어느 서버로 고정 시킬지 결정
장점 : 단순함
단점
특정 서버에 트래픽이 집중될 수 있는 문제
서버가 다운되면 해당 서버에 고정된 사용자는 다시 로그인해야 된다는 문제
세션 클러스터링 방식은 특정 서버에 사용자 세션 정보가 생성될 때, 다른 서버로 정보를 복제하는 방식
여러 서버에 사용자 세션 정보를 중복해서 저장하므로 스티키 세션의 트래픽몰림 현상과 세션 정보 유실 문제를 해결한다는 장점
세션 정보를 중복 저장한다는 점에서 메모리를 비효율적으로 사용
네트워크 트래픽 문제, 세션 정보 복제 지연으로 인한 일시적인 세션 정보 유실 문제 발생 가능
스토리지 분리 방식은 세션 정보를 저장하는 공간을 외부로 분리하는 방식
스티키 세션 방식세션 클러스터링 방식에서 발생하는 문제 해결
단일 장애 지점(Single Point Of Failure, SPOF)이 문제가 될 수 있음
클러스터링과 같은 HA 구성으로 단일 장애 지점을 해소하여도 복제 지연으로 인한 일시적인 세션 정보 유실 문제는 발생할 수 있음
클러스터링:
여러 서버(노드)를 묶어 하나의 시스템처럼 작동하도록 구성
한 노드에 장애가 발생해도 다른 노드가 요청을 처리하여 서비스가 중단되지 않음
복제 :
데이터베이스에서 데이터 변경 사항을 여러 복제본으로 동기화
읽기/쓰기 작업을 여러 노드에 분산하여 부하를 줄이고 고가용성을 보장
또한 외부 스토리지를 관리하기 위한 추가 리소스 요구.필요.
Last updated