언제 웹서버와 DB서버를 분리해야 하는가?

보통 서비스를 처음 세팅할 때 웹서버와 디비서버를 같은공간에 설치하곤 한다.

 

서버의 능력치를 1이라고 가정하자.

초기 서비스 운영시에는 웹 0.1, 디비 0.1 의 능력이 필요하기 때문에 한 서버 공간을 사용해도 서비스 운영에 지장이 없다. 최상의 성능을 발휘할 수 있는 것이다.

 

하지만 서비스의 사용자가 늘어나게 되면 이야기가 달라진다.

서비스의 부하량이 증가해서 예를들어 웹 0.7, 디비 0.7 의 능력을 사용하는 상황이 된다면, 서버의 능력치인 1이 넘어갔기 때문에(0.7 + 0.7 = 1.4) 과로(over work)를 하게 된다.

uptime

<그림 : uptime 명령어로 현재 서버의 총 CPU부하량을 볼 수 있다>

#cat /proc/cpuinfo | grep CPU | wc -l

이 명령어를 통해 CPU 부하량 제한을 알 수 있다. (정확히 말하자면 CPU코어 수를 알 수 있다.)

위의 스크린샷을 찍은 서버의 경우, 2코어 서버라서 CPU부하량이 2 까지는 정상동작됨을 알 수 있다.

현재 [1분간 CPU 평균 부하량]이 0.30 이기 때문에 서버는 아주 여유로운 상태이다.

따라서 이 상태라면 굳이 웹과 디비를 나눌 필요가 없는 것이다.

 

웹서버와 디비서버를 분리하게 되면 어떤 효과가 있을까?

당연히 서버 부하량이 분산된다.

다만 분리를 하게 되면 웹서버와 디비서버가 추가적으로 네트워크 통신을 해야하기 때문에 인증시간 및 네트워크 지연(Network Latency)시간이 발생한다.

네트워크 지연시간은 물리적 거리에 영향을 받기 때문에,

매우 많은 네트워크 지연시간을 발생시키는 - 웹서버는 한국에, 디비서버는 일본에 분리하는 등의 행위는 하지 말아야 할 것이다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 


 

요즘 스타트업 회사의 서버나, 상용 신규 서비스 서버들을 보면 투자를 잘 받았거나 예산이 많아서 그런지 몰라도, 처음부터 너무 고스펙으로 작업하는 경향이 있던데, 이런 경우는 웹과 디비를 나눌 필요가 없다.

 


 

다음의 경우에는 서버의 부하량과 관계 없이, 처음부터 웹서버와 디비서버를 나누어야 합니다.

- 부하분산 환경을 구축하고자 할 때 : 웹서버와 디비서버를 나누지 않고서는 부하분산 환경을 만들 수 없습니다.

load-balancing-diagram-2

 

- 장애대응 서버 : 서버 자동 복제(Auto Scaling)이나, 장애 극복(Fail Over) 등의 환경을 구축하려면 먼저 각 서버들의 역할이 명확히 구분이 되어 있어야 한다.

AWS_Auto_Scaling_using_EC2_Management_Console

 


 

대부분의 경우 웹서버와 디비서버를 분리하지 않는 것이 더 쉽고, 더 싸고, 더 빠르다.

만약 분리해야할 필요성이 생겼다면 스스로 환경을 구축하려 하지 말고 “클라우드 호스팅 인프라”를 이용하도록 하자. 물리 서버를 이용 중이라면 먼저 클라우드 서버로 이전하는 작업이 선행되어야 할 것이다.

 

월 운영예산에 맞추어서 구축하도록 하자.

 

[출처] https://blog.lael.be/post/1866

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
538 정규표현식(Regular Expression)을 소개합니다. file 졸리운_곰 2017.03.20 149
537 설계 노하우: UI 컴포넌트 file 졸리운_곰 2017.03.20 145
536 UML: 클래스 다이어그램과 소스코드 매핑 file 졸리운_곰 2017.03.20 391
535 왜 웹서버와 WAS를 분리하나요? file 졸리운_곰 2017.03.15 97
534 WEB와 WAS 서버를 분리하는 이유는? file 졸리운_곰 2017.03.15 201
» 언제 웹서버와 DB서버를 분리해야 하는가? file 졸리운_곰 2017.03.15 249
532 게임처럼 연습하는 피아노! synthesia(신디시아) file 졸리운_곰 2017.03.07 1393
531 Lingoes 영어사전 설치 및 사용법 졸리운_곰 2017.03.07 260
530 ‘코드 한 줄 몰라도’ 모바일 앱을 개발할 수 있는 노코드 빌더 10선 file 졸리운_곰 2017.03.06 274
529 MS엑셀: 피벗 테이블 - 기초 개념 file 졸리운_곰 2017.03.05 290
528 피벗 테이블 : 피벗(Pivot) file 졸리운_곰 2017.03.05 170
527 피벗테이블(Pivot Table) 이란? 또 활용법 file 졸리운_곰 2017.03.05 260
526 데이터 분석을 이용한 게임 고객 모델링 #2 file 졸리운_곰 2017.03.05 100
525 데이터 분석을 이용한 게임 고객 모델링 #1 file 졸리운_곰 2017.03.05 94
524 무료 각종 효과음 사이트 모음(음향효과, 배경음악) file 졸리운_곰 2017.03.04 280
523 [웹사이트] 효과음 또는 사운드샘플을 찾을수 있는 사이트들 졸리운_곰 2017.03.04 123
522 [ Windows 10 ] 260자 이상의 파일 경로를 사용하는 방법 졸리운_곰 2017.03.04 254
521 vmware vsphere client 고해상도 모니터 (레티나)에서 화면이 다 나오지 않고 깨질때. 졸리운_곰 2017.03.02 205
520 WebExtractor360 - Open Source Web Extractor [web scrape] 졸리운_곰 2017.02.26 110
519 Programatically retrieving data from a website into a database file 졸리운_곰 2017.02.26 19116
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED