WEB

Web Server란? WAS란?

긍.응.성 2020. 4. 9. 23:34
반응형

Web Server와 WAS 대해 찾아보고 공부하면서 작성한 글입니다. 내용 중 잘못된 설명이 있다면 짚어주세요~

Web Server와 WAS(Web Application Server)

Web Server

  • 클라이언트가 URL을 통해 서버에 페이지를 요청하면 요청을 받아 정적 콘텐츠를 제공하는 서버
    • 정적 컨텐츠(Static Pages): 항상 동일한 페이지를 말한다. 주로 같은 URL에 동일한 file content를 반환한다.
  • 클라이언트에서 요청이 올 때 가장 앞에서 요청에 대한 처리를 하는 서버이다.
  • 클라이언트의 요청을 기다리고 요청에 대한 데이터를 만들어서 응답하는 역할을 한다.
    • 대표적인 Web Server로는 Apache, NGINX가 존재한다.


      WAS(Web Application Server)
  • 클라이언트가 URL을 통해 서버에 페이지를 요청하면 요청을 받아 동적 콘텐츠를 제공하는 서버
    • 동적 컨텐츠(Dynamic Pages): 요청의 params, geographical data 등 인자 값에 따라 다르게 만들어진 결과물을 말한다.
  • JSP, Servlet 구동 환경을 제공한다.
    • 대표적인 WAS로는 Tomcat, JEUS가 존재한다.

Web Server 와 WAS의 차이

  • Web Server가 HTTP 요청에 따라 단순히 콘텐츠를 제공한다면, WAS는 추가적인 기능(other program)을 더하여 제공하는 것이다.
  • WAS는 Web Server를 포함하고 있을 수 있다.

Web Server 와 WAS를 분리한 이유

한마디로 정리하면 내가 제일 잘하는것은 내가 처리하자이다.

  • (Web Server)정적인 파일들을 인자에 따라 처리하는 WAS를 거치지 않아도 된다. Application Server까지 가지 않고 앞단에서 빠르게 처리할 수 있다.
  • (WAS) 요청에 따라 다른 콘텐츠라면 모든 발생 가능한 요청에 대하며 미리 페이지를 만들어 놓기에는 자원적으로 부족하며, 요청에 맞는 데이터를 가져와(DB나 요청에서) 비즈니스 로직에 맞게 결과를 제공할 수 있다.

함께 이용되는 이유

위의 내용으로만 생각하면 WAS는 Web Server의 기능도 모두 수행할 수 있다.
하지만 실제로 많은 어플리케이션 서버는 WAS를 Web Server와 함께 사용한다.

대표적인 이유로는 WAS가 동적인 페이지를 제공하는데 걸리는 시간 동안 정적인 페이지를 제공하는데 걸리지 않기 때문이다.
WAS에서 정적인 페이지또한 제공한다면

  1. 기능을 분리하여 서버 부하 방지 (제공 속도 Web Server > WAS)

    • WAS는 DB 조회 등 페이지를 만들기위한 다양할 로직을 처리하느라 바쁘다. 단순한 정적 콘텐츠를 WAS에서 제공한다면 다른 작업에 사용하는 리소스들로 인해 지연이 생겨날 수 있다. 그러므로 정적 콘텐츠는 Web Server를 두어 빠르게 제공해주는 것이 좋다.
    • tomcat 5.5 이상부터는 httpd의 native 모듈을 이용하여 성능이 크게 떨어지지 않는다고한다. 하지만 나눴을 때의 좋은 점은 아래에 더 있다!
  2. 물리적으로 분리하여 보안 강화

    • SSL에 대한 암복호화 처리에 Web Server를 사용한다.
    • 공격에 대해 Web Server를 앞단에 두어 중요한 정보가 담긴 DB나 로직까지 (WAS까지) 전파되지 못하게 한다.
  3. 여러 대의 WAS를 연결 가능 (Load Balancing, 장애극복, 무중단 운영)

    • Load Balancing을 위해 Web Server를 사용
    • fail over(장애 극복), fall back 처리에 유리
    • 대용량 웹 애플리케이션의 경우 Web Server와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다 (GLSB)..
  4. 다른 종류의 WAS로 서비스 가능

    • java서버, C#서버 php서버 들을 하나를 웹서버를 통해 서비스 가능하다

static 한 데이터와 dynamic 한 데이터를 다루는 양(빈도)에 대하여 고려한다면 둘을 병행할 때 더 좋은 성능을 기대할 수 있다.
web server는 큰 대역폭을 소모하지 않으며 간단한 요청이나 캐싱을 처리할 수 있으며, 남은 자원을 더 복잡한 요청을 처리하는데 이용할 수 있다. 개발자들은 어떠한 요청이 정적인 데이터 혹은 동적인 데이터를 제공하는지 구분하고 있어야 하며, 동적인 데이터를 application server로 넘겨주는 필터링 기술을 이용한다면 더 좋은 성능을 만들어 낼 수 있다.






참고자료

반응형