본문 바로가기

기타

Replication & Clustering

Replication

Replication이란 두개 이상의 DB 또는 저장소를 말그대로 복제하는 것이다.

대표적인 방식으로는 P2P, Master/Slave 방식이 있는데,

데이터 읽기 처리와 쓰기 처리를 분담하여 처리하여 부하를 줄이기도 하고,

사용 우선순위를 두어 해당 서버 장애 발생 또는 작업중일시 다음 순위에 서버가 작업하고 데이터를 동기화하는 방법 등

서버의 고가용성, 무결성, 확장성을 위하여 사용한다.

 

 

 

Clustering

Clustering이란 똑같은 구성을 병렬로 연결한 상태를 말한다.

쉽게 말하자면 여러대의 서버 컴퓨터를 마치 하나의 가상 컴퓨터처럼 연결하여 업무를 수행하고,

연결된 서버중 특정 하나의 서버에서 장애 발생시, 연결된 다른 서버에서 해당 업무를 수행할 수 있도록 가용성을 높이고

로드밸런서(L4스위치)에서 상이한 서버를 연결하였을때 역시 동일한 하나의 서버처럼 보이기 위하여 사용된다.

 

이전에 로그인한 세션이 있는데, 로드밸런서가 다른 서버로 연결한다면?

로드밸런서에서 세션기간동안엔 클라이언트의 Request를 받아 동일한 서버로 라우팅해주지만

Session Clustering을 통해 세션이 다른 서버에도 적용될 수 있도록 돕기도 한다.

여러 서버에 연결되어도 동일한 세션이 사용될 수 있게 해준다.

 

 

Session Clustering

Session Clustering이란 2대 이상의 WAS 또는 서버를 사용할 때, 로드밸런싱, 장애 대비 등등의 대비를 위하여 세션을 공유하는 것을 말한다.

예를 들어, 백개에 서버가 있다 가정할 때, 클릭할 때마다 로드밸런서로 인해 서버가 계속 바뀐다 가정하면, 해당 세션이 계속해서 생성되고 삭제됨을 반복하며 사용자는 로그인을 클릭마다 해주어야 한다.

백개의 서버중 임의의 서버로 변경되어도 또는 해당 서버의 장애가 발생하더라도 세션이 유지될 수 있도록 구현한 기술

*서버 이용자가 많아질 수록, 로그인 세션들이 많아지게 되는데, 이에 따라 서버의 부하가 생길 수 있지 않을까

 

Session Clustering 방식에는

Sticky Session 방식, ALLtoALL Session Replication 방식, Primary-secondary Session Replicaion 방식, Session Storage 방식 등등이 있다.

더보기

Session Clustering방식

 

1. Sticky Session

로드밸런서가 세션 기간동안 동일한 클라이언트의 Request를 받아 항상 동일한 서버로 라우팅한다.

그렇기 때문에 1번 서버에 세션이 생성되었다면 다른 서버로 복사하지 않고 로드밸런서가 이전에 요청했었던 클라이언트에게 요청을 보냄으로 여러 서버와 세션을 교환할 필요가 없지만, 일정 서버에 트래픽이 몰리게되면 과부하가 올 수 있다.

 

 

 

2. ALLto ALL Session Replication

 이전에 접속했었던 서버가 아닌 다른 서버에 접속하여도 동일하게 연결이 될 수 있도록 다른 서버에 동일한 세션을 복제하는 방법,

이전에 접속했었던 서버가 갑작스런 장애가 발생한 경우 다른 서버로 옮겨졌을 때, 재로그인 없이 사용이 가능하다는 장점이 있다.

세션이 저장될 때마다 모든 서버가 동일한 세션을 저장해야하기 때문에 많은 메모리가 필요하다는 단점이 있다.

 

 

 

3. Primary-secondary Session Replication

All2All방식은 서버 수에 증가로 인해 너무 많은 세션을 저장하게 됨으로 트래픽이 증가하는 등의 성능 저하가 발생하게 되어 이에 대안으로 나온 방법

임의에 Secondary서버에는 세션을 정상적으로 복제하고, 나머지 서버에는 Session의 key만 저장한다.

이후 key만 갖고있는 서버에 사용자가 접근하게되면 primary 또는 secondary서버에 Session key에 대한 내용으로 호출하여 연결할 수 있도록 변경되었으나,

추가적인 Session key를 갖고 질의하는 과정이 생긴다는 단점이 있다.

 

 

 

4. Session Storage

사용자의 정보를 저장하는 저장소 이외에 Session을 저장하는 저장소를 따로 구축하여

Session에 대한 정보만 저장하고 어떤 서버에서든 호출하여 사용할 수 있도록 하는 방법

별도의 저장소를 구축하기 때문에 가용성이 높아지지만, 세션 저장소에 장애가 발생하면 모든 서버에서 세션을 사용할 수 없다는 단점이 있다.

 

 

 

 

 

 

 

 

'기타' 카테고리의 다른 글

[karaf] karaf cxf 설치  (0) 2024.07.10
[Karaf] Apache Karaf - Web Console 설치  (0) 2024.07.10
P2P (Peer to Peer) VS Master/Slave  (0) 2024.05.27
인증서 파일 형식  (0) 2024.05.17
SSL/TLS  (0) 2024.05.14