오늘의 질문
다중 서버 환경에서 세션 기반 인증 방식을 사용하는 경우 발생할 수 있는 문제점은 무엇인가요?

다중 서버 환경에서 세션 기반 인증 방식을 사용하는 경우 ‘세션 불일치 문제’ 가 발생할 수 있다.

만약 서버 A, B 를 관리하고 있을 때, 로드밸런서는 사용자의 상황에 맞게 A 혹은 B 서버로 요청을 전달한다. 유효한 로그인 요청이 A 서버로 처음 도착하면 사용자에 대한 세션 정보는 A 서버에 저장된다. 이후에 해당 사용자의 또 다른 요청이 로드 밸런서에 도착했을 때, B 서버로 도착하게 되면 사용자의 세션 데이터가 존재하지 않기 때문에 요청이 제대로 처리되지 않는다. 이를 ‘세션 불일치 문제’ 라고 한다.


🚀 세션 불일치 문제를 해결하는 방법 !

스티키 세션 방식

사용자 요청이 항상 사용자 세션 정보가 저장된 서버로 가도록 고정시키는 방식으로, 사용자 요청의 쿠키 or IP 정보를 통해서 어떤 서버로 고정시킬지 정한다.

  • 장점 : 단순하다.

  • 단점 : 특정 서버에 트래픽이 집중될 수 있다. 그리고 해당 서버가 다운되면 사용자는 다시 로그인 해야한다.


세션 클러스터링 방식

특정 서버에 사용자 세션 정보가 생성될 때, 다른 서버로 복제하는 방식이다.

  • 장점 : 여러 서버에 세션 정보를 저장하므로 스티키 방식의 트래픽 몰림 현상과 세션 정보 유실 현상을 해결할 수 있다.

  • 단점 : 메모리를 비효율적으로 사용하며, 세션 정보 복제 과정에서 발생하는 네트워크 트래픽 문제, 세션 정보 복제가 지연되면 일시적으로 세션 정보가 유실될 수 있다는 문제가 있다.


스토리지 분리 방식

세션 정보를 저장하는 공간을 외부로 분리하는 방식이다.

  • 장점 : 스티키 세션 방식, 세션 클러스터링 방식의 문제를 해결할 수 있다.

  • 단점 : 스토리지에 대한 단일 장애 지점 (Single Point Of Failure) 이 문제가 될 수 있으며, 외부 스토리지를 관리하기 위한 추가적인 리소스가 필요할 수 있다.

      ✔️ 단일 장애 지점(SPOF) 이란,
      시스템 구성 요소 중에서 동작하지 않으면 전체 시스템이 중단되는 요소를 말한다.
    


🔖 참고자료

매일메일