SharedIT | 묻고 답하기(AMP)

WAS 이중화 구성문의

WAS를 2대를 도입하여 이중화를 하려고 합니다.

스토리지와 WAS를 SAN혹은 DAS로 연결할 예정이구요.

상단에 L4가 있습니다.

여기서 문의사항이..

WAS SW비용을 최소화 하기 위하여 CentOS + Tomcat으로 구성하려 하는데.

Active-Active 이중화 구성하는데 문제가 없을까요?

업체에서는 MCCS 이중화 솔루션을 사용한다고 하는데..

그냥 상용 WAS JEUS 같은걸 쓰는데 더 효율적인 건지...


  • 1.Tomcat 자체적으로 A-S 또는 A-A 구성이 많이 어려운가요?

  • 2.MCCS솔루션을 꼭 사용해야 하는지..

  • 3.WEB은 apache를 사용하고 WAS만 상용SW를 사용해도 문제가 없는지..

Apache Tomcat 튜닝 능력은 꽝이라고 보시면 됩니다 ㅠㅠ


조언좀 부탁드려요..

6개의 답변이 있습니다.

한그루
  0 추천 | 약 4년 전

이중화는 톰캣에서는 별다르게 할게 없습니다.


세션 클러스터링을 할거라면 (서버를 이중화 하고 로그인 정보 같은 세션을 유지시켜주어야 한다면 세션 클러스터링이 되어야 합니다.) 톰캣에 세션 클러스터링 기능이 있어서 설정하실 수 있습니다.

그런데 공식적으로도 톰캣이 본인들의 세션 클러스터링 기능 사용을 권장하지 않습니다.

그래서 상용 세션 클러스터링 툴 , 혹은 상용 WAS의 클러스터링 기능 (보통 엔터프라이즈 급 WAS 를 사용해야 기능 상요 가능)을 사용하거나 오픈 소스로 in memory 툴을 사용하기도 합니다. (Memcached, Redis 같은)


이중화 관련해서는

L4에서 loadbalance 걸어 주면 되겠습니다. vip(서비스 대표 IP) 설정하고 L4 에서 분배할 WAS IP 설정하구요.

그런데 스토리지 부분을 어떻게 운영 하실지 고민이 필요하시겠습니다.

여러대의 WAS에 있는 데이터가 각자 다른 WAS 에서 모두 접근이 가능하게 하던지, 아니면 실시간 Sync를 맟추던지 해야 할겁니다. SAN, DAS 를 사용하신다면 후자일텐데 데이터 동기화를 어떻게 실시간으로 할지 고민을 해보세요.

예를 들어 어떤 사용자가 WAS 1번에 붙어서 이미지 화일을 업로드 했는데 잠시 뒤에 재 접속 했을때 WAS 3번에 붙게 되었는데 방금 전에 올린 이미지 화일이 WAS 3번 서버에 없으면 안되니까요.


개인적 바램으로 최대한 오픈 소스를 사용하시고 오픈소스 기술지원을 받으시면 좋겠습니다.

상용 툴 사용하면 매년 서브스크립션 비용, 유지보수 비용 이런것들 무시할 수 없습니다.

나중에 스케일 아웃 한다고 생각해보면 그때 라이센스 이슈가 나올겁니다.

사용자 없을때 2대면 충부한데 몰렸을때 10대가 필요하다면 상용 라이센스 10개를 준비해야 할텐데 너무 아까워요.



한그루 | 약 4년 전

Web 은 Apache 를 사용하던 Nginx 를 사용하던 상관없습니다.
차바라기
  0 추천 | 약 4년 전

L4에 WAS연결해서 하시면 됩니다. 저희도 예전에 그렇게 L4에 연결해서 HA를 구성해서 사용하고 있습니다.

양성환
  0 추천 | 약 4년 전

L4 + 톰켓의 세션 클러스터링 ( stick session ) 설정 해주시면 더 좋습니다.

한그루 | 약 4년 전

해봤는데요. 잘 됩니다. 그런데 테스트 환경에서는 잘 되는데 실제 운영에서 트래픽이 몰리면 문제가 많이 생긴다고 하더군요. 그래서 테스트에서 잘 돌아갔지만 운영에 사용하지 않았습니다.
빨간신발
  0 추천 | 약 4년 전

저희가 L4에 톰캣으로 2중화 운영하고 있습니다.

L4에서 로드밸런싱을 해주고 톰캣을 딱히 2중화에 대한 추가 구성은 없습니다.

와스끼리의 파일 동기화는 San으로는 같이 사용이 안된다고 해서..

Nas로 연결해서 두대의 톰캣이 하나의 소스를 공유해서 사용하고 있습니다..

nas로 사용하다보니 첨부화일처럼 절대경로로 접근하는 경우에는

o/s상의 절대경로(/var/tomcat/~~)이 아니고

네트워크 상의 절대경로(\\192.168.1.1\data\~~) 이런식으로 접근하셔야 합니다.

세션은 서로 공유되지 않습니다.

L4에서 한번 접속한 세션은 같은 서버로만 연결되기 때문에..

2대의 서버가 서로 독립적인 세션으로 운영됩니다.

한대 운영하나 두대 운영하나 서버 입장에서는 동일합니다.

네트워크에서 L4만 잘 해주면 됩니다.

양성환 | 약 4년 전

stick session 사용하면 공유됩니다~
wansoo
  0 추천 | 약 4년 전

MCCS는 맨텍의 이중화 솔루션으로 상용입니다.

MSCS가 MS 제품에 딸려 오는 솔루션이고요.

동일  솔루션을 이중화로  Active-Active 구성할  때 가장 고려해야 할 사항이 데이타 동기화 문제이죠.

데이타 동기화에 문제가 없다면 양쪽 서버 모두 가동 시켜 두고서 로드 발랜싱 형태로 부하를 나눠서 연결시켜 주면 되지만, 양쪽 서버에서 데이타를 동시에 업데이트 시키고 있을 경우에 데이타 정합성에 문제가 생기지 않도록 하기 위해 솔루션이 필요하게 되겠고요.

자료 정합성 문제 때문에 동일 서비스를 Active-Active로 운영하기 보다는 서비스는 Active-Standby로 운영하지만 여러 서비스를 양쪽서버에 분산 운영하면서 하드웨어를 Active-Active로 운영하는 경우가 많죠~

deerokgo
  0 추천 | 약 4년 전

L4 장비가 있으면 A/A 형태로 이중화 구성할 수 있구요

톰캣에서 설정 할 것은 없고, L4에서만 설정해주면 됩니다.

일반적으로 L4를 사용할 때 Virtual IP를 셋팅하고,

외부에서는 Virtual IP로 접속하고 L4에서 로드밸런싱 처리해서 A/A 서버 중 부하가 적은 곳으로 접속해서 서비스 하게 됩니다.


MCCS 솔루션은 클러스트 환경 구성 때문에 사용하는데, 꼭 사용해야 할 필요는 없구요

세션 공유에 대한 부분만 고민 하시면 됩니다.


그리고, 아파치, 톰캣을 주로 많이 사용하고 있어서

접속자가 많지 않다면 톰캣을 사용해도 문제가 없습니다.

Genghis Khan | 약 4년 전

워낙 설명을 잘 해주셔서 답변 달게 없네요 ㅋ

heathtaiji | 약 4년 전

한가지만 더 여쭤봐도 될런지요... L4를 이용해서 VIP로 설정하여 A/A 서비스를 한다고 가정하면.. WAS#1 - WAS#2번간 파일을 동기화하는 방식은 어떻게 되나요? 그냥 SAN 볼륨을 같이 사용하면 되는건가요?? 아니면 볼륨 공유 없이 WAS서버별 각각 써도 무방한지요..

Genghis Khan | 약 4년 전

WAS A-A에서 L4 로드밸런싱 되고 DB단 쪽에 HA 솔루션으로 파일 동기화를 하면 됩니다.

guest | 약 4년 전

WAS 단 자체에서 데이터 동기화를 쓰시려면 공유파일시스템을 쓰셔야 합니다. 리눅스의 경우 gfs2를 쓰시면 됩니다. 뒷단에 DB의 경우 A-S 이면 HA를 쓰시면 되구요

데몬 | 약 4년 전

WAS서버별 각각 볼륨을 써도 상관은 없지만 볼륨간 동기화에 대한 고민을 하셔야 합니다. - 1번 또는 2번 서버 설정이나 소스파일 변경시 동기화 적용을 어떻게 할것인 등..