본문 바로가기
Backend🔋/서버

[서버] 웹서버(Web Server)와 웹 어플리케이션 서버(WAS)

by 텅빈비니 2024. 11. 8.
반응형

안녕하세요🐶

빈지식 채우기의 비니🙋🏻‍♂️ 입니다.

 

이번에 웹 프로젝트 기술 PM 으로 들어가면서,

서버 쪽 문의 및 대응을 하다보니 알지만 몰랐던(?) 내용이 있어 정리하려고 왔습니다!

 

첫 번째는 Web Server vs Web Application Server ( WAS ) 입니다.


1. 웹 서버 ( Web Server )

웹 서버란, HTTP 프로토콜을 기반으로 동작하는 서버
동작하는 방식은 클라이언트가 HTTP를 통해 요청을 보내면 웹 서버는 HTTP로 응답하여 정적 리소스 제공

https://wikidocs.net/227183

기능

정적인 컨텐츠 제공 WAS를 거치지 않고, 바로 요청한 컨텐츠 제공
동적인 컨텐츠 제공을 위한 요청 전달 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에 전달
로드밸런서의 역할 여러 WAS 에 대한 로드밸런싱 처리
종류 Apache Server, Nginx

 

## 참고 사항 ##

옛날(?) 트랜드 방식으로는,

앞단에 웹서버(Web Server)와 동적인 데이터를 처리하는 웹 어플리케이션 서버(WAS)를 모두 사용하는 방식을 고수하였다.

웹 서버의 정적인 데이터 처리와 여러대의 WAS 를 통제하기 위한 로드밸런서 역할을 수행을 위해서였다.

 

하지만,

최근은 정적인 데이터 또한 WAS 에서 수행이 가능하고,

로드 밸런서 역할 또한 대체제가 있기 때문에 WAS 만 구성하는 경우도 있다.


2. 웹 어플리케이션 서버 ( WAS )

웹 어플리케이션 서버란, 웹 서버 기능을 포함하여 동적 리소스도 제공할 수 있는 서버
서블릿 컨테이너 또는 웹 컨테이너 제공

https://velog.io/@ddclub12/%EC%9B%B9-%EC%84%9C%EB%B2%84Web-Server%EC%99%80-WAS%EC%9D%98-%EC%B0%A8%EC%9D%B4

기능
동적 리소스 제공
컨테이너를 통해 프로그램 로직을 수행
DB 조회 등 동적 리소스 제공
종류 Tomcat, Jetty, Undertow

3. 웹 서버(Web Server) 와 웹 어플리케이션 서버(WAS) 의 비교

  웹 서버 (Web Server) 웹 어플리케이션 서버 (WAS)
리소스 제공 정적 리소스 제공 동적 리소스 제공
서블릿 컨테이너 유무 X O
어플리케이션 코드 실행 WAS 가 어플리케이션 코드 수행에 특화되어 있습니다.

4. 웹 서버와 웹 어플리케이션 서버의 분리

아래와 같이 웹 어플리케이션 서버 (WAS) 로만 서비스를 구성하였을 때는 아래와 같은 문제가 발생할 수 있다.

https://hstory0208.tistory.com/entry/Web%EA%B3%BC-WAS%EB%9E%80-%EC%9B%B9-%EC%84%9C%EB%B9%84%EC%8A%A4%EC%9D%98-%EA%B5%AC%EC%A1%B0%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

 

WAS 가 너무 많은 역할을 수행하면 과부하 위험이 있고, 

위와 같이 장애 발생 시 오류 화면도 노출이 불가능하다는 단점이 있습니다.

 

다만!

WAS 를 여러대를 구성하고 로드벨런서를 통해 관리를 한다면,

Web Server 를 구성하지 않고 웹 서비스를 수행할 수 있습니다.

 

만약 한대의 WAS 만을 구성한다면, 

Web Server 가 반드시 필요하고 만약 분리하게 된다면,

아래와 같은 장점을 얻을 수 있습니다.

  • WAS에 장애가 발생하더라도 Web Server가 오류화면을 제공
    • 정적 리소스만을 제공하는 Web Server는 잘 죽지 않기 때문
  • 효율적인 리소스 관리
    • 정적 리소스를 많이 사용되면 Web Server 증설
    • 동적 리소스를 많이 사용되면 WAS 증설

감사합니다.


참고

반응형