
사이트의 트래픽..페이지뷰와 방문자수의 증가에 따른 기초적인 서버 분리 방법
로드벨렌싱(Load Balancing)에 대해 간단히 정리해 보고자 한다.
웹사이트를 운용한다는것을 시스템과 어플리케이션의 관점에서 보면
- 웹서버
- 데이타베이스 서버
- 이메일 서버 등
최소한 3개의 다른 어플리케이션 서버를 사용하고 있다..
초기 운용단계에선 사이트의 트래픽(방문자 및 페이지뷰)이 문제가 되지 않다 보니..
대개의 기능이 하나의 물리적인 서버에서 운용이 된다..
그러나 서버 트래픽이 증가하여...서버를 분리하는 싯점이 되면..
모든 기능이나 프로그램상의 많은 변화와 업그레이드를 요구하는 작업이 시작된다..
1단계 서버 분리에선...
웹서버 와 데이타 베이스 서버의 분리가 1단계가 되며..
이메일 서버는..서버의 안전성과 바이러스등의 문제를 초기에 막기위해..
별도의 서비스를 이용하는것이 바람직하다...
2단계에선....
많은 이미지를 처리하는 사이트라고 하면...
웹서버 상에서...이미지 자료만을 분리하여...
별도의 이미지 서버를 구축하는것이 비용과 트래픽 분산의 측면에서 가장 일반적인 방법이 된다...
그러나 웹서버의 가용한계를 초과하는 페이지뷰(임프레션)가 발생한다면...
이제 본격적인 웹서버의 분리가 시작되는 싯점이다...
웹서버에서 1단계 섹션에서 많은 페이지뷰를 발생시키는 부분을 구글의 Analytics를 통해
면밀히 분석해 볼필요가 있다..
주기적인 트래픽의 증가인지...일시적 증가인지를 정확히 분석하여...
메뉴별로 서버를 분리하는 방법이 있으며....가장 간단한 방법이지만....
미러링 서버 개념과 비슷하게 운용되는 DNS를 이용한 서버 로드 벨렌싱을 사용할수도 있다..
미러링 서버 개념의 로드 벨렌싱을 사용한다면..
두개의 물리적인 서버를 구성하여...DNS 서버에 서버 IP만을 셋업해주면 간단하게 적용할수 있지만...
정교한 로드 벨렌싱에는 다소 문제가 있다...
디렉토리별로 분리하는 경우 예상치 못한 트래픽이 한쪽으로 집중된다면...
대처방법에 다소 어려움이 발생하게 된다...
이러한 서버 분리 방식은 로그인과 로그아웃의 세션관리에서도...
동시에 분리된 서버에서 로그인과 로그아웃 처리가 될수 있도록...
기존의 세션관리 기능을 업데이트 해야 한다...
그리고 여기서 가장 중요한점은 모든 서버가 하나의 네트웍에 접속되어 있는것이 바람직하다..
개별적으로 추가 되는 서버 경우...여러개의 네트웍에 분리되어...
서버 상호간의 속도를 높이기 위해..버츄얼랜을 구성해야 하는데...
이건 별도의 비용이 추가될수 있다보니..
장기적인 서버 분리가 확정된다면...동일한 스위칭 장비의 포트를 사용할수 있는
동일네트웍으로 서버를 모두 집중시킬 필요가 있다...
아래 예는 실제 4uHomepage에서 운용되는 시스템의 트래픽 가용한계를 예상한 자료...
서버 시스템 (데이타 베이스 분리)
Dual Quad-Core Xeon 2.3GHz/ 4gb / 360gb/ sas)
500만 페이지 뷰/ 1.1tb /month
운용체계: windows server 2003 web
개발툴: coldfusion ver 8.0
상기 적용된 시스템에서 한달 500만 페이지뷰와 1.1테라바이트의 데이타 전송량에서..
서버운용에는 무리가 없지만....전체적인 서버의 가용한계를 800만 페이지뷰로 예상하고 있다..
|