System Settings

[WEB/WAS 개념 정리 시리즈] 4편 - Web–WAS 연동: 로드밸런싱과 세션 클러스터링

midworker 2025. 5. 14. 22:24
반응형

[WEB/WAS 개념 정리 시리즈] 4편 - Web–WAS 연동: 로드밸런싱과 세션 클러스터링

이번 글에서는 Apache와 WAS(Tomcat, JBoss 등) 사이의 연동 구간에서
로드밸런싱 구성 방법세션 클러스터링 처리 방식을 실무 중심으로 설명합니다.


✅ Web–WAS 연동 구조 개요

기본 호출 흐름

Client → Apache → WAS Cluster(Node1, Node2...) → DB

사용 목적

  • 로드밸런싱: WAS 부하 분산
  • 세션 클러스터링: 로그인 등 상태 유지

✅ 로드밸런싱 구성 방식

방식 설명
mod_jk AJP 기반, 정밀 제어 가능
mod_proxy_ajp AJP 기반 프록시 방식, 설정 간단
mod_cluster 자동 등록, 동적 관리, JBoss 기반에서 추천

✅ mod_jk 구성 예

workers.properties

worker.list=wascluster
worker.node1.type=ajp13
worker.node1.host=192.168.1.101
worker.node1.port=8009
worker.node2.type=ajp13
worker.node2.host=192.168.1.102
worker.node2.port=8009
worker.wascluster.type=lb
worker.wascluster.balance_workers=node1,node2
worker.wascluster.sticky_session=1

httpd.conf 설정

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkMount /app/* wascluster

✅ Sticky Session이란?

  • 세션을 생성한 WAS에 계속 요청이 전달되도록 유지하는 방식
  • 세션 복제가 없더라도 사용자 상태 유지 가능

예시

JSESSIONID=123456.node1
→ 다음 요청도 node1으로 라우팅

✅ 세션 클러스터링 구성

1. WAR 파일 설정

<web-app>
  <distributable/>
</web-app>

2. WAS 측 설정

  • Tomcat: jvmRoute 지정
<Engine name="Catalina" jvmRoute="node1">
  • JBoss: Infinispan 기반 세션 복제 지원

✅ mod_proxy_ajp 구성 예

<Proxy balancer://wascluster>
  BalancerMember ajp://192.168.1.101:8009 route=node1
  BalancerMember ajp://192.168.1.102:8009 route=node2
  ProxySet stickysession=JSESSIONID
</Proxy>

ProxyPass /app/ balancer://wascluster/app/
ProxyPassReverse /app/ balancer://wascluster/app/

✅ 구성 확인 체크리스트

  • Apache에서 AJP 요청이 실제 들어가는지 로그 확인
  • 각 WAS 인스턴스에 동일 WAR 배포 여부
  • JSESSIONID에 .nodeX가 붙는지 여부
  • 세션 유지 테스트

✅ 마무리

Web–WAS 구간은 성능과 안정성 모두를 책임지는 핵심 연동부입니다.
로드밸런싱과 세션 처리 전략에 따라 전체 시스템의 응답성과 일관성이 좌우됩니다.
다음 편에서는 WAS와 DB 사이의 Connection Pool, 쿼리 흐름, APM 연동을 다룹니다.


반응형