본문 바로가기
서버/네트워크 및 인프라

세션 클러스터링이란?

by 방구쟁이 2021. 11. 10.
728x90

세션 클러스터링이란?

 세션 클러스터링이란 WAS가 2대 이상 설치가 되어있을 경우 세션을 공유하여 대체된 WAS에도 동일한 세션을 관리하는 것을 의미합니다. 예를 들어 L4 스위치가 사용자를 접속했던 WAS로 유도해주지만 접속자 수가 초과할 경우 다른 WAS를 사용하게 되는데 이때 발생할 수 있는 세션 불일치 문제가 발생할 수 있습니다. 이때 세션 클러스터링을 통해 세션 불일치를 해결해줄 수 있습니다.

 

클러스터링이란?

 여러대의 서버를 한가지 업무를 수행하도록 만든 것입니다. 여러대의 서버를 운용하면 한 DB에서 시스템 장애가 나도 나머지 DB에서 역할을 수행할 수 있도록 하여 지속적인 서비스를 제공할 수 있습니다. (SPOF 방지 - Single Point Of Failure)

 

클러스터 특징

  • 노드 장애 시에도 다른 서버로 클라이언트에게 서비스 제공
  • 프로그램 병렬화 및 관리의 어려움

 

세션 클러스터링 종류

 1. WAS 구성

  데이터별 Primary/BackUp 인스턴스 지정하여 구성하며 별도의 서버 인프라가 필요없습니다.

 2. 세션 서버 구성

  별도의 세션 서버가 필요하며 세션 공유 설정이 용이하다. 단일 장애 지점으로 장애시 복제를 구성해야하며 성능이 좋지 못합니다. 

 3. 세션 데이터그리드 구성

  데이터그리드(JVM 프로세스 수) 에서 세션 정보 저장하며 확장성과 안정성을 보장합니다. 단점으로는 별도의 서버 구성이 필요하며 관리포인트가 증가합니다. 예로 Tomcat, JBoss 등이 있습니다.

  Tomcat에는 세션 복제 기능이 있다. 해당 기능을 키면 이중화된 tomcat간 multicast 방식으로 세션을 공유합니다.

  Tomcat의 클러스터링 방식은 horizontal clustering과 vertical clustering이 있습니다.

  horizontal clustering 방식은 애플리케이션 디자인을 확장 가능하게 구성한 경우 제한없이 노드를 증가 시킬 수 있으나 전제조건이 애플리케이션을 확장 가능하게 디자인해야 한다는 것입니다.

  vertical clustering 방식은 애플리케이션의 구조는 그대로 유지할 수 있고 난이도가 쉬우나 확장 한계가 있으며 머신을 중지해야 하므로 확장 시 가동 중지 시간이 발생합니다.

 

세션 클러스터 시 유의사항

 JVM의 Heap 영역을 늘려 세션 정보 저장 영역을 늘릴 수 있으나 GC처리 시간을 고려해야 합니다다.

 

요약

로드밸런싱이 부담을 줄여주기 위한 분산 시스템 역할이라면 세션 클러스터링은 서버 장애의 임시 방편 역할입니다.

 

오늘 성장에 도움을 주신 개발자분

참고 자료 : https://junshock5.tistory.com/91

참고 자료 : https://brownbears.tistory.com/168

 

감사합니다.

 

728x90

댓글