웹 사이트를 운영하기 위해서는 고려해야할 것이 한 두가지가 아니다. 서비스를 받는 입장에서는 그저 즐기기만 할 뿐이지만, 생산자 입장에서는 마치 방송이나 콘서트처럼 복잡하기 그지없을 따름이다.
게다가, 처음 웹 사이트를 운영하려는 주체는 방송국이나 기획사처럼 자본력이 충분하지도, 인력이 충분하지도 않을 것이다. 그렇기 때문에 1~2명이서 웹 기획, 서버 확보, 도메인 및 서버 관리를 해야하고, 거기에 사이트를 운영하고 홍보하며 상업화를 하는 것도 하는 만능이 되어야 한다.
필자 또한 사이트를 운영하는 입장에서 다방면에서 고려할 것이 많아 매우 바쁘고 머리 아프기는 마찬가지다. 하지만, 필자의 경우 기본적으로 IT 블로그를 운영하고 다양한 분야에 대해서 탐구 및 1여년이라는 준비 기간이 있었기 때문에 무난하게 시작했다. 하지만, IT에 대한 이해도가 높지 않고, 준비기간도 짧다면 상당히 큰 혼란을 겪을 것이라 생각한다.
웹 사이트를 운영하기 위해서는 웹 데이터, 웹 서비스할 서버, 도메인이 기본적으로 필요하다. 그 중 오늘은 웹 서비스할 서버에 대한 정리를 해볼까 한다.
서버는 왜 필요한 것인가?
IBM System X3250 M3
Naver.com을 주소창에 치면, Naver의 메인 화면이 나타난다. 어떻게해서 Naver.com이라는 텍스트를 입력했을 뿐인데, Naver의 메인 화면이 바로 뜰 수 있는 것인가?
사용자가 Naver.com을 입력하면 컴퓨터는 DNS(Domain Name Server)에 Naver.com의 서버 IP에 대해 물어본다. 그리고 DNS가 서버 IP를 알려주면, 컴퓨터는 다시 서버 IP로 웹 서비스를 요청한다. 그러면, Naver 서버가 네이버 메인 화면을 출력할 데이터를 보내준다. 그러면, 웹 브라우저는 이 데이터를 조합하여 화면에 띄워준다.
여기서 서버의 역할은 바로 고객의 웹 서비스 요청에 대한 응답으로 컴퓨터 화면에 출력할 데이터를 보내주는 역할이다. 그렇기 때문에 고객이 24시간 언제나 접속하기 위해서는 서버가 24시간 작동해야하며, 서버가 느려져서도 안된다.
웹 서비스시 알아야할 단어
웹 서비스를 할 때 알야할 단어가 여러가지가 있다. 그중에서도 중요한 것들만 파악해보도록 하겠다.
1. Apache : Apache는 웹 서버 엔진이다. 웹 서비스를 하는데 필요하며, 자체로 모든 웹 서비스를 할 수는 없다. 최근에는 성능이 좋은 Nginx라는 웹 서버 엔진으로 많이 대체되고 있지만, 호스팅 서비스에서는 호환성 부분이나 인력 확보의 용이성 때문에 여전히 Apache가 대부분이다. 추가로, IIS는 Windows Server에서만 구동되는 웹 서버 엔진이다.
2. PHP : PHP는 클라이언트 컴퓨터와 서버가 유기적으로 연동될 수 있도록하는 웹 프로그래밍 언어다. 서버에서 PHP 연산을 수행하여 클라이언트에게 적합한 데이터를 전송한다. PHP 이외에도 JSP, ASP 등의 프로그래밍 언어가 있다.
3. MySQL : MySQL은 웹 사이트의 데이터 베이스를 관리해주는 DBMS이다. DBMS에는 그외에도 MS-SQL, Oracle DB, CUBRID 등이 있다.
4. DB : 데이터베이스는 웹 사이트의 각 문서들을 테이블(엑셀 같은 것)으로 정리해둔 것이다. DB는 웹 사이트 프로그래밍에 의해서 자동으로 기록되며, 오로지 텍스트로만 작성된다. 첨부파일의 경우 링크를 걸어두는 방식으로 저장이된다.(실제로 웹 표준 HTML은 텍스트로만 이루어졌으며, 첨부파일은 이미지 스크립트를 통해 링크로 해결한다.)
5. Web CMS : 웹 CMS는 Web Contents Management System의 약어로, 웹 사이트를 처음부터 끝까지 제작할 필요가 없도록 만들어준다. 웹 CMS의 Core가 각각의 기능들을 하는 모듈 및 스킨 레이아웃들이 유기적으로 연동되고 DB가 기록될 수 있도록한다. Core 자체로는 아무것도 할 수 없지만, 보통 페이지 모듈, 회원가입 모듈, 첨부파일 모듈, 관리 모듈 등이 내장되어 있다. 그리고 해당 Core에서 작동하는 오픈소스 모듈들을 설치해 기능을 확장할 수 있다. 국내에서는 웹 CMS로 XE가 가장 유명하다.
6. OS : 서버용 OS는 크게 두가지가 있다. Linux와 Windows Server. Windows Server 경우 라이센스 비용이 비싸고, 성능도 떨어져서 꼭 필요한 경우가 아니면 쓰지 않는다. Linux의 경우 Linux 자체가 OS로 알려져있지만, 엄연히 OS는 아니다. CentOS, Fedora, Ubuntu 등이 Linux라는 커널을 기반으로 하는 OS이다. 그래서 호스팅을 이용하게 되면 CentOS를 대부분 OS로 사용하는 것을 볼 수 있을 것이다.
7. 하드 용량 : 서버 호스팅에서 하드 용량은 OS, 프로그램, 웹 데이터, DB를 포함해 저장할 수 있는 공간을 일컫는다. 웹 호스팅에서 하드 용량은 웹 데이터 부분만 해당하며, DB의 경우 용량이 상대적으로 매우 작아 무제한으로 제공된다.
8. 트래픽 : 트래픽은 서버가 네트워크를 통해 업, 다운로드한 데이터 용량을 뜻한다. 보통 다운로드보다는 업로드가 90%를 차지한다. 클라이언트는 업로드하기 보다는 다운로드를 주로하기 때문에, 서버 입장에서는 업로드를 해야하는 것이다. 사진이 없다면 페이지 용량은 상당히 작으며, 사진이 거의 대부분의 용량을 차지한다. 페이지당 용량이 1MB인 사이트에 1000번 접속하게되면, 1GB의 트래픽이 발생한다. 웹 호스팅에서 주로 쓰이는 과금 방식이다.
9. 네트워크 대역폭 : 네트워크 대역폭은 네트워크 회선의 속도를 말한다. 10Mbps의 대역폭을 가질 경우 이론적으로 초당 1.25MB, 하루에 108GB의 트래픽을 감당할 수 있다. 하지만, 만약 10Mbps 회선에 108GB의 트래픽이 발생하였다면, 그것은 정상적인 서비스라고 볼 수 없다. 고객이 하루종일 로딩만 기다리고 있었다는 소리이기 때문이다… 정상적인 수준이 되려면 일반적으로 평균 대역폭 사용량의 3배 정도가 되어야한다. 네트워크 대역폭에 대한 비용 청구는 호스팅사마다 엄청난 차이가 있다.
Cafe 24의 경우 10Mbps 대역폭이면, 1000Mbps 회선을 마음껏 쓸 수 있게하고, 5분 평균 대역폭 사용량과 한달 평균 사용 대역폭의 3배 중 낮은 값을 과금한다. 그래서 순간적으로 1000Mbps를 사용하더라도, 한달 평균이 10Mbps를 넘지 않으면 추가 과금하지 않아 소규모 회선도 원활한 서비스가 가능하다.
통큰아이의 경우 완전 쿨하다. 기본 1000Mbps을 연결해주고, 약정 대역폭을 훨씬 넘어도 자사 서비스에 지장을 주지 않는다 판단하는 선에서는 봐준다. 그리고 기본적인 비용 자체도 호스팅사중에 가장 저렴하다.
Godo의 경우 10Mbps의 경우 5분 평균 트래픽을 계산하여 그중 1,2위의 평균을 내어 과금하거나, 600GB를 초과할 경우 GB당 165원을 계산한 것중 저렴한 것으로 한다.
가비아의 경우 100Mbps Shared 회선에 물리고, 10Mbps를 최소 보장 대역폭으로 사용할 수 있도록 하는 것이다. 트래픽이 한꺼번에 엄청 몰리는 것이 아니라면 나쁘지 않은 제도다.
웹 서비스용 서버의 선택
HP DL302e E3 – 1220v2
웹 서비스를 하려면 24시간 구동할 수 있는 서버가 필요하다는 것은 알겠다. 하지만, 서버는 어떤 것을 선택해야하고 어떻게 관리해야하는 것일까에 대한 의문과 서버 비용이 너무 부담된다고 생각이 들기 마련이다.
웹 서비스용 서버는 옛날에는 자체 전산실을 구축하여 자체 관리를 해야 했다. 그러므로서 엄청난 비용을 지불해야만 했다. 하지만, 최근에는 전산실에 웹 서비스용 서버를 두는 것은 흔치 않은 일이다.
그것은 바로 IDC가 있기 때문이다. IDC는 Internet Data Center의 약자로, KT에서는 ICC(Internet Computing Center)라고 지칭하기도 한다. IDC는 네트워크 통신이 기간이 되는 백본 네트워크와 직접 연결된 전산실로, 백본 네트워크와 직접 연결되기 때문에 네트워크 속도가 더 빠르고 비용은 몇배나 저렴하다. 거기에 서버를 위한 항온항습 시스템이 갖춰져 있으며, 정전시에도 UPS(무정전장치)와 비상용 전력 발전기를 통해 30일 정도 서비스를 지속할 수 있다.
IDC에 서버를 맡기는 것을 코로케이션이라 한다. 하지만, 보통 개인 또는 소규모 사업자는 IDC 업체와 직접 계약을 맺지 않는다. 왜냐하면, 서버 관리에 대한 지원을 해주지 않고 기껏 해주는 것이라봐야 서버 다운시 재부팅 정도이다.
그렇기 때문에 IDC에 서버 관리 인력을 24시간 상주시킬 인력이 없는 개인 또는 소규모 업체는 VIDC 업체를 통해 IDC에 입주한다. VIDC 업체는 보통 호스팅 업체로 불리는 업체들이며, IDC와 관련한 다양한 서비스를 제공한다.
서버 호스팅
VIDC 업체는 보통 서버 임대와 코로케이션을 동시에 서비스하는데, 이를 서버 호스팅이라 한다. 서버 호스팅의 경우 서버의 성능과 네트워크 회선에 따라 다르지만, 소규모 웹 서비스에 적합한 기본 옵션은 월 15만원 이내이다.
일반적으로 보급형 서버용 프로세서인 제온 E3-1200 Series를 사용한 브랜드 서버 혹은 조립 서버를 임대받게 된다.(개인적으로 브랜드 서버와 조립 서버의 차이가 비용만큼 그렇게 크다고 보지는 않는다. 다만, 브랜드 서버가 좀 더 다양한 옵션을 제공한다.) 서버 호스팅 비용에는 서버 임대비, IDC 상면료, 네트워크 회선료가 포함된다.
Cafe 24의 경우 제온 E3 – 1230, 4GB RAM, 500GB HDD 2개를 탑재한 조립 서버를 영구 임대 방식으로 제공하고 있다. 네트워크 회선은 10Mbps를 기본제공하며 가격은 월 75,000원으로 동급 최저 비용이다.
가비아의 경우 동일한 사양의 조립이 아닌 IBM 서버를 월 10만원에 10Mbps 대역폭을 번들로 제공하고 있다. 25,000원이나 더 과금되어 비합리적으로 보일 수 있지만, 실제로 사용할 수 있는 트래픽은 가비아의 경우가 좀 더 많다고 볼 수 있고, 브랜드 서버라는게 장점이라면 장점이다.
통큰아이의 경우 서버 호스팅의 가격은 매우 합리적이지만, 일반용 CPU를 사용해 안정성이 떨어진다. 단, 서버를 구매하여 입주시키는 코로케이션의 경우 강추한다.
서버 호스팅의 경우 고사양 서버를 요하지 않지만, 웹 호스팅으론 부족할 때 사용하는 것이 가장 효율적이다. 단, 서버 관리를 일정선 이상은 해주지 않기 때문에, 어려운 서버 셋팅을 혼자하거나 유료 기술지원을 받거나 유지보수 업체를 통해 셋팅해야한다.
웹 서버의 경우 최적화에 따라서 성능이 확연히 달라지는 부분으로, 서버 튜닝을 잘하는 유지보수 업체에 맡겨 Nginx + PHP + MySQL 셋팅해서 사용하는 것을 권장한다.
웹 호스팅
서버 호스팅 비용이 월 15만원 이내라도 개인용으로 쓰기엔 상당히 비싼 것이 사실이다. 그래서 나온 것이 바로 웹 호스팅이라는 것이다. 웹 호스팅은 1개의 서버를 수십에서 수백개의 사이트가 입주하여 서버 자원을 효율적으로 사용하기 위해 탄생하였다.
웹 호스팅은 보통 월 400~500원 정도부터 시작하며, 월 400원 ~ 1,000원의 서비스는 테스트용 정도로 보고, 5,000원부터는 개인용 홈페이지 및 블로그를 운영하기에 적합한 서비스이다. 소규모 업체 홈페이지나 쇼핑몰도 웹 호스팅에 입주할 수 있다.
웹 호스팅의 경우 서버와 달리 관리가 필요치 않다. 호스팅사에서 모두 관리해주고, 운영자는 사이트 제작 및 운영에 전념할 수 있다. Cafe 24, Godo, PHPs.kr 등이 저렴하고 서비스 품질도 절대 떨어지지 않는다. 비교해서 가장 유리한 조건의 업체를 선정하기 바란다.
단독 웹 호스팅
서버 호스팅을 하자니, 관리할 시간도 비용도 부족하고 그렇다고 웹 호스팅을 하자니 성능과 하드 및 트래픽 용량이 너무 적다. 그런 경우를 위해서 단독 웹 호스팅이 탄생하였다.
Cafe 24와 고도에서 서비스하고 있으나, 고도의 경우 서버 호스팅 부분에서는 영 시원찮은 과금체계를 가지고 있어 추천하기 어렵다.
Cafe 24의 경우 리눅스 단독 웹 호스팅이 쿼드코어 2GB RAM, 60GB SSD의 사양의 서버가 월 10만원이고, 네트워크 대역폭 10Mbps가 번들링된다. 쿼드코어에 4GB RAM, 120GB SSD 사양의 서버는 월 15만원이고, 네트워크 대역폭 20Mbps가 번들링된다. 쿼드코어 CPU를 2개 장착하고 8GB RAM, 120GB SSD를 장착한 서버는 월 20만원이고, 네트워크 대역폭 30Mbps가 번들링된다.
코로케이션
코로케이션의 경우 가장 기본적인 형태의 IDC 서비스이다. 개인 또는 업체 소유의 서버를 IDC에 입주시키고, 고속 네트워크 망에 연결하는 서비스이다.
일반적인 경우에는 서버 호스팅이 합리적이나 월 15만원이 넘는 비용을 들여 서버 호스팅을 할 바에는 고사양의 서버를 조립하여 입주 시키는 것이 가장 합리적이다. 코로케이션의 경우 단독 웹 호스팅이나 서버 호스팅보다 더 큰 규모의 서비스를 할때 유리하다.
코로케이션의 경우 통큰아이를 추천할만하다. 통큰아이의 경우 서버 호스팅쪽에서는 임대 서버가 성능은 좋으나, 서버용 프로세서가 아니라서 추천하지 못한 것이고, 코로케이션의 경우 가장 저렴한 비용으로 상면비 및 네트워크 회선료를 청구한다.
1U 서버(일반적으로 웹 서버는 대부분 1U의 규격이다. 1U는 두께 4.45cm의 19인치 랙 규격이다.) 상면료 및 30Mbps 네트워크 대역폭이 월 10만원에 제공되며, 기본적으로 1000Mbps LAN으로 연결된다. 네트워크 대역폭 측정은 대부분의 경우 5분 평균 대역폭을 측정하며, 통큰아이의 경우 칼 같이 체크하지 않고, 30Mbps 약정이어도 일시적으로 5분 평균 대역폭이 100Mbps를 넘어가도 크게 뭐라하지 않는다. 단, 지속적으로 넘어갈 경우 추가 계약을 요구하지만 타 업체와 다르게 선청구 하지 않고, 추가 계약일부터 해당 비용을 지불하면 된다.
그리고 엄청나게 많이 찾아다녔지만, 1Gbps를 1년이상 약정으로 IDC 운영 업체와 1Gbps 이상 직계약할 배짱(이라 쓰고 1년에 3000만원이상의 비용을 감당할 경제력이라고 읽는다.)이 있지 않는한 통큰아이의 네트워크 회선료가 가장 저렴하다.
맺으며…
웹 서비스를 하기 위한 서버를 선택할 때는 상당히 신중해야 한다. 서버 셋팅 비용을 절감하고 서버 관리를 알아서 해주어 리스크를 줄여준다는 것만으로도 웹 호스팅으로 해결이 되는 경우 당연히 웹 호스팅이 가장 유리하고, 그 다음이 단독 웹 호스팅이다.
이 둘을 최우선적으로 고려하되, 고성능을 요할 경우 코로케이션을 이용하되 VIDC 업체의 서버 통합 관리 서비스를 이용하는 것이 좋다.
잊지 말라. 웹 서비스의 생명은 24시간 끊김 없는 빠른 서비스가 목적이다. 특히 비즈니스용이라면 절대 돈을 아낄 생각은 하지말라고 하고 싶다.
1 comment
쉽게 설명해주셔서 감사합니다
서버 선택하는데 있어서 많은 도움이 되었습니다 ^^
감사합니다.