호스팅서버를 직접 구축하기 위해서는 도메인 구입, 운영체제 설치 그리고 서버 유형에 따른 프로그램을 설치 및 설정이 필요합니다. 이번 글에서는 호스팅서버의 목적에 따른 서버 유형 및 웹서버 구축 시 참고할 사항에 대해서 정리해보겠습니다.
호스팅 서버 자체 설치시 필요한 도메인 구입, 서버선택 및 운영체제 선택에 관련한 내용은 아래의 이전글을 참고하시기 바랍니다.
호스팅서버 구축방법
서버의 종류는 사용 목적에 따라 몇 가지 유형으로 구분됩니다. 하나의 서비스를 구성하기 위해 몇 가지 프로그램을 함께 설치하여 각 소프트웨어가 잘 연동되도록 설정해야 합니다. 가령, 웹 서버를 설치하는 경우라면 아파치나 Ngnix와 같은 프로그램 외에도 로드 밸런싱 같은 요소를 고려하는 것이 좋습니다.
서버 유형
일반적으로 많이 사용하는 서버의 종류는 다음과 같습니다. 보통 웹서비스를 위한 2-tier, 3-tier 형태의 서버를 많이 구축합니다.
서버 종류 | 설명 |
웹서버 | 웹브라우저를 통한 HTTP 요청을 처리하는 서버로 오픈소스 기반 아파치나 Nginx (엔진엑스)를 대부분 많이 사용합니다. |
파일서버 | 가정이나 기업 내에서 파일을 공유할 목적으로 많이 사용합니다. SAMBA나 NFS 등의 프로토콜을 이용하여 간단히 구축이 가능하며, 외부 접속을 지원하기 위해 VPN 서비스를 결합할 수 있습니다. |
메일서버 | SMTP, POP3와 같은 프로토콜을 기반으로 동작하며 메일을 주고받는 서비스를 수행합니다. 리눅스의 Sendmail 패키지를 설치하여 간단히 설치할 수 있습니다. |
DB 서버 | 대용량은 데이터 처리가 필요한 경우 별도로 데이터베이스를 관리하기 위한 서버를 구축합니다. |
이 외의 다양한 네트워크 서버들의 종류 및 특징에 대해서는 다음의 이전 글을 참고 바랍니다.
웹서버 구축
웹서비스는 클라언트 로부터 받은 HTTP Request를 엔진엑스(nginx) 또는 Apache과 같은 웹서버에서 1차로 처리합니다. 추가적인 애플리케이션 처리가 필요한 경우 WAS 서버 또는 DB 서버와 연동할 수 있습니다. 만약 간단한 서비스라면 웹서버 내부에서 모두 처리하도록 구현할 수도 있습니다.
위와 같이 3가지 서버를 모두 물리적으로 분리하는 구성을 3-tier 방식이라 부릅니다. 확장에 유리하며 성능이 뛰어나 대규모 엔터프라이즈급 서비스에 적합합니다.
하지만 50명 이하의 소규모 서비스라면 하나의 물리적 서버에 모든 서버를 모두 구축하거나 2-tier 방식으로 나누어 구성할 수도 있습니다. 다만 이 경우 3-tier 방식에 비해 성능이나 보안 측면에서 상대적으로 취약할 수 있습니다.
1. 웹서버: 아파치 vs Nginx
HTTP 프로토콜에 대한 요청과 응답을 처리하는 서버입니다. 간단한 요청은 자체 application을 구현할 수도 있지만, 복잡한 기능의 경우 Tomcat 같은 별도 애플리케이션 서버를 사용할 수 있습니다. 웹서버 프로그램은 Apache (31%) 및 Nginx (33%)의 사용 점유율이 가장 높습니다.
최근에는 엔진엑스(Nginx) 사용이 점차 늘고 있습니다. Nginx는 비동기 처리방식 방식으로 동작하여 아파치에 비해 적은 리소스로 더 많은 사용자를 동시 처리할 수 있는 이점이 있습니다. 두 가지 프로그램 모두 우분투, 레드헷(CentOs) 리눅스 배포판에서도 간단히 패키지 설치방식으로 구축할 수 있으며 윈도우 버전도 지원하므로 참고 바랍니다.
2. WAS (Web Application Server) 서버
웹서버와 데이터베이스의 중간에 위치하여 동적으로 콘텐츠를 처리해주는 서버입니다. JSP나 Servlet 등의 구동 환경을 제공하는 Webcontainer로 구성됩니다. 많이 사용하는 WAS는 JSP 기반으로 자바 서블릿을 실행하는 Tomcat이 있습니다.
3. 데이터베이스 서버
외부의 Transaction을 처리하는 서버로 SQL 쿼리를 이용해 데이터의 저장, 검색, 관리를 지원합니다. WAS와 DB 서버를 물리적으로 분리하면 다음과 같은 장점이 있습니다.
- 확장성: 성능을 높이기 위해 서버를 증설하기 쉬우며, WAS 서버와 분리되어 더 빠른 속도로 대량의 트랜잭션 처리가 가능합니다.
- 보안성: DB에는 보통 기업내 기밀정보나 개인정보 같은 민감정보를 포함하는 경우가 많습니다. 만일 WAS가 해킹되었더라도 DB 서버가 분리된 상태라면 민감데이터 보호가 가능합니다. 또한 2차 피해를 예방하기 위해 다음과 같은 DB 암호화 처리를 할 수 있습니다.
> DB 암호화 기술 4가지 유형 특징, 장단점 및 상용 솔루션
- 관리 편의성: 백업이나 형상 관리를 할 경우 데이터만 분리하여 백업할 수 있어 편리합니다.
이상으로 호스팅 서버 중 웹서버를 구축시 참고할 사항에 대해서 정리해보았습니다.