|
박군은 올해 FM 방송사에 홀로 입사한 신출내기로 학교 다니는 시절 리눅스와 솔라리스 운영체계에 약간의 관심을 가지고 있었다. 입사 3일째, 국장님은 박군에게 FM방송 개국에 맞춰 홈페이지를 구축하라는 업무지시를 내리시는 것이었다.
박군은 아파치 서버를 설치해 본적은 있지만 실무에서 적용해 본적이 없었기 때문에 회사에 가지고 있는 각종 서버들을 먼저 조사해보기로 했다.
웹서버란 무엇인가?
웹서버란 웹 환경에서 클라이언트/서버 역할을 하는 것을 의미한다. 메인프레임과 클라이언트/서버 시대를 거쳐 웹이 컴퓨터 환경의 대표적인 존재로 부각되고 있지만 웹 환경도 클라이언트/서버 환경의 연장이라고 생각하면 된다. 즉, 여러 개의 클라이언트들은 웹 브라우져들이고, 서버의 역할은 웹서버가 해주는 것이다.
이러한 웹서버로는 아파치 웹서버와, 마이크로소프트의 IIS, 그리고 넷스케이프사의 엔터프라이즈 서버 외에, IBM의 AS/400를 위한 서버, 오라클 웹서버등이 제공되고 있다.
<그림 1>은 일반적인 웹서버의 구조를 보여주고 있다. 각 클라이언트들 즉, 웹 브라우저들이 HTTP를 사용하여 Internet 망을 거쳐 웹서버에 요청(Request)하면 웹서버는 데이터베이스 시스템 등 여러 서버측 자원을 이용하여 그 결과를 클라이언트로 응답(Response) 해준다.
박군은 평소에 관심이 있었던 리눅스 운영체제를 사용하기로 마음은 먹었지만 데이터베이스는 어떤걸 써야할지, 개발도구를 무엇을 사용할지 감이 잡히지않았다. 그래서, 쇼핑, 금융, 방송등 전산업계의 선배님들과 프로 개발자들은 무슨 웹서버를 기반으로 어떠한 개발도구로 시스템을 구축하고 있는지 궁금하지 않을수 없었다.
넷크래프트
<화면 1 : 넷크래프트 사이트>
넷크래프트(netcraft.com) 사이트는 전세계에서 동작중인 웹서버들에 대해서 재미난 부가 정보를 보여주는 서비스를 제공한다. 특히 목표로 하는 사이트가 트래픽이 어느정도 걸리고부터 웹서버 종류와 어떤 개발도구를 어느시점에 설치했는지까지도 알려준다. 내용을 알고자하는 사이트의 도메인네임을 적어넣고서 아래처럼 나타나면 우측의 하이퍼링크를 클릭하면 된다.
OOO.ac.kr [What's that site running?]
처음에는 OO 정보대학교를 목표로 검색해보았다. 위와같은 질의를 클릭해보면 나타나는 리포트에서 당시 상황들을 나름대로 유추(?)해볼수 있는 내용들이 흥미롭게 펼쳐진다.
The site www.OOO.ac.kr is running Apache/1.3.22 (Unix) PHP/3.0.18 on Solaris.
우선 OO 정보대 사이트는 솔라리스 유닉스 운영체제에서 최신버전의 아파치서버 1.3.22 버전으로 서비스를 운용중이며, PHP 스크립트 개발도구 3.0.18을 사용하고 있는 것으로 보여준다.
[표-1] OO 정보대의 변경현황
운영체제 |
웹서버 |
마지막 변경일 |
IP주소 |
Netblock Owner |
Solaris |
Apache/1.3.22 (Unix) PHP/3.0.18 |
2002-01-24 |
203.24x.x.x |
KRNIC |
Solaris |
Apache/1.3.22 (Unix) PHP/3.0.18 |
2001-11-24 |
203.24x.x.x |
KRNIC |
Solaris |
Apache/1.3.22 (Unix) PHP/4.0.6 |
2001-11-19 |
203.24x.x.x |
KRNIC |
Solaris |
Apache/1.3.12 (Unix) PHP/3.0.12 |
2001-01-28 |
203.24x.x.x |
Korean Education Network |
그런데, [표 1]을 참조해보면, 2001년 11월 19일에 3.0.12에서 PHP 4.0.6으로 메이저버전 업그레이드를 하였다가 5일후인 11월 24일에는 PHP/3.0.18로 다운그레이드를 시킨다. 마이너버전 업그레이드로 바꾼 것이다. 시시각각 빠른 업그레이드에 매우 익숙한 개발자들에게 "다운그레이드"라는 단어는 묘한 뉘앙스를 풍길수 있다. 다운그레이드를 하는 경우는 대부분 서버 플랫폼과 개발도구간 버전끼리 호환성이 문제되는 경우에 안정성이 검증된 이전 버전으로 맞춰주는 일이나, 운영도중 안정성에 문제가 있을 때만 다운그레이드를 하는 것이 일반적인 생각이기 때문이다. 5일만에 바꾼걸 보면 혹시 PHP 4에 문제라도 있었던 것일까라는 의문이 생길수밖에 없다.
SBS 사이트
국내 메이저 방송사중 SBS 방송사 사이트에서 서버 하나를 추적해보기로 했다. 전산담당자에게 문의해야겠지만, 넷크래프트라는 편리한 방법으로 리눅스 운영체제에서 Apache/1.3.20과 PHP/4.0.6을 사용하고 있음을 즉시 알수 있었다.
The site cs.sbs.co.kr is running Apache/1.3.20 (Unix) PHP/4.0.6 on Linux.
[표-2] cs.sbs.co.kr 의 변경현황
운영체제 |
웹서버 |
마지막 변경일 |
IP주소 |
Netblock Owner |
Linux |
Apache/1.3.20 (Unix) PHP/4.0.6 |
2002-01-24 |
211.63.185.105 |
CENTRAL DATA COMMUNICATION OFFICE |
Linux |
Apache/1.3.20 (Unix) PHP/4.0.6 |
2001-10-08 |
211.63.185.105 |
KRNIC |
Linux |
Apache/1.3.14 (Unix) PHP/4.0.2 |
2001-07-08 |
211.63.185.105 |
KRNIC |
Linux |
Apache/1.3.12 (Unix) PHP/4.0.1pl2 |
2000-11-27 |
211.63.185.105 |
KRNIC |
박군은 여기서 아파치 서버의 버전을 더 올리지 않는걸 보니 이 두 버전의 조합이 가장 최적이라구 기대할수 있지않을까란 생각이 들었다. 서버 시스템 구축은 늘 최신버전보다는 가장 안정성있게 돌릴 수 있는 쪽을 택해야 한다고 생각하고 있는 터였다.
리눅스는 운영체제의 특성상 관리자가 부지런하기만 하면 늘 패치를 해주고 가장 최신버전으로 운용할수 있기 때문에 보안상의 문제는 생기지않을 자신이 있었다.
그렇다면, 보안을 중요시 하는 전자상거래 사이트와 금융, 은행권 서버들은 과연 어떤 서버플랫폼을 사용하고 있을까란 의문이 머리를 스친다. 국내의 대표 사이트들을 넷크래프트에 넣어본 결과 각양각색의 운영체제와 웹서버를 사용하고 있는 것으로 드러났다.
대부분의 전자상거래 사이트에서는 솔라리스 운영체제를 선호하는 경향이었고, SSL(Secure Socket Layer)같은 보안 요소를 제공하기위해서 대부분 넷스케이프 엔터프라이즈 서버를 사용하고 있었다. SSL은 넷스케이프사가 자체 개발한 지불관련 보안 프로토콜인데, 현재 전세계에서 신용카드 보안에 가장 많이 사용되고 있는 추세다. URL에 http://대신 https:// 로 나타나는 사례를 많이 보았을것이다
대부분의 전통적인 닷컴기업들은 FreeBSD 위에서 아파치 서버를 사용해서 돌리는 경우가 많았다. 오라클처럼 자사의 오라클 웹서버와 웹 리스너로 구축하는 형태도 있고, 애플코리아처럼 MAC OS X 서버를 쓰는 사이트도 있었다. 애플의 MAX OS X 운영체제는 FreeBSD 운영체제에 기반을 두고 개발되었다.
[표-3] 넷크래프트에 나타난 국내외 사이트 현황
사이트 |
운영체제 |
웹서버 |
삼성몰 |
Solaris |
Netscape-Enterprise/4.1 |
현대백화점 |
Solaris |
Netscape-Enterprise/3.6 SP3 |
인터파크 |
FreeBSD |
Apache/1.3.20 ApacheJServ/1.1.2 |
국민은행 |
IBM AIX |
IBM_HTTP_Server/1.3.12.2 Apache/1.3.12 (Unix) Netscape-Enterprise/3.6 |
LG카드 |
Solaris |
Apache/1.3.12 PHP/3.0.7 ApacheJServ/1.1 |
삼성화재 |
IBM AIX |
IBM_HTTP_Server/1.3.12.2 Apache/1.3.12 (Unix) |
한국오라클 |
Solaris |
Oracle9iAS Web Cache/2.0 M / Oracle_Web_listener3.0.2/2.14FC1 Oracle HTTP Server Powered by Apache/1.3.19 mod_perl/1.25 mod_oprocmgr/1.0 mod_plsql/3.0.9.8.2 mod_fastcgi/2.2.10 |
애플코리아 |
MAC OS X |
Apache/1.3.9 (Mac OS X Server) |
cdrom.org |
FreeBSD |
Apache/1.3.22 (Unix) PHP/4.1.1 mod_ssl/2.8.5 OpenSSL/0.9.6a |
솔라리스 8 와 아파치
Apache 서버는 거의 모든 OS 플랫폼에서 돌아가는데 그 중에서도 리눅스에서 가장 인기가 있으며, 그 다음이 선 마이크로시스템즈의 솔라리스다. 솔라리스 8 인텔 에디션에서는 Apache 웹서버가 기본으로 장착되어 OS가 부팅할 때 함께 웹서버가 로드되도록 설정되어 있다. 그러나, 솔라리스 8가 성공적으로 설치되었다고 하더라도 Apache 서버가 제대로 올라오지 않는 경우가 생길수 있다. 네트워크 설정이 완벽하지 않거나, 값싼 리얼텍 어댑터를 인식조차 못하는 경우도 있다. (네트워크 설정에 대해서는 리매 2000년 8월호를 참고한다)
httpd.conf 설정파일의 내용이 조금만 이상하다면 httpd 데몬이 올라오지않고 실패하기 때문에 짜증나는 에러메시지만 보게될 것이다.
/etc/apache 디렉토리에 기본 설정파일들이 모여있는데, 솔라리스 8 인텔에디션에서는 중요한 httpd.conf 파일이 전혀 존재하지 않는 경우도 생긴다. httpd.conf-example 파일을 이름만 바꿔서 복사해넣고, 파일 내용중에서 ServerName 섹션만 조금 고쳐주는 응급조치가 필요해진다. ServerName이 "Unknown"이면 역시 httpd 데몬이 실패하므로 꼭 설정해주어야만 한다. 이제 Apache 로 웹서비스를 할 준비는 마친 것이다. 튜닝을 위해서는 세세한 설정내용들이 있지만, php와 오라클을 연동시켜서 컴파일해야 하기 때문에 다음기회에 다시 한번 소개할 기회가 있을것이다.
<화면 2 솔라리스로 운영중인 OO 백화점>
넷스케이프 엔터프라이즈 서버
혹자는 윈도2000 운영체제를 사기만 하면 무료로 IIS 웹서버가 제공되는데, 누가 돈주고 넷스케이프 엔터프라이즈 서버를 사용하겠냐고 말한다. 모르는 소리다. 전자상거래라도 한다고 치면 머천트서버로 사용할 마이크로소프트 사이트서버 (닷넷 플랫폼에서는 커머스 2000) 제품을 추가로 구매해야 한다. 가격도 넷스케이프 엔터프라이즈 서버랑 엇비슷하게 책정되어 있다.
넷스케이프 엔터프라이즈 서버는 유닉스/리눅스/윈도NT등 플랫폼을 따지지않는데다 보안성을 위한 SSL(Secure socket Layer) 프로토콜에 대한 투자라고 생각한다면 전혀 아깝지가 않다. http 서버에 대한 보안정책도 윈도 NT랑 다른 방향으로 나아갔기 때문에 보안성도 IIS 서버보다 나은 편이다.
2001년도 악명을 떨친 CODE_RED나 님다 바이러스의 웹 서버 공격에도 전혀 마음졸일 필요가 없었으며, ::$DATA나 %CC같은 ASP 스크립트 공격은 다른 세상의 이야기가 아닌가 말이다. 필자가 윈도NT 플랫폼에서 넷스케이프 엔터프라이즈 3.5와 LiveWire 개발도구를 사용해보면서 느끼는 거지만, 항상 웹서버 문제라기보단 OS 문제 때문에 불루스크린의 악몽에서 벗어나지 못하는 것 같다. 아파치서버로 운영중인 사이트는 전원 한번 안 끄고, 2년동안 내버려둬도 꿋꿋하게 버티는 걸 보면 과연 대단한 웹서버 소프트웨어가 아닌가 감탄을 금치못할 뿐이다.
마이크로소프트의 IIS서버는 인트라넷에서 저비용의 시스템을 구축하는데는 최적이지만, 수만명의 대형사이트를 구축하는데는 더 많은 웹서버와 캐시서버를 요구하면서 천문학적인 하드웨어 비용을 요구하게 된다. 차라리 몇대 안되더라도 같은 값이면 유닉스 머신을 돌리는 것이 가용성이나 관리면에서도 유리하다는 생각이다.
웹투비 서버
박군은 눈앞에 닥친 문제점을 해결하기 위하여 리눅스나 솔라리스등 이것저것 알아보는중에 우리나라에도 웹서버 제품과 미들웨어가 있다는 사실을 발견했다. 바로 티맥스소프트의 웹투비(WebtoB)와 티맥스가 그것이다. 박군은 넷크래프트를 이용해 박군의 모교인 울산대학교의 웹서버를 점검해 본 결과, 웹투비 서버를 사용하고 있다는 것을 알아내었다.
흔히들 세계 웹서버 시장은 Apache 서버가 60-70% 이상의 점유율을 보이면서 압도적으로 점령한 상태이며, 그 뒤를 마이크로소프트의 IIS (Internet Information Server)가 차지하고 있고, 넷스케이프의 엔터프라이즈 서버가 약간의 점유율을 차지하는 것으로 분석되고 있다.
아파치 웹서버의 점유율이 높은 이유는, 무료이면서 솔라리스나 리눅스등 여러 플랫폼을 지원해주기 때문인데, 무료라는 것은 다른 말로는 전화를 붙들고 물어볼 만한 곳이 마땅치않다라고 해석한다면 최대의 단점으로 비춰지기도 한다. 소스코드가 공개되어있기 때문에 보안에 취약할거라는 문제가 제기되고 있지만 최신패치를 깔아주면 그런 일은 절대 없다고 생각된다. IIS의 경우는 현재 윈도 2000 운영체제에서 동작하는 IIS 5.0 버전까지 발표되어 있고, 많이 안정화가 되었다지만 걸핏하면 코드레드 바이러스등 침입을 당하는 실정이다.
웹서버를 선택하는 조건
세계에서 가장 작은 손톱만한 웹서버도 이미 만들어져 운영되고, 앞으로도 냉장고용 웹서버까지 등장할 것이다. 소프트웨어분야는 컴포넌트의 조립이라는 형태로 변하고 있기 때문에 현재 주어진 프로젝트를 가장 멋지게 성취시킬수 있는 플랫폼을 제공해주는 웹서버를 선택하는 문제는 아마 과거, 현재, 미래 할 것 없이 중요한 과제임에 틀림이 없다. 앞으로 웹의 역할을 계속 커져가고 있기 때문이다.
필자를 비롯해 각 기업에서 웹서버를 선택하는 기준은 여러 가지가 있겠지만, 크게 네가지로 나눌수 있겠다.
첫째, 사용자가 갑자기 한꺼번에 많이 몰리거나, 혹은 사용자들이 잘못된 요청을 계속 보내도 웹서버는 절대 다운되지 않고 동작해야 한다. 웹서비스가 다운되는 순간부터 이미 신뢰를 잃어버리고 회복하기는 어렵다. 그래서 8월 15일날이면 으레 행해지는 독도 수호를 위한 ping 공격은 가장 단순하면서도 가장 무서운 것이다.
두 번째, 너무 높은 사양을 필요로 해서는 안 된다. 저사양의 하드웨어에서도 원활하게 사용자들의 요청을 처리해야 한다. 야후코리아나 프리챌같은 경우는 보통 웹서버만 50-100여대 이상을 보유하고 있다. 이름도 www1, www2, ... www50 이런 식인데, 캐시 서버나 로드밸랜서를 동원해서 응답 속도를 높이는 역할을 해준다. 저사양 하드웨어라니까 펜티엄 90Mhz정도를 생각하실지 모르지만, 응답속도가 너무 느려서 비현실적이다. 적어도 펜티엄 200Mhz정도의 LG-IBM 325 PC 서버급으로도 훌륭한 웹 서비스를 하고 있다.
엠파스같은 기업은 펜티엄 500Mhz급의 투웨이 서버 300대를 리눅스 클러스터링해서 검색엔진 및 메일서버등으로 운영하고 있지만, 체감 속도가 느리다거나 하는 하등의 이유도 없으며, 소프트웨어 개발비도 적게 들이는 효과를 톡톡히 맛보고있다. 기존의 운영중인 웹서버는 리눅스나 솔라리스 운영체제로 교체하는 것이 밑천을 뽑는 길이다.
세 번째, 현재 웹서버의 상태를 모니터링 할 수 있도록 해 줘야 한다. 웹 로그분석기나 웹브라우저에서 트래픽을 그래픽으로 보여주는 스트레스 진단 툴등이 속속들이 나오고 있는데, 공모전등에 도전해봄직한 분야라고 할 수 있다.
네 번째, 사용자가 원하는 어플리케이션이나 기존의 시스템과의 연동이 잘 되어야 한다. 델파이 3에서 "페이지프로듀서" 컴포넌트를 가지고 만든 CGI 프로그램은 마이크로소프트 IIS에서 밖에 동작하지않아서 결국은 한 대의 웹서버를 더 연결하기는 했지만, 델파이 6 및 카일릭스부터는 아파치 서버에 최적화된 코드를 만들어준다. 이러한 조건을 만족하는 웹서버를 찾는 것이 개발 담당자들의 일이 될 것이다.
웹투비의 구조와 동작원리
티맥스소프트에서 개발한 웹투비 (WebtoB, Web to Business)는 인터넷 환경에서 브라우저의 요구를 처리하는 웹서버에 TP모니터인 티맥스가 더 덧붙여진 방식이며, 기업환경을 공략하기위해서 유닉스, 윈도우 NT/2000, 리눅스 등 다양한 OS 환경을 목표로 하였다.
아파치 웹서버의 경우 웹브라우저의 요구를 처리하기 위하여 항상 몇 개의 프로세스가 메모리에 대기하고 있다. 웹서비스는 달랑 http 프로토콜 한가지만 존재하는 것은 아니다.
CGI나 SMTP서버, FTP 자료실등의 서비스랑 연동시켜서 구축하는 것이 일반적이다. 서로다 모든 서비스를 아파치가 처리할수 있도록 범용의 프로세스들을 준비하고 있는데, 15개 정도를 디폴트값으로 주고 있다. 크기가 다른 사용자의 요구들을 처리하는데 대해서 모두 같은 크기의 프로세스를 이용하는 비효율적인 일을 반복하게 된다는 점에 출발한다.
아파치 웹서버는 각 프로세스가 독립적으로 전 서비스를 처리하는 만능의 처리 기술을 가지고 있지만 접속자의 수만큼 자동적으로 프로세스가 생성되어 일을 처리하며, 작업을 완수하고 소멸된다. 이러한 구조는 다이나믹한 요구에 대해서는 우수한 방식이지만 프로세스의 덩치가 너무나 거대해지기 때문에 메모리를 무한정 늘릴수 있는 시스템이 아니라면 다수의 프로세스가 동시에 작동하게되면서 시스템의 다운을 초래하거나 응답을 전혀 못하는 상태에 도달할 수 있다.
<그림 4>는 웹투비의 개념도
<그림 4>에서 보면 웹투비의 경우 HTML, CGI, PHP, 웹 API등 각각의 서비스를 담당하는 별개의 프로세스를 모두 가진다. 이 프로세스들은 브라우저들의 요구를 종류별로 분배하는 역할과 함께 각 프로세스들을 관리하는 역할을 한다. 즉 내부적으로 분업화가 이루어져 필요한 프로세스만 메모리에 올라오는 식이라고 보면 되겠다.
아파치 웹서버와 웹투비의 차이점
웹투비는 분업화로 인해서 각 프로세스의 크기가 매우 작고 처리속도가 빠르다는 것은 당연한 일이 될 것이다. 아파치 서버가 1000개의 사용자 요구를 응답하기 위하여 1000개의 프로세스가 무조건 가동되어야 하면서 메모리도 그 만큼을 점유하는 사태가 벌어진다.
더구나 사용자의 요구가 순간적으로 증가한다면 아파치는 몇백개의 프로세스를 fork()로 만들면서 하드디스크는 바빠지고, CPU와 메모리는 정신을 못차리게 될 것이다.
웹투비는 이 사실에 주목한다. 자신들이 내세울수 있는 전문분야는 TP모니터이기 때문에 처리방식을 좀 바꿔보기로 한 것이다. 1000개의 요구를 먼저 앞에서 몇 개의 돌격대 프로세스가 대기하고 있다가 대기 번호표를 뽑아주면서 CGI는 CGI 담당에게, PHP는 PHP 담당 프로세스에게 넘긴다. 담당 프로세스들은 즉시 뒤에서 팔을 걷어붙이고 담당업무만 처리하게 되므로 처리시간과 소모하는 순간 리소스가 매우 적어진다.
웹투비의 경우는 1000개가 모두 동일한 종류의 서비스 분야가 아닌 이상 표면적으로 곱하기 10배로 부하량이 많아지지는 않는다. 웹투비의 장점은 메모리나 하드웨어의 추가구매가 없이도 처리속도에서 장점이 있기 때문이다.
웹투비의 주요 특징
● 캐싱기능
여분의 메모리에 자주 이용되는 리소스들을 미리 상주시키는 메모리 캐시로 성능 향상을 꾀한다. 메모리가 많을수록 서버의 처리속도는 놀라울 정도로 향상되며, 메모리 캐시 용량도 조정할수 있다.
● TP 서비스 호출 기능
웹서버의 상태를 모니터링 할 수 있는 TP 모니터에 연결할 수 있다.
● 웹 API
CGI의 문제점 중 하나는 프로세스들을 fork()하여 생성하기 때문에 자원의 낭비와 시간이 지연되는 것이다. CGI의 문제점을 해결하고자 ASP (Active Server Page), JSP (Java Server Page), 서블릿 (Servlet), PHP(Personal Home Page) 같은 스크립트 개발도구들이 등장하고 있으나, 기존의 운용시스템을 이것들로 전환시키는데는 개발비용이 든다.
웹투비는 자체 개발한 API를 제공하여 기존의 시스템을 어지간하면 사용할 수 있게 해주면서 모든 프로세스를 웹투비가 관리하므로 시간이 지연되거나 자원이 낭비되는 것을 막아준다.
● Listener
웹리스너라는 프로세스가 떠있는 것은 오라클 웹서버에서도 이미 소개했었다. 서비스에 문제가 생긴 경우라 하더라도 리스너만 다시 올리면 서비스가 재개되도록 하는 이런 기능은 웹투비가 다운되는 일이 없도록 한다.
● 멀티로드 기능
여러대의 웹투비를 설치하여 운영할 수 있다.
● 로드밸런싱 지원
갑자기 많은 사용자들이 몰리는 때를 우려하는 대형 사이트들은 여러 대의 웹서버들을 묶어서 www1 서버에 부하가 걸리면 www43처럼 부하가 적은 쪽으로 접속자들을 유도하면서 지연 없는 서비스를 제공하고자 할 때 로드밸런서같은 하드웨어 장비를 많이 사용한다.
DB 서버만 SAN 스토리지로 연결해서 데이터들은 스토리지에서 관리하고 웹서버들은 가상디렉토리로 연결하면서 웹 서비스에만 충실하게 하는 것이다.
웹투비의 경우는 자체적으로 사용자의 요구를 나누어 줄 수 있는 기능을 가지고 있다. 만약 여러개의 웹투비가 연결되어 있다면 하나의 웹투비가 사용자의 요구를 받아서 각각의 웹서버에 나누어서 전달해 준다. 이 때 이용되는 분배방법은 서버의 성능과 업무영역에 따른 로드를 측정하여 이에 따라서 사용자의 요구를 일정 비율로 배분하여 분배하는 방식을 이용한다. 다만 로드 분배의 역할을 담당하는 웹투비가 정상 동작을 하지 못하거나 서버의 물리적인 다운시에는 전체 서비스가 중단되는 사태가 발생할 수 있다는 점이다.
마치, 윈도NT/2000에서 사용자 접속을 관장하는 주도메인 컨트롤러가 코드레드에 공격당하면 서브도메인 컨트롤러를 비롯한 도메인내 사용자들의 일시적인 접속불능이 일어나는 방식과 비슷하다고 하겠다. 웹투비에서도 이런 문제점을 인식하고 대응책으로 VIP (Vitual IP) Failover를 지원한다.
● VIP failover 지원
가상 IP를 이용하여 웹투비가 운영되고 있는 물리적인 서버장비의 이상이나 통신장애 또는 서버의 다운시에도 다른 웹투비가 이를 감지하여 자신의 IP주소를 문제의 서버 IP로 대체시켜 서비스가 중단되는 사태를 방지하는 기능이다. 이 기능은 웹투비를 이용한 멀티노드 구성에서 고가의 스위치 하드웨어 장비 도입비용을 줄일 수 있다.
제우스 2.0
웹애플리케이션 서버는 웹과 기업의 기간 시스템 사이에 위치하면서 웹기반의 분산 시스템 개발을 도와주고 안정적인 웹 트랜잭션 처리를 보장하는 미들웨어 개념의 소프트웨어이다. 즉, 웹애플리케이션 서버는 분산 네트워크의 컴퓨터 내에서 응용 프로그램에 비즈니스 로직을 제공하는 서버 프로그램이다. 애플리케이션 서버는 프리젠테이션 로직, 애플리케이션 (비지니스) 서버, 그리고 데이터베이스 및 트랜잭션 서버로 구성되어 있는 3티어 클라이언트 / 서버 모델의 일부로 자주 사용된다.
<그림 3>에서 첫 번째 티어는 사용자에게 보여주는 역할을 하는 프리젠테이션 영역으로 보통 웹 브라우저기반의 GUI를 말한다. 두 번째 티어는 인트라넷 서버에 위치하는 애플리케이션 서버로 비즈니스 로직을 담당한다. 마지막 티어는 백엔드라고 하며, 데이터베이스나 트랜잭션 서버를 지칭한다. 때로는 메인프레임이나 대형 서버를 가리키는 말로도 쓰인다.
웹 애플리케이션 서버는 기존 정보시스템을 단순히 쉽게 웹으로 바꿔주는 프론트엔드 기능 이외에도 클라이언트 / 서버 환경에서 가능했던 트랜잭션 처리, 대규모 사용자 지원, 로드 밸런싱, 보안 등 여러 기능을 웹으로 제공해 줄 수 있다. 개발자 입장에서는 복잡한 코딩작업 없이도 웹 애플리케이션 서버가 제공하는 서비스를 호출하기만 하면 손쉽게 웹 기반의 분산시스템을 개발 할 수 있는 장점이 있다. 또한 웹 애플리케이션 서버는 다양한 관리 기능을 제공하고 클라이언트 / 서버 환경에서 분산되었던 업무를 단일 시스템 안에서 관리할 수 있어서, 소프트웨어 배포 및 유지보수 측면에서 상당한 효과를 가져올 수 있다.
(1) Java Enterprise User Solution (JEUS)
티맥스소프트에서 개발한 JEUS는 인터넷 언어로 각광받고 있는 자바를 기반으로 한 강력한 웹 솔루션으로 웹 환경에서 애플리케이션을 운용하는데 필요한 각종 서비스들을 제공해 주는 자바기반의 웹애플리케이션 서버이다.
위의 <그림 4>는 제우스의 개념에 대한 그림이다. 제우스는 애플리케이션을 개발하고 실행할 수 있는 플랫폼 역할을 하면서 트랜잭션 관리, 세션 유지, 부하 분산 등 다양한 기능을 제공할 뿐만 아니라, 계층화된 구조로 유연성과 기능 확장성이 우수해 비즈니스 로직을 보다 손쉽고 효과적으로 구현할 수 있게 해준다.
(2) JEUS의 필요성
JEUS를 이용해서 얻는 장점은 아래와 같다.
● 멀티스레딩을 이용, 기존 CGI 방식의 문제점을 해결, 데이터베이스 연결풀링 (Database Connection Pooling)을 통해 데이터베이스 액세스 속도향상, 부하조절 기능을 통해 시스템 최적화 상태 유지 등 웹 시스템 성능을 향상시켜 준다.
● 안정적인 시스템 운영을 보장할 수 있는 방안이 마련되어 있다. 하드웨어 장애 발생시 백업 하드웨어로 서비스 프로세스를 자동으로 이전하며, 소프트웨어 장애시 서비스 프로그램을 자동적으로 재시작한다.
● Servlet, JSP, EJB 등 애플리케이션 개발을 위한 다양한 모델이 제공되어 시스템을
개발하는데 많은 도움이 된다.
● 마이크로소프트 윈도우 NT, UNIX, Linux 등 다양한 플랫폼을 지원하므로 시스템
구성이 용이해진다.
● 이기종 데이터베이스간의 트랜잭션, 웹클라이언트로부터 웹을 통한 트랜잭션 지원 등
보다 강력한 애플리케이션 프로그램 개발이 가능하다.
● 중앙집중적인 시스템 관리툴을 이용 시스템을 관리하는 것이 보다 편해졌으며,
애플리케이션 프로그램들의 배치 및 관리를 제공하는 배치 (Deployment)툴을
제공하여, 대규모 시스템의 관리를 용이하게 한다.
마치며,
지금까지 아파치서버를 비롯해 대안이라 할수 있는 넷스케이프 엔터프라이즈 서버와 웹투비같은 서버에 대해서도 알아보았다. 자신이 구축하고자 하는 사이트가 전자상거래라고 하면꼭 아파치가 아니더라도 가장 적당한 웹서버를 선정해서 구축할수 있을 것이다.
유행이라고 해서 꼭 MySQL만 써야한다는 법은 없다. 자신의 업무에 맞는 데이터베이스를 선정하는 것이 주요할 것이다. 다음달에는 오라클을 가지고 구축하는 방법을 알아보겠다.