웹 서버랑 디비 서버의 차이가 헷갈려서 알아보았다.
디비 서버와 웹 서버는 분리되어 있을 수도 있고 합쳐져 있을 수도 있다.
웹 서버에 저장되는 것 (호스팅 파일들)
HTML 문서
CSS 스타일시트
자바스크립트 파일
PHP(코딩 언어)
폰트
이미지
비디오
웹 서버란
- 하드웨어 측면에서는 웹 서버의 소프트웨어와 웹 사이트의 컴포넌트 파일 (html문서, images, css stylesheets, JavaScript files) 을 저장하는컴퓨터
- 웹 서버는 인터넷에 연결되어 웹에 연결된 다른 기기들이 웹 서버의 데이터(컴포넌트 파일들)를 주고받을 수 있도록 한다.
- 소프트웨어 측면에서, 웹 서버는 웹 사용자가 어떻게 호스트 파일들에 접근하는지를 관리한다. 이 때 웹 서버는 HTTP서버를 말한다.
- 브라우저가 웹 서버에서 불러온 파일을 원할 때, 브라우저는 HTTP 를 통해 파일을 요청하고, 이 요청이 웹 서버(하드웨어)에 도달했을 때, HTTP 서버(소프트웨어) 는 요청된 문서를 HTTP 를 통해 보내준다
- 웹 페이지를 가져오기 위해 브라우저가 웹 서버에 요청을 보낸다.
- HTTP 웹서버는 HTTP 요청을 처리할 수 있는 웹서버이고, 아파치HTTP서버는 아파치HTTP요청을 처리하는 웹서버다.
- 서버는 정적 콘텐츠 혹은 동적 콘텐츠를 모두 제공할 수 있다.
- 정적 콘텐츠는 있는 그대로를 제공하는 것이다.
- 동적 콘텐츠는 서버가 콘텐츠를 처리 (심지어는 콘텐츠를 데이터베이스로부터 생성하는 것) 하는 것을 의미한다.
- 식당으로 비유하면 손님(웹 클라이언트 또는 웹 브라우저) 이 직원에게 요리를 주문하면, 직원은 주방장(WAS)에게 요리를 요청한 후, 요리가 완료되면 손님에게 가져다준다.
- 보통 웹서버는 HTML,CSS 등으로 정적인 웹페이지를 웹 클라이언트 (웹 브라우저) 에게 전달하거나 웹 브라우저 요청을 읽어 들여 WAS 에게 전달한다.
- WAS 는 DB 조회, 로직 처리 등과 같은 동적인 콘텐츠를 저리하는 서비스로 처리한 결과를 Web Server 에 전달한다. 그러면 웹 브라우저에 웹페이지 결과가 노출된다.
- WAS(와스!)는 Web Application Server : DB조회나 다양한 로직을 처리하는 동적인 콘텐츠를 처리하는 시스템으로 사용언어는 PHP, JSP, ASP, 종류는 Tomcat, Jeus, JBoss 가 있다.
- 웹서버는 정적인 콘텐츠(HTML,CSS,JPEG) 를 처리하는 시스템을 지칭하기도 하나보다. 종류는 Apache, Nginx, IIS
디비서버
- 사용자가 웹브라우저를 통해 서버에 요청하고, 서버는 요청받는 자료를 제공하듯이 디비도 마찬가지다.
- 데이터베이스 클라이언트는 데이터베이스에 요청을 해서 여러가지 명령하거나 데이터를 체크하고, 서버(DBMS) 는 저장, 수정, 삭제, 정의, 관리를 한다.
- 데이터베이스 클라이언트에서는 MySQLadmin, SQLyog 등으로 데이터베이스 서버에 접근하여 서버를 제어할 수 있다.
- 데이터베이스 서버 안에는 데이터베이스가 있다.
디비서버에 저장 되는 것
MYSQL
(모든 게시판 문의, 회원정보,업로드 한 정보 등등...)
웹 서버와 디비 서버의 분리에 대한 것
일반적으로는 단일 서버로 운영하거나 데이터베이스 서버를 분리하여 사용하는 경우가 많다.
WAS서버와 데이터베이스 서버를 하나의 머신에 사용하지 않을 것을 여러 이유에서 권장한다.
또한 분리하면 더 많은 동시 접속이 가능하다고 알려져 있다.
단일 또는 분리해서 사용 하는 경우 아래와 같다.
* 단일
웹 클라이언트 → 연결 ← 웹서버 WAS + 데이터베이스 서버
* 분리
웹 클라이언트 → 연결 ← 웹서버 WAS → 연결 ← 데이터베이스 서버
WAS 와 데이터베이스 서버 분리가 필요한 때
- WAS 에서 처리할 부분이 DB 서버에 비해 상대적으로 많은 경우.
- 이미지나 영상 등 적정 리소스를 많이 요구하는 쇼핑몰과 같은 웹사이트의 경우 상대적으로 데이터베이스 사양보다는 WAS 쪽 사양을 높이는 것이 필요하다. 그런데 만일 이 때 단일 서버로 구성 되어있다면, WAS의 성능만 높이면 되는데 데이터베이스 서버의 성능까지 함께 올려야 한다. 그래서 비효율이 발생할 수 있다.
- WAS 와 달리 데이터베이스는 다른 하드웨어에 비해 메모리에 영향을 많이 받는다. 즉 WAS 와 데이터베이스의 성능을 높이는 기술적 방법은 다르게 적용되야 하는데 단일 서버인 경우 구현에 한계가 있다.
WAS 와 데이터베이스 서버 분리 시 장점
1. 확장성
2. 보안성
- 만일 WAS 서버에 해킹이 발생했다고 해도, 데이터를 따로 보관하고 있으니 보호받을 수 있다.
3. 기타 백업
https://developer.mozilla.org/ko/docs/Learn/Common_questions/What_is_a_web_server
https://reinvite.tistory.com/86
https://server-talk.tistory.com/276
'자라나라 PM' 카테고리의 다른 글
피그마figma 유료플랜 해지하는 방법 (0) | 2022.12.26 |
---|---|
파일질라 FileZilla 란 ? / FTP 란 ? (0) | 2022.12.22 |
CPU 기본개념 (하는 일, 제조공정, 클럭, 코어, 스레드, 캐시메모리, 가상화지원) (1) | 2022.10.18 |
데브옵스(DevOps), 데브옵스 엔지니어가 하는일. 그리고 사일로까지 연이어 개념 공부하기 (0) | 2022.10.17 |
개발자가 말하는 shipping, release, deploy, distribute, rollback (0) | 2022.10.17 |