세션클러스터링 설정을 하다가 생긴 일.(이중화란?)

세션클러스터링 설정을 하다가….

현재 서버구성은 L4 - 로드밸런싱 알고리즘은 라운드 로빈 방식으로 되어 있고 웹서버2대(nginx) , WAS 2대(Tomcat) , DB(2개) - RAC 이중화로 구성을 한 상태이다. 로그인했을시 문제가 있어서 세션클러스터링 설정을 하고 있는데 몇줄만 추가를 해주면 될거 같았지만…. 생각처럼 금방 되진 않았고, 서버쪽 담당자님께서 이중화는 되어 있으니 세션클러스터링은 생각보다 시간이 걸리니 세션클러스터링 설정하지말고 Active-Stand by로 하자고 제안을 하셨다. 운영하는 사람들만 사용하는 시스템이다보니 많이 사용자가 많지 않으니 Active-Stand by를 하자고 하신거 같았다.

나는 맨 처음에 든 생각은

  1. Active - Stand by 하면 어짜피 한쪽 웹서버와 WAS를 죽인상태에 한쪽만 살리는게 이중화의 의미가 있는건가?
  2. 한쪽을 죽인다면 L4 구성을 한 이유가 있는건가? 어짜피 웹서버를 start해줘야 하는건데..? 라는 의문이 들어서 질문을 했고 여기서 나는 자동화와 이중화의 개념자체를 모르고 있었다. 내가 의문이 들었던것은 자동화에 대한 내용이였고 이중화는 아예 다른 개념이였다.

이중화란 문제가 생겼을 때 대체할 수 있는 자원이 있느냐 없느냐? 라는 것으로 생각하면 된다. 즉, 현재 웹서버2대 WAS2대로 구성되어 한쪽을 죽여도 대체할 수 있는 자원이 있으니, 이중화가 된것이고 L4 스위치가 의미가 없는게 아니라 L4 스위치는 살아있는 IP를 알아서 찾아서 붙으니 이 자체에 의미가 있다고 생각하면 된다.

하지만 여기서 Active - Active 설정하고 싶다면! 현재 로드밸런싱 알고리즘이 라운드로빈으로 구성이 되어 있으니 한IP로 붙으면 한쪽으로만 세션이 유지되는 IP 해시 방식 알고리즘 방식을 바꾼 후 Active - Active 하면 된다.

오늘은 이중화와 자동화에 대한 개념과 L4 로드밸런싱 알고리즘에 대해서 다시 한번 생각해보는 하루였다.

IP해시방식 : 클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식 사용자의 IP를 해싱해(Hashing, 임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑하는 것, 또는 그러한 함수) 로드를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장함.