728x90
아키텍쳐란?
- 시스템을 만들기 위한 물리 레벨의 조합(서버의 기능, 저장소와 네트워크 기기의 조합)
- 데이트베이스 설계에서 시스템의 구성
- 아키텍처를 통해 시스템의 용도와 목적 추측 가능
IT 아키텍처
- 일정 기준과 절차에 따라 조직 전체의 정보화 구성요소를 통합분석 후에 그 관계를 구조적으로 정리한 체제. 이를 바탕으로 정보 시스템을 효율적으로 구성하기 위한 방법
아키텍처의 역사
1. Stand-alone : 데이터베이스 만으로 시스템 운용
- DBMS서버가 네트워크 접속 없이 독립적으로 작동.
2. Cs(client - server) : 클라이언트와 서버로 계층 분리 // 상호 네트워크 접속
3. WEB 3계층
- WEB, WAS, DBMS로 구분
- WEB - 사용자에 보여지는 쪽
- WAS - 비즈니스 로직, 업무처리
- DBMS - 데이터 처리
- 현재의 주류 모델이다.
4. 클라우드 서버 - AWS / GCP / Azure / NAver Cloud platform
5. 서버리스 개념
가용성이란?
- 서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용 가능한 정도
- 가용성을 수식으로 표현할 경우, 정상적인 사용 시작(Uptime)을 전체 사용 시간(Uptime + Downtime)으로 나눈 값을 말한다.
- 가용성이 높은 것을 고가용성(HA, High Availability)이라고 한다.
확장성이란?
- IT 시스템에서 대규모적인 재설계 및 재설치가 필요없이 확장이 얼마나 쉽고 가능한지에 대한 용이성
- DBMS 설계자는 DBMS의 확산이나 거대한 성장을 도모해야 함
- 절대적인 사용자 수가 증가하더라도 이를 수용할 수 있도록 확장성 있게 설계해야 함.
- 클라우드 시스템이 각광을 받는 이유 중 하나가 탁월한 확장성에 있음.
가용성을 높이는 전략
- 고품질-소수
- DBMS 서버의 고품질을 추구
- 소수의 DBMS 서버를 이용
- 높은 견고함과 신뢰성
- 저품질-다수
- 다수의 DBMS를 사용
- 클러스터링 전략(동일 기능의 DBMS 서버를 다수로 구축)
저품질-다수 전략의 용이성
- 동일 기능을 하는 DBMS 서버를 여러 대 설치 및 운영하여 병렬화
- 여러 대의 DBMS 서버가 한 개의 시스템을 위해서 존재
- 다중화/여유도 확보
- 서버를 늘릴수록 장애 발생률은 확률적으로 자연 감소.
단일 장애 점(SPOF, single point of failure)
- 시스템 구성 요소 중에서, 동작하지 않으면 전체 시스템이 중단되는 요소. 높은 가용성을 추구하는 네트워크, 소프트웨어 어플리케이션, 상용 시스템에 단일 장애점이 있는 것은 바람직하지 않다.
- 높은 신뢰성을 요구하는 시스템은 단일 컴포넌트에 의존하지 않는 것이 좋다.
신뢰성 vs 가용성
DB 서버의 다중화
- 다른 컴포넌트에 비해 다중화가 어려움
- 영속(persistaence) 계층의 특성
- 데이터 장기간 보존 필요
- 일시적 처리만 담당하는 애플리케이션 서버 등과 차이
- 데이터 다중화 시 갱신 통한 정합성 중요
DB 서버 다중화 유형
- Active-Active
- 두 개의 DBMS 엔진 서버가 동시에 가동
- 저장소는 한 곳을 바라봄(저장소는 1개)
- Active - Standby
- 평소에는 Active만 운영하고 나머지 서버는 Standby 상태
- 저장소는 한 곳을 바라봄
- 리플리케이션
- DB 서버와 저장소를 하나 세트로 하여 미리 준비
- 데이터 동기화가 중요
- 리플리케이션은 데이터베이스 서버와 저장소가 동시에 사용 불늘일 때 서비스를 계속할 수 있도록 해주는 매우 가용성이 높은 아키텍처
ACtive - Active 구성 다중화
- 장애 발생 시 Downtime이 거의 없다고 해도 무방
- 하나의 서버가 다운되어도 나머지 하나가 계속 처리
- 2대의 서버가 운영되므로 성능상 유리(저장소 병목이 ㅇ벗을 경우에)
Active - Standby 구성 다중화
- 평소에는 Active 서버로만 업무 처리
- Active 서버가 장애 상황이 되어도 Standby 서버가 업무를 처리
- Standby 서버로 전환 시까지 downtime이 존재
리플리케이션 다중화
- Active - Active, Active - Standby는 저장소는 다중화 하지 않음
- 리플리케이션 방식은 DB서버와 저장소를 복수의 세트로 준비
- 매우 많은 비용
Shared Disk
- active-active 구성 DB
- DB와 DB가 하나의 디스크를 공유한다.
- 저장소 공유로 인한 병목 현상 발생
- DB 서버를 늘려도 한계점에 도달
Shared Nothing
- 서버와 저장소 세트를 늘려 병렬처리
- 세트를 늘린 것만큼 비례하여 처리율 증가
- 샤딩 기술이 대표적
- DB서버 다운 시 다른 서버가 이어받아 처리할 수 있는 커버링 전략이 필요
Shard
- database shard는 데이터베이스나 웹 검색 엔진의 데이터의 수평 분할이다. 개개의 파티션은 샤드(shard) 또는 데이터베이스 샤드(database shard)로 부른다. 각 샤드는 개개의 데이터베이스 서버 인스턴스에서 부하 분산을 위해 보유하고 있다.
- 데이터베이스 내의 일부 데이터는 모든 샤드에 존재하지만 일부는 하나의 샤드에만 존재한다. 각 샤드는 이 데이터 부분을 위해 ‘하나’의 소스로서 동작한다.
최적의 아키텍처 설계 전략
- 가용성, 신뢰성, 재해대책, 성능, 보안, 조직, 비용 등 다양한 조건을 고려
- 해당 비즈니스의 성장성이나 사용자의 유입 예측도 감안
- 한 번 구축하면 변경 시 비용과 시간이 소모됨
728x90
'정리' 카테고리의 다른 글
[데이터베이스 강의 정리] 5. 트랜잭션(Transaction) (0) | 2021.08.05 |
---|---|
[데이터베이스 강의 정리] 4. 오라클, SQL (0) | 2021.08.05 |
[데이터베이스 강의 정리] 2. 관계형 데이터 베이스 (0) | 2021.08.05 |
[데이터베이스 강의 정리] 1. 데이터베이스란 (0) | 2021.08.05 |
데이터 분석을 위한 5가지 절차 (0) | 2021.08.02 |