Practice makes perfect

[SQLD] 데이터베이스 아키텍처 (1) 본문

빅데이터/SQLD

[SQLD] 데이터베이스 아키텍처 (1)

kerpect 2020. 12. 7. 14:14

아키텍처(Architecture) 란?  

  1. 시스템을 만들기 위한 물리 레벨의 조합(서버의 기능, 저장소와 네트워크 기기의 조합 등)
  2. 데이터베이스 설계에서 시스템의 구성
  3. 아키텍처 통해 시스템의 용도와 목적 추측 가능 

 

● IT 아키텍처(Architecture)

:  일정 기준과 절차에 따라 조직 전체의 정보화 구성요서를 통합분석 후 그 관계를 구조적으로 정리한 체제 이를 바탕으로 정보시스템을 효율적으로 구성하기 위한 방법 

 

 

● IT 시스템 아키텍처 예시

- 아키텍처 구성을 시스템의 목적에 맞게 결정하는 과정, 서버, OS, 미들웨어, 저장소 등 폭젋은 지식 필요 

- 적정 비용으로 필요 시스템 구축하기 휘해서도 매우 중요 

 

● IT 아키텍처의 역사 

단계 특징
Stand-alone - 1980년대까지 널리 이용
- 데이터베이스만으로 시스템 운용
클라이언트 / 서버  - 1990년대 ~ 2000년
- 클라이언트와 서버로 계층 분리
- 상호 네트워크 접속
WEB 3계층  - 2000년 ~ 현재
- WEB, WAS, DBMS로 구분
- 클라이언트 / 서버 단계를 발전시킨 현재의 주료 모델 

- 최근에는 클라우드 시대를 맞이하여 기존의 틀을 뒤엎은 다양한 IT 아키텍처가 등장

- 서버가 마치 존재하지 않는 것처럼 운영되는 서비스 개념도 존재

- 다양한 클라우드 서비스 업체가 경쟁

- 클라우드를 이해하기 위해서도 기존의 전통적인 방식의 IT 아키텍처의 지식 필수 

 

1. Stand - alone 단계(DBMS 관점) 

: DBMS 서버가 네트워크 접속 없이 독립적으로 작동, 20세기 현대적 컴퓨터의 최초 등장시기 

장점 단점
- 구축 과정이 간단함(소규모 작업 및 테스트를 빨리
   처리할 수 있음)
- 높은 보안(네트워크 연결 불가)
- 물리적 떨어진 장소에서 접근 불가
- 복수 사용자가 동시에 작업 불가(1명만 이용가능)
- 낮은 가용성(Availability) - 서버가 단 1대임
- 확장성 부족 

 

 

2. 클라이언트 / 서버 단계 (DBMS 관점) 

: 네트워크 연결을 통한 복수 사용자가 동시에 사용가능, DB 서버 한대에 복수 사용자가 접속하는 구성이 주를 이룸

장점 단점
- 원격지에서도 사용가능 
- 복수의 사용자가 동시에 사용 가능 
- 인터넷 환경에서 접속시 보안이 위험
- 각자의 사용자 PC에서 애플리케이션 설치
  (수정 및 배포의 어려움 존재

 

 

3. WEB3 계층 (DBMS 관점)

: 애플리케이션을 WAS 서버에서 관리 , 시스템을 3가지 계층의 조합으로 인식하기 시작(WEB, WAS, DBMS) 

장점 단점
- 직접적인 접속 요청을 웹서버 계층에 한정하여 보안이 향상
- 애플리케이션 계층에 비즈니스 로직이 집중
  (관리의 용이성 및 비용 절감) 
- Stand - Alone 및 클라이언트 / 서버 방식에 비해 크게
  단점이 존재하지 않음. 

 

 

● 가용성과 확장성 확보 

 

가용성이란 ? 

  1. 가용성이란 서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용 가능한 정도를 말한다. 
  2. 가용성을 수식으로 표현할 경우, 가용성(Availability) 이란 정상적인 사용시간(Uptime)을 전체 사용시간                (Uptime + Downtime)으로 나눈 값을 말한다. 이 값이 높을수록 "가용성이 높다" 고 표현한다. 
  3. 가용성이 높은 것은 고가용성(HA, High Availiability) 이라고 한다. 

 

 

- 가용성이 100이라면 단 한번도 장애없이 동작한 시스템이다. 

 

 

확장성이란 ? 

  1. 화가작성(Scalability)는 IT 시스템에서 대규모적인 재설계 및 재설치가 필요없이 확장이 얼마나 쉽고 가능한지에 대한 용이성을 뜻한다.
  2. DBMS 설계자는 DBMS의 확산이나 거대한 성장을 도모해야한다. 
  3. 절대적인 사용자가 수가 증가하더라도 이를 수용할 수 있도록 확장성 있게 설계해야 함을 의미한다. 
  4. 최근의 클라우드 시스템이 각광받는 이유 중 하나가 바로 탁월한 확장성에 있다. 

 

● 가용성을 높이는 전략

고품질 - 소수 저품질 - 다수
- DBMS 서버의 고품질을 추구
- 소수의 DBMS 서버를 이용
- 소수의 DBMS 서버를 높은 견고함과 신뢰성으로 무장
- DBMS 서버가 품질이 떨어지더라도 다수의 DBMS를 사용하는 전략
- 클러스터링 전략(동일 기능의 DBMS 서버를 다수로 구축

 

● 저품질 - 다수 전략의 용이성

 

- 동일 기능을 하는 DBMS 서버를 여러 대 설치 및 운영하여 병렬화 시킴

- 여러 대의 DBMS 서버가 한 개의 시스템을 위해서 존재

- 다중화/여유도 확보

- 서버를 늘릴수록 장애 발생률은 확률적으로 자연 감소함

 

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

 

- 단일 장애 점(SPOF, Single Point Of Failure)은 시스템 구성 요소 중에서, 동작하지 않으면 전체 시스템이 중단되는 요소를 말한다. 높은 가용성을 추구하는 네트워크, 소프트웨어 애플리케이션, 사용 시스템에 단일 장야점이 있는것은 바라직하지 않다. 

- 높은 신뢰성을 요구하는 시스템은 단일 컴포넌트에 의존하지 않는 것이 좋다(ex 금융권 시스템) 

 

● 신뢰성 vs 가용성

신뢰성 (Reliability) 가용성 (Availability)
- 하드웨어나 소프트웨어가 고장 나는 빈도 밑 고장 기간
- 컴포넌트 자체의 문제 
- 사용자 입장에서 시스템을 어느 정도 사요할 수 있는가
- 시스템 전체 수준의 문제 

- 신뢰성이 낮아도 여러 대의 서버를 구축하는 클러스터링 기법을 통해 가용성 확보가 가능하다. 

 

'빅데이터 > SQLD' 카테고리의 다른 글

[SQLD] 관계형 데이터베이스란  (0) 2020.12.06
[SQLD] 데이터베이스란  (0) 2020.12.06