19.04.29 데이터베이스와 아키텍처 구성

Back-End/Data Base 2019. 4. 29. 22:35
728x90
반응형

-아키텍처-

 

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

하드웨어와 미들웨어의 구성을 가리킨다.

 

 

 

-아키텍처의 역사-

 

1. Stand-alone : 데이터베이스만으로 시스템이 성립하는 가장 간단한 방법

2. 클라이언트 / 서버 : 클라이언트와 서버로 계층을 분리하여 상호 간에 네트워크로 접속하는 서버

3. Web 3계층 : 클라이언트 / 서버를 더욱더 발전시킨 것

 

Stand-alone

 특징

장점 

단점 

 문자 그대로 데이터베이스가 동작하는 머신이

LAN이나 인터넷 등의 네트워크에 접속하지

않고 독립되어 동작하는 구성

 구축이 매우 간단해서 소규모 작업을 빨리할수있다.

 

보안이 매우 높다.

물리적으로 떨어진 장소에서 접근할 수 없다.

 

복수의 사용자가 동시에 작업할 수 없다.

 

가용성이 낮다.

 

확장성이 부족하다. 

 

 

 클라이언트 / 서버

 특징

 장점

단점 

 데이터베이스를 네트워크에 연결한 것

 먼 곳에서도 이용할 수 있다.

 

복수의 사용자가 동시에 작업할 수 있어서 효율적

 인터넷 -> 데이터베이스 (보안위험)

 

불특정 다수의 사용으로 인한 관리비용 증가

 

 

 

 Web 3계층

 특징

 장점

단점 

 시스템을 3가지 계층의 조합으로 생각하는 모델

(웹 서버, 애플리케이션, 데이터베이스)

 보안을 높일수 있다.

 

관리 비용을 낮추는 구성이 될 수 있다.

 가용성이 낮다.

 

확장성이 부족하다.

 

 

 

-가용성을 높이는 2가지 전략-

 

 

  심장전략(고품질-소수전략)

 

  시스템을 구성하는 각 컴포넌트의 신뢰성을 높여 장애 발생률을 낮게 억제해서 가용성을 높인다. (소수정예 노선)

 

  신장전략(저품질-다수전략)

 

  시스템을 구성하는 각 컴포넌트의 신뢰성을 계속해서 높이기보다는 '사물은 언젠가 망가진다' 란 체념을 전제로 여분을 준비해둔다.

  이를 철저히 대비하는 것을 '물량작전'이라고 부른다.

 

 

 

 

-클러스터란?-

 

신장전략처럼 동일한 기능의 컴포넌트를 병렬화하는 것을 '클러스터링' 이라고 부릅니다.

'클러스터'는 사물이나 사람의 집합을 가리키는 말로, 포도 등의 '송이'란 의미도 있습니다.

이 의미처럼 시스템 세계에서는 '동일한 기능의 컴포넌트를 복수 개 준비해 한 개의 기능을 실현한다' 는 의미로 사용합니다.

또한, 클러스터 구성으로 시스템의 가동률을 높이는 것을 '여유도 를 확보한다' 또는 '다중화'라고 지칭합니다.

 

 

 

-단일 장애점-

 

다중화되어 있지 않아서 시스템 전체 서비스의 계속성에 영향을 주는 컴포넌트를 '단일 장애점'이라고 합니다.

또한 단일 장에점의 신뢰성이 시스템 전체의 가용성을 결정합니다.

 

 

 

-DB와 다른 서버의 차이-

 

데이터베이스는 데이터를 장기간 보존하는 매체가 필요합니다.

이것이 기본적으로 데이터를 일시적으로 처리할 뿐인 웹 서버나 애플리케이션 서버와 다른 점 입니다.

웹 서버나 애플리케이션 서버는 한창 처리 중일 때는 일시적으로 데이터를 보존하기도 하지만, 처리가 끝난 후까지 계속 데이터를

보존할 필요는 없습니다.

하지만 데이터베이스는 대량의 데이터를 영구적으로 보존해야 하고 그에 따른 성능도 요구되기 때문에

데이터를 보존하는 매체에 필요한 요건이 높습니다.

 

 

 

-기본적인 다중화-

 

Active-Active : 클러스터를 구성하는 컴포넌트를 동시에 가동한다. 시스템 다운 시간이 짧다. 성능이 좋다.

 

Active-Standby : 클러스터를 구성하는 컴포넌트 중 실제 가동하는 것은 Active, 남은 것은 대기하고 있는다.

ㄴCold-Standby : 평소에는 Standby DB가 작동하지 않다가 Active DB가 다운된 시점에 작동하는 구성이다.

ㄴHot-Standby : 평소에도 Standby DB가 작동하는 구성이다.

 

 

 

-리플리케이션-

 

Active-Active와 Active-Standby 클러스터 구성에서는 서버 부분은 다중화할 수 있어도 저장소 부분은 다중화할 수 없어서 데이터를 다중화하지

않는 공통적인 단점이 있습니다.

즉, 저장소가 부서질 경우에는 데이터를 잃게 됩니다.

물론 저장소도 보통은 내부 컴포넌트가 다중화되어 있지만, 데이터 센터 전체가 지진으로 붕괴하거나 화재가 난다면 끝입니다.

이런 상황에 대응하기 위한 클러스터 구성이 '리플리케이션' 입니다.

이는 DB서버와 저장소 세트를 복수로 준비하는 것을 말합니다.

 

 

-성능을 추구하기 위한 다중화 -

 

 Shared Disk

Shared Nothing 

 복수의 서버가 1대의 디스크를 사용하는 구성

네트워크 이외의 자원을 모두 분리(공유하지 않는) 방식

 

서버와 저장소의 세트를 늘리면 병렬처리 때문에 성능이 향상

 

비용 대비 성능이 좋다.

 

 

 

 

 

728x90
반응형
: