[MSA] Multi Server 환경에서의 Session 관리

    반응형
    SMALL

    MSA 환경에서의 Session 관리가 필요한 이유?

    MSA 환경에서는 굉장히 많은 서버들이 여러 대 운영되며, 이때 round-robin과 같은 부하분산 알고리즘을 사용해서 서버 접속을 구현했을 때

    1번 서버에 사용자가 접근해서 로그인을 했으며, 메인페이지로 이동하기 위해 URL이 Rewrite가 되었을 때 사용자는 1번 서버가 아닌 2번 서버로 라우팅 될 수도 있다. 이때 발생하는 문제점이 사용자는 분명 로그인을 했으나 메인페이지로 Rewrite되면서 로그인이 안된 상태가 유지된다.

    이유는 간단하다. 1번 서버에서 로그인을 했으면 1번 서버에 Session 정보가 기록되고 rewrite되면서 2번 서버로 라우팅되었지만 해당 서버에는 Session에 대한 정보가 없기때문이다.

     

    How to solved it?

    해결하는 방법은 대표적으로 3가지가 있다.

     

    1. Stiky Sessions

    Sticky Session은 이름 그대로 고정된 세션을 의미한다. 즉, 서버 5대로 운영한다고 했을 때 1번 사용자는 1번 서버로만 라우팅되고 3번 사용자는 3번 서버로만 라우팅이되도록 사용자가 처음 접근한 서버로만 라우팅이 되도록하는 옵션이다.

    하지만 이러한 Stiky Session 방식을 사용하여 구성하였을 땐, 부하부산이 제대로 되지않아 추천하지 않는 방법이다.

     

    2. Session Clustering

    Session Clustering를 사용해서 세션은 이름 그대로 사용자의 정보(로그인 정보 등)들이 외부저장소(Session Store)에 저장하여 해당 저장소에서 사용자 정보를 불러와 세션을 유지시키는 방법이다. 즉, 그냥 세션을 그룹화하는 기술이다.

     

    반응형
    LIST

    댓글