728x90
반응형
안녕하세요🐶
빈지식 채우기의 비니🙋🏻♂️ 입니다.
이번에 웹 프로젝트 기술 PM 으로 들어가면서,
서버 쪽 문의 및 대응을 하다보니 알지만 몰랐던(?) 내용이 있어 정리하려고 왔습니다!
첫 번째는 Web Server vs Web Application Server ( WAS ) 입니다.
1. 웹 서버 ( Web Server )
웹 서버란, HTTP 프로토콜을 기반으로 동작하는 서버
동작하는 방식은 클라이언트가 HTTP를 통해 요청을 보내면 웹 서버는 HTTP로 응답하여 정적 리소스 제공
기능 |
정적인 컨텐츠 제공 | WAS를 거치지 않고, 바로 요청한 컨텐츠 제공 |
동적인 컨텐츠 제공을 위한 요청 전달 | 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에 전달 | |
로드밸런서의 역할 | 여러 WAS 에 대한 로드밸런싱 처리 | |
종류 | Apache Server, Nginx |
## 참고 사항 ##
옛날(?) 트랜드 방식으로는,
앞단에 웹서버(Web Server)와 동적인 데이터를 처리하는 웹 어플리케이션 서버(WAS)를 모두 사용하는 방식을 고수하였다.
웹 서버의 정적인 데이터 처리와 여러대의 WAS 를 통제하기 위한 로드밸런서 역할을 수행을 위해서였다.
하지만,
최근은 정적인 데이터 또한 WAS 에서 수행이 가능하고,
로드 밸런서 역할 또한 대체제가 있기 때문에 WAS 만 구성하는 경우도 있다.
2. 웹 어플리케이션 서버 ( WAS )
웹 어플리케이션 서버란, 웹 서버 기능을 포함하여 동적 리소스도 제공할 수 있는 서버
서블릿 컨테이너 또는 웹 컨테이너 제공
기능 |
동적 리소스 제공 |
컨테이너를 통해 프로그램 로직을 수행 |
DB 조회 등 동적 리소스 제공 | ||
종류 | Tomcat, Jetty, Undertow |
3. 웹 서버(Web Server) 와 웹 어플리케이션 서버(WAS) 의 비교
웹 서버 (Web Server) | 웹 어플리케이션 서버 (WAS) | |
리소스 제공 | 정적 리소스 제공 | 동적 리소스 제공 |
서블릿 컨테이너 유무 | X | O |
어플리케이션 코드 실행 | WAS 가 어플리케이션 코드 수행에 특화되어 있습니다. |
4. 웹 서버와 웹 어플리케이션 서버의 분리
아래와 같이 웹 어플리케이션 서버 (WAS) 로만 서비스를 구성하였을 때는 아래와 같은 문제가 발생할 수 있다.
WAS 가 너무 많은 역할을 수행하면 과부하 위험이 있고,
위와 같이 장애 발생 시 오류 화면도 노출이 불가능하다는 단점이 있습니다.
다만!
WAS 를 여러대를 구성하고 로드벨런서를 통해 관리를 한다면,
Web Server 를 구성하지 않고 웹 서비스를 수행할 수 있습니다.
만약 한대의 WAS 만을 구성한다면,
Web Server 가 반드시 필요하고 만약 분리하게 된다면,
아래와 같은 장점을 얻을 수 있습니다.
- WAS에 장애가 발생하더라도 Web Server가 오류화면을 제공
- 정적 리소스만을 제공하는 Web Server는 잘 죽지 않기 때문
- 효율적인 리소스 관리
- 정적 리소스를 많이 사용되면 Web Server 증설
- 동적 리소스를 많이 사용되면 WAS 증설
감사합니다.
참고
728x90
반응형