티스토리 뷰

회사에서 어드민 서버를 신규 인프라로 이전하게 됐다. 베이스에서부터 작업하다보니 이전하면서 서버의 구조에 대해 볼 일이 생겼다. 우리 회사에서 사용하는 어드민의 서버 구조는 웹서버와 WAS를 연동시킨 구조였다.

 


대충 위와 같은 구조이고, 앞라인에 L4 로드밸런서를 둬서 로드밸런싱을 하고 있다.

 

L4 부분까진 정확히 알 수 없으니, Httpd 웹서버와 Tomcat을 연동하면서 기억하고 싶었던 내용을 정리하려고한다. 그리고 위 내용을 정리하기 전에 웹서버와 WAS의 내용을 정리하지 않고 지나갈 수가 없었다..

 

1. 웹서버(Web Server)

웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램 - 위키백과

 

위키백과의 정의와 같이 웹서버는 HTTP 요청을 받아들여 "정적 컨텐츠"를 사용자에게 반환하는 역할을 한다. 여기서 "정적 컨텐츠"란 일반적인 그림 및 영상 파일 뿐만 아니라 자바스크립트, CSS가 포함된 HTML페이지를 이야기한다.

 

단순히 정적인 컨텐츠만을 사용자에게 반환하는 역할을 하는게 아니라 로드 밸런싱 등 WAS와 연결고리 역할을 해주기도 하는데 이 부분이 이 글을 쓰게 된 동기이다.

 

대표적으로 Apache Httpd Server와 Nginx가 있으며, 이 두 개가 웹서버계를 양분하고 있다.

 

둘의 장단점도 또 정리를 해야할 내용이다...

 

2. WAS(Web Application Server)

웹 애플리케이션 서버(Web Application Server, 약자 WAS)는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크이다. 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)로 볼 수 있다. 웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다. - 위키백과

 

일반적으로 웹서버가 단독으로 처리할 수 없는 부분인 서비스 로직과 DB CRUD 등 "동적 컨텐츠" 부분을 담당한다. 어렵게 생각할 것 없이 사용자가 요청하는 정보를 DB와 연동하여 처리해, 해당 결과를 다시 알려주는 역할을 담당한다.

 

표현이 조금 어려운데 WAS의 역할은 DB 데이터를 사용자에게 바로 노출시킬수 없기 때문에 사용자로부터 요청받아 DB에 접근하고, 그 데이터를 정제해서 사용자에게 뿌려주는 역할이다.

 

대표적으로 Apache Tomcat이 있다. 다른 미들웨어 엔진들도 있지만 대부분 생소한 것들이다.

 

3. 왜 단일 구조를 사용하지 않는가?

사실 이 부분이 제일 의문점을 갖기 쉬운 부분이다.

 

근래의 서버 미들웨어들은 단일 기능만 갖고 있지 않다. 동적/정적 컨텐츠를 모두 다룰 수 있게 기능을 제공하고, 컴퓨팅 파워 또한 무리 없이 설정할 수 있다.

 

그럼에도 불구하고 하나의 미들웨어에게 다양한 역할을 맡기지 않는데는 생각보다 많은 이유가 있다.

 

  1. 과부하 방지. 사이즈가 큰 정적 데이터를 요청할 경우, 단일 서버는 병목현상을 자주 겪는다. 위에서 언급한 것과 같이 정적 데이터는 WEB서버에 요청 & 일반 API는 WAS에 요청하여 나눠서 운영해 과부하를 방지한다.
  2. 보안적인 부분. 실제 웹 어플리케이션이 동작은 WAS에서 담당한다. 이 부분을 외부에 노출 시키지 않기 위함도 존재한다. 실제 DB와 연동하는 로직과 설정들은 WAS에 있기 때문에 더 숨길 필요가 있다.
  3. 장애극복기능. 일반적으로 Failover라고 부른다. 단일 서버로 서비스를 운영하다가 서버가 죽어버리면 서비스 전체가 마비되는 상황에 놓이기 때문에, 이를 피하기 위해서 여러대의 웹서버와 WAS를 두고 사용한다. WAS 한대가 죽더라도 무중단 운영이 가능하다.
  4. 로드밸런싱. 1절에서 언급했듯이 WEB서버도 로드밸런싱 역할을 할 수도 있다.

내가 모르는 것 외에도 다양한 이유가 있을 수 있으나 아는 선에서 최대한 정리해보았다. 개념을 알아봤으니 실제는 어떻게 연결하는지 configuration 파일을 열어보면서 정리해볼 에정이다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함