2019. 08. 06

Jaewoo KIM

데이터베이스의 첫걸음

A to z C

DBMS vs DATABASE

아키텍처

시스템을 만들기 위한 물리레벨의 조합

아키텍처 설계의 어려움

OS

Middleware

Server

Load Balancer

Storage

Firewall

아키텍처 설계의 중요성

  • '돈'의 영역과 밀접한 관련이 있음
  • 시스템 개발의 초반에 시행하는 일 중에서 매우 중요함
  • 비용 산출을 위한 필수 단계
  • 개발 후반이 되면 변경하기가 어려워짐

데이터베이스
역사와 개요

아키텍쳐의 역사를 먼저 살펴보자

  1. Stand-alone(~1980년대)
  2. 클라이언트/서버 (1990년대 ~ 2000년)
  3. 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

Made with Slides.com