3 tier 하면 web-was-db 의 구성이 일반적인데 여기서 was(web application server)가 무엇이며 web server와 무엇이 구별되는 것인지를 확인해보기로 하자.
Web Server는 Client의 요청과 접속을 관리하고 단순히 정적 내용을 뿌리는 것. HTML을 프로그래밍 언어가 아니고 정적인 내용만 준다. 단적인 예로, HTML에서 for문을 쓸 수 없지않은가?
반면 Web Application Server는 동적인 내용을 만들어내는 서버이다. 비즈니스 로직을 수행하고 DB에 접근한다.
클라이언트(브라우저)가 요청 => Web Server는 WAS로 요청 전송 => WAS는 동적으로 컨텐츠 생성 및 비즈니스 로직 수행 => Web Server는 그것을 받아 클라이언트에게 전달
구체적인 제품으로는
Web Server로 NginX, Apache, IIS 등이 존재
WAS로 TomCat, IBM websphere... 그냥 일반적인 백엔드 서버 사이드 스크립트로 작성된 것 일체가 다 was다.
Load Balancing의 관점에서
자, 그런데 요청이 너무 많을 경우 Load Balancing을 구현한다
Load Balacing의 관점에서 Web Server에서 클라이언트의 요청을 받아 여러 대의 WAS에 적절하게 분배한다.
* Proxy의 관점으로 보자면 Web Server가 reverse proxy의 역할을 하는 것이다.
- Load Balacing
Web server 1대 두고 여러 대의 WAS에게 일을 분배시키는 내용이다.
웹 서버인 Nginx를 로드 밸런싱의 역할을 하도록 세팅할 수 있다.
웹 서버인 apache를 한 대 두고 was인 여러 톰캣 서버를 돌릴 수 있다.
웹 서버인 nginx 한 대 두고 여러 서버를 돌릴 수 있다.
Load Balancing의 종류로는
OSI 7계층에 의해 L2, L3, L4, L7 단에서 로드 밸런싱을 구현할 수 있다.
백엔드 개발자는 L4, L7 정도를 알면 된다고 한다.
L2는 Mac 주소를 바탕으로 로드 밸런싱을 하며
L3 IP 주소를 기반으로
L4 transport layer(IP와 PORT) 레벨에서 로드 밸런싱. 예를 들어 특정 url로 접속시 로드 밸런싱을 함
L7 어플리케이션 레벨에서 로드 벨런싱. 예를 들면 example.com/category와 example.com/search 경로를 처리하는 was가 다른 것.
참고)
'🌐 Network > 🌐 Network' 카테고리의 다른 글
OSI 7계층에 대한 이해 (0) | 2021.03.08 |
---|---|
IP class, (서브)넷마스크, 네트워크 주소, 서브네팅 (0) | 2021.02.21 |
Forward Proxy vs Reverse Proxy (0) | 2021.02.01 |
스트리밍 서비스(온 디맨드, 라이브)에 대한 이해 (0) | 2021.01.28 |
ping 으로 네트워크 점검하기 (1) | 2020.09.27 |