Spring
Web Server와 WAS
monkeyDugi
2022. 1. 24. 11:43
반응형
Web Server
- 정적 리소스 파일
- 웹 서버도 프로그램 실행하는 기능을 포함하기도 한다고 함...
Web Application Server
- 애플리케이션 로직이 들어간 것(프로그램을 실행하는 것)
- 애플리케이션 코드를 실행하는데 더 특화 됨.
- 자바는 서블릿 컨테이너 기능을 제공하면 WAS라고 볼 수도 있지만
서블릿 없이 자바 코드를 실행하는 프레임 워크도 있음.
실무에서 선정 방법
WEB Server와 WAS를 분리하는 이유
WAS도 정적 리소스를 제공할 수 있고, WEB도 동적 기능을 제공할 수 있음. 그런데 왜 분리하지?
- WAS는 로직을 처리하므로 하는 일이 많기 때문에 정적 리소스까지 처리하면,
WAS가 너무 많은 역할을 담당하게 되므로서버 과부하 우려
가 있음 WAS 장애 시 WEB요청 자체가 불가 해지기 때문에
WEB과 WAS를 분리함.- 정적 리소스는 단순하기 때문에 잘 죽지 않고, WAS는 많은 로직을 처리하기 때문에 죽을 확률이 있기 떄문에
DB나 WAS가 죽었을 때 WEB 요청은 살아있기 때문에 오류 페이지라도 보여줄 수 있음. 효율적인 리소스 관리가 됨.
- 정적 리소스가 많이 사용되면 WEB 서버 증설
- 애플리케이션 리소스가 많이 사용되면 WAS 증설
분리하는 구조
정적인 리소스는
WEB 서버가 처리하도록 함.- 이후
애플리케이션 로직같은 동적 기능이
필요하면 WAS요청 - 정적 리소스만 제공하기 떄문에 웹 서버는 잘 안죽는다.
- 애플리케이션 로직이 동작하는 WAS는 잘 죽음
- 아무래도 로직이 있기 때문에 여러가지 상황이 발생될 우려가 많음.
- WAS, DB 장애 시 웹 서버는 멀쩡하기 때문에 오류화면을 보여주는 방식이 될 수도 있음.
출처 : https://www.inflearn.com/course/스프링-mvc-1
요즘은 용어 경계가 모호함
반응형