2019. 08. 06
Jaewoo KIM
데이터베이스의 첫걸음
A to z C
DBMS vs DATABASE
아키텍처
시스템을 만들기 위한 물리레벨의 조합
아키텍처 설계의 어려움
OS
Middleware
Server
Load Balancer
Storage
Firewall
아키텍처 설계의 중요성
- '돈'의 영역과 밀접한 관련이 있음
- 시스템 개발의 초반에 시행하는 일 중에서 매우 중요함
- 비용 산출을 위한 필수 단계
- 개발 후반이 되면 변경하기가 어려워짐
데이터베이스
역사와 개요
아키텍쳐의 역사를 먼저 살펴보자
- Stand-alone(~1980년대)
- 클라이언트/서버 (1990년대 ~ 2000년)
- Web 3계층 (2000년~현재)
Web 3계층 구성도
사용자 A
사용자 B
사용자 C
웹 서버
Apache...
애플리케이션
Tomcat...
DB 서버
Server
Web 3계층
데이터베이스
가용성과 확장성의 확보
하지만 가용성이 낮고 확장성이 부족하다...
어떻게 하면 정지하지 않는 시스템을 만들까?
어떻게 하면 가용성을 높일 수 있을까?
심장전략과 신장전략
-
심장 전략 (고품질-소수전략)
=> 각 컴포넌트의 신뢰성을 높여 장애 발생률을 낮게 억제함
-
신장 전략 (고품질-다수략)
=> 각 컴포넌트의 신뢰성을 계속해서 높이기보다는
'사물은 언젠가 망가진다' 란 전제로 여분을 준비
수확체감의 법칙

신뢰성과 가용성
-
신뢰성
=> 하드웨어나 소프트웨어가 고장 나는 빈도나 고장 기간
-
가용성
=> 사용자 입장에서 볼 때 시스템을 어느 정도 사용할 수 있는지
DB 서버의 다중화
클러스터링
클러스터링이란?
신장전략처럼 동일한 기능의 컴포넌트를 병렬화하는 것
Active-Active
클러스터를 구성하는 컴포넌트를 동시에 가동한다
- 지원하는 DBMS는 Oracle 과 DB2
- 동시 가동으로 인해 성능이 좋음

- 저장소가 병목이 될수도..
- 비싸다는게 단점
저장소
Active-Standby
클러스터를 구성하는 컴포넌트를 동시에 가동한다
- Heartbeat를 통해 Active 상태 체크
- Cold-Standby와 Hot-Standby

저장소
DB 서버의 데이터의 다중화
리플리케이션
리플리케이션이란
DB서버와 저장소 세트를 복수로 준비하는 것

리플리케이션에서 주의할 점
- Standby 측의 데이터를 갱신해야 한다
- 갱신 주기와 성능 사이에 트레이드 오프가 있음
- 다음주에 좀 더 다양한 아키텍쳐를 찾아오겠음..
- 이것도 결국에는 비용과 밀접한 관련...
클러스터, 리플리케이션까지 했으니
이제 좀 안전할까?
9장 데이터 백업과 복구를..
성능을 추구하기 위한 다중화
Shared Nothing
111p
Stand-alone
정리해보면...
클러스터링
리플리케이션
Shared Nothing
Shared Disk
Active-Active
Activce-Standby
Hot-Standby
Cold-StandBy
마스터 슬레이브
멀티 마스터
관계형 데이터베이스의 계층
134p
데이터베이스 첫걸음
By Jaewoo KIM
데이터베이스 첫걸음
4장, 5장
- 326