Apache HTTP Server와 WAS를 연동하여 사용하는 이유

일전에 회사에서 다른 솔루션 회사의 제품에 대해서 교육을 들을 기회가 있었다.

 

해당 솔루션은 통합 메시징시스템 솔루션이였는데 Apache Server와 WAS를 연동해서 사용하고 있었다.

 

 문득 나는 Tomcat만 설치해도 Tomcat 자체가 웹 서버 기능을 제공하는데

왜 굳이 Apache Server를 별도로 설치해서 Apache Server랑 Tomcat  두 녀석을 연동해주는 귀찮은 일을

도대체 왜하는 걸까? 라는 의문이 있었다.

 

이러한 의문에 해답은 아래와 같다.

 

1. 성능과 확장성

 Apache HTTP Server 같은 웹 서버들은 정적 컨텐츠를 효율적으로 처리하는 데 최적화되어 있다.

동적 컨텐츠 처리는 WAS에게 맡기고, 정적 컨텐츠는 웹 서버에서 처리하도록 함으로 시스템 전체의 부하를 줄이고

성능을 향상시킬 수 있다고 한다.

 

2. 보안의 측면

웹 서버와 WAS를 분리하여 운영하면, 웹 서버를 DMZ (Demilitarized Zone)와 같은 보안 영역에 배치하고, WAS는 내부 네트워크에 위치시켜 추가적인 보안 계층을 구성할 수 있다.

 

보통 위 도식과 같이 DMZ의 앞뒤로 방화벽을 설치한다.

 

웹 서버는 사용자의 요청을 받아 처리하는 곳이기 때문에 공격자로부터 쉽게 노출된다.

이러한 웹 서버를 DMZ에 두면, 외부 공격자가 웹 서버를 통해 내부 네트워크에 접근하는 것을 막을 수 있다.

 

웹 서버가 공격 당하더라도, DMZ 설정으로 인해 내부 네트워크로의 접근은 제한되므로, 중요한 데이터나 시스템들은 추가적인 보호조치를 취할 수 있기 때문이다.


3. 유연성

웹 서버는 여러 WAS와 연동될 수 있기 때문에, 서로 다른 기술 스택을 가진 여러 애플리케이션을 하나의 웹 서버 아래에서 운영할 수 있습니다.

 

4. 로드벨런싱

 Apache HTTP Server나 Nginx와 같은 웹 서버들은 리버스 프록시 및 로드 밸런서로서의 역할도 할 수 있다.

이를 통해 여러 대의 WAS 서버로 트래픽을 분산시키는 로드 밸런싱을 구현할 수 있어, 대규모 트래픽을 효과적으로 처리하는데 도움이 된다고 한다.

 

 위와 같은 내용들이 필요하기 때문에 웹서버랑 WAS 2개 모두 설치해서 연동하는 것이지만
굳이굳이 간단한 웹 애플리케이션이라거나 또는 개발/테스트 환경일 경우에는 그냥

Apache Tomcat만을 사용하여도 충분하다.