- 대용량 => 대용량의 데이터를 관리하는데 성능이 좋음
- 안정성 => 백업, 제한, 관리 등에 편함(RDBMS)
일체형 서버(단일 서버)
웹 클라이언트 <-> 웹서버 + WAS + DB 서버
장) 통신이 빠름, 하나의 계정이 해킹 당해도 그 계정으로 다른 서버에 있는 DB에 접근할 수 없다는 보안상 강점
단) 서버가 다운되면 DB도 다운되어 데이터 유실의 가능성이 있음
분리형 서버
웹 클라이언트 <-> 웹서버 + WAS <-> DB 서버
장) 확장성, 보안성, 백업
단) 각 서버에 연결되면서 속도 저하 가능성이 있음
분리형 서버 장점
- 확장성
분리하여 성능 향상을 하기 위해 병렬 구조의 Scale out 방식[2] 서버 증설이 필요. DB 서버는 WAS와 자원을 공유하지 않고 독점적으로 사용하므로 더 높은 성능을 기대할 수 있음- 보안성
해킹에 의한 루트 권한이 모두 넘어가는 것을 방지, DB 서버를 분리하여 제한적인 권한을 부여하여 보호- 백업
백업 방법의 선택 폭이 넓어짐
WAS와 DB 서버 분리하는 이유
- WAS에서 처리하는 부분이 DB 서버에 비해 상대적으로 많은 경우, 단일 서버로 구현된 경우 WAS의 성능만 높이기 어려우므로 당연히 DB 서버를 함께 올릴 수 밖에 없음. 이런 이유로 가격과 성능을 고려할 경우 비효율적인 측면이 증가.
- 메모리에 대한 의존도만 생각해봐도 WAS보다는 DB가 월등히 높음. WAS와 달리 DB는 다른 하드웨어보다 메모리에 영향을 많이 받음. 즉 성능을 높이기 위한 기술적 방법이 각기 다르게 적용되야 하는데 하나의 단일 서버 구현은 한계가 있으므로 분리하는 방법이 필요
- 즉, WAS와 DB를 분리하여 성능 향상과 관리가 필요하므로 분리