Database

[SQLD 이론 기초] 3. 데이터베이스 아키텍처

noahkim_ 2021. 7. 28. 13:10

1. 아키텍처란

  • 시스템의 구성 요소와 이를 조합하는 물리적, 논리적 구조를 의미합니다.
  • 이에는 서버의 기능, 저장소, 네트워크 장치 등이 포함됩니다.

 

2. 아키텍처의 개요

stand-alone

  • 네트워크 연결이 필요 없이 독립적으로 작동하는 시스템
  • 구축 과정이 단순하고, 보안성이 높다.
  • 확장성이 제한적, 원격 접근 불가, 주로 단일 사용자만 사용 가능.

 

클라이언트/서버 단계

  • 중앙 서버와 이를 사용하는 클라이언트로 구성됨.
  • 여러 사용자가 동시에 서비스를 이용할 수 있다.
  • 동시 다발적인 접근 가능.
  • 보안 측면에서 위험 요소가 존재.

 

WEB3 계층

  • 시스템을 3가지 계층의 조합으로 인식함 (WEB, WAS, DBMS)
  • 보안이 향상됨.
  • 비즈니스 로직이 집중됨.
  • 각 계층간의 통신 오버헤드가 발생할 수 있음

 

3. 가용성과 확장성 확보

가용성

  • 정보 시스템이 사용자에게 서비스를 제공할 수 있는 상태를 의미합니다.

 

확장성

  • 시스템의 용량이나 처리 능력을 쉽게 늘릴 수 있는 설계의 유연성을 말합니다.
  • DBMS의 확장 또는 큰 성장을 위해선 이를 고려해 설계해야 합니다.

단일장애점(SPOF, Single Point Of Failure)

  • 시스템 중 특정 부분이 실패할 경우 전체 시스템이 작동을 멈추게 되는 부분을 지칭합니다.
  • 신뢰성이 중요한 시스템에서는 이러한 요소를 최소화해야 합니다.

 

4. DB 서버의 다중화

  • 다른 컴포넌트에 비해 다중화 어려움

 

영속 계층

  • 데이터 장기간 보존 필요
  • 데이터 다중화 시 갱신을 통한 정합성 중요

 

다중화 유형

Active-Active
  • 두 개의 엔진 서버가 동시에 가동됨.
  • 저장소는 한 곳을 바라봄 (저장소는 1개)

 

Active-Standby
  • 평소에는 Active만 운영하고 나머지 서버는 Standby 상태.
  • 저장소는 한 곳을 바라봄

 

Replication
  • Active-Active 세트 하나 마련해 두어 하나의 서버가 죽어버릴 때를 대비함.
  • 가용성이 높음

 

 

5. 성능 추구를 위한 다중화

Shared Disk

  • Active-Active 구성 DB
  • 디스크 공유

 

Shared Nothing

  • 서버와 저장소 세트를 늘려 병렬처리
  • 디스크 공유 X

 

6. 적합한 아키텍처를 설계하기 위해

  • 최적의 아키텍처 설계 전략
  • 가용성, 신뢰성, 재해대책, 성능, 보안, 조직, 비용 등 다양한 조건을 고려해야 함.
  • 비즈니스의 성장성이나 사용자의 유입 예측도 감안해야 함