세션 기반 인증 방식

다중 서버 환경에서 세션 기반 인증 방식을 사용하는 경우 발생할 수 있는 문제점

세션기반 인증 방식을 사용하는 경우에는 세션 불일치 문제가 발생할 수 있음. 만약 서버 A,B를 관리하고 있을 때, 로드밸런서는 사용자의 요청을 상황에 맞게 A,B 중 한곳으로 전달함. 유효한 로그인 요청이 A서버로 처음 도착하면 사용자에 대한 세션 정보는 A 서버에 저장됨. 이후 해당 사용자의 또 다른 요청이 로드밸런서에 도착했을때 B서버로 라우팅하여 도착하게되면 사용자의 세션데이터가 존재하지 않는 문제 발생 → 세션 불일치 문제

세션 불일치 문제는 어떻게 해결?

(1)스티키 세션 방식, (2)세션 클러스터링 방식, (3)스토리지 분리 방식

스티키 세션 방식은 사용자 요청이 항상 사용자 세션 정보가 저장된 서버로 가도록 고정하는 방식

  • 사용자 요청의 쿠키나 IP를 통해서 어느 서버로 고정 시킬지 결정

  • 장점 : 단순함

  • 단점

    • 특정 서버에 트래픽이 집중될 수 있는 문제

    • 서버가 다운되면 해당 서버에 고정된 사용자는 다시 로그인해야 된다는 문제

세션 클러스터링 방식은 특정 서버에 사용자 세션 정보가 생성될 때, 다른 서버로 정보를 복제하는 방식

  • 여러 서버에 사용자 세션 정보를 중복해서 저장하므로 스티키 세션의 트래픽몰림 현상과 세션 정보 유실 문제를 해결한다는 장점

  • 세션 정보를 중복 저장한다는 점에서 메모리를 비효율적으로 사용

  • 네트워크 트래픽 문제, 세션 정보 복제 지연으로 인한 일시적인 세션 정보 유실 문제 발생 가능

스토리지 분리 방식은 세션 정보를 저장하는 공간을 외부로 분리하는 방식

  • 스티키 세션 방식세션 클러스터링 방식에서 발생하는 문제 해결

  • 단일 장애 지점(Single Point Of Failure, SPOF)이 문제가 될 수 있음

  • 클러스터링과 같은 HA 구성으로 단일 장애 지점을 해소하여도 복제 지연으로 인한 일시적인 세션 정보 유실 문제는 발생할 수 있음

    • 클러스터링:

      • 여러 서버(노드)를 묶어 하나의 시스템처럼 작동하도록 구성

      • 한 노드에 장애가 발생해도 다른 노드가 요청을 처리하여 서비스가 중단되지 않음

    • 복제 :

      • 데이터베이스에서 데이터 변경 사항을 여러 복제본으로 동기화

      • 읽기/쓰기 작업을 여러 노드에 분산하여 부하를 줄이고 고가용성을 보장

  • 또한 외부 스토리지를 관리하기 위한 추가 리소스 요구.필요.

Last updated