언제 웹서버와 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

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1195 [ 一日30分 인생승리의 학습법] VBA Web Scraping: How Can VBA Be Used To Scrape Website Data? file 졸리운_곰 2024.04.13 3
1194 [ 一日30分 인생승리의 학습법] 윈도우 실행파일 구조(PE파일) file 졸리운_곰 2024.03.31 3
1193 [ 一日30分 인생승리의 학습법] [Analysis] PE(Portable Executable) 파일 포맷 공부 file 졸리운_곰 2024.03.31 3
1192 [ 一日30分 인생승리의 학습법] 성공하는 메타버스의 3가지 조건 file 졸리운_곰 2024.03.30 7
1191 [ 一日30分 인생승리의 학습법] REST, REST API, RESTful 과 HATEOAS file 졸리운_곰 2024.03.10 9
1190 [ 一日30分 인생승리의 학습법] 렌더링 삼형제 CSR, SSR, SSG 이해하기 file 졸리운_곰 2024.03.10 2
1189 [ 一日30分 인생승리의 학습법] 엑셀 VBA에서 셀레니움 사용을 위한 Selenium Basic 설치 file 졸리운_곰 2024.02.23 11
1188 [ 一日30分 인생승리의 학습법]500 Lines or Less Blockcode: A Visual Programming Toolkit : 500줄 이하의 블록코드: 시각적 프로그래밍 툴킷 졸리운_곰 2024.02.12 4
1187 [ 一日30分 인생승리의 학습법] 구글 클라이언트(앱) 아이디를 발급받으려면 어떻게 해야 하나요? 졸리운_곰 2024.01.28 3
1186 [ 一日30分 인생승리의 학습법] 빅뱅 프로젝트를 성공적으로 오픈하기 위한 팁 졸리운_곰 2023.12.27 16
1185 [ 一日30分 인생승리의 학습법]“빅뱅 전환보다 단계적 전환 방식이 이상적 애자일팀과 협업 쉽게 체질 개선을” file 졸리운_곰 2023.12.27 12
1184 [ 一日30分 인생승리의 학습법] Big-bang / phased 접근 file 졸리운_곰 2023.12.27 3
1183 [ 一日30分 인생승리의 학습법] CodeDragon 메뉴 데이터 전환의 개념 이해 - 데이터 전환의 개념, 데이터 전환방식, 데이터 전환방식 및 장단점 비교, 데이터전환 이후 검토해야 할 사항 졸리운_곰 2023.12.27 5
1182 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 분쟁 해결 시스템 file 졸리운_곰 2023.12.27 6
1181 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 개념과 리뷰 시스템 file 졸리운_곰 2023.12.27 4
1180 [ 一日30分 인생승리의 학습법] 소켓 CLOSE_WAIT 발생 현상 및 처리 방안 file 졸리운_곰 2023.12.03 7
1179 [ 一日30分 인생승리의 학습법] robots 설정하기 졸리운_곰 2023.12.03 3
1178 [ 一日30分 인생승리의 학습법] A Tutorial and Elementary Trajectory Model for the Differential Steering System of Robot Wheel Actuators : 로봇 휠 액츄에이터의 차동 조향 시스템에 대한 튜토리얼 및 기본 궤적 모델 file 졸리운_곰 2023.11.29 6
1177 [ 一日30分 인생승리의 학습법] Streamline Your MLOps Journey with CodeProject.AI Server : CodeProject.AI 서버로 MLOps 여정을 간소화하세요 file 졸리운_곰 2023.11.25 2
1176 [ 一日30分 인생승리의 학습법] Comparing Self-Hosted AI Servers: A Guide for Developers / : 자체 호스팅 AI 서버 비교: 개발자를 위한 가이드 file 졸리운_곰 2023.11.25 10
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED