728x90
반응형
아키텍처(Architecture) 개념 설명
- 아키텍처의 정의
- 시스템을 위한 물리적, 기능적 구성: 서버, 저장소, 네트워크 장비 등을 결합하여 시스템을 구축하는 방식.
- 데이터베이스 설계에서 시스템의 구성: 아키텍처는 시스템 설계에서 중요한 역할을 하며, 이를 통해 시스템의 목적과 용도를 유추할 수 있음.
- IT 아키텍처
- 효율적인 정보 시스템 구성: IT 아키텍처는 조직의 구성 요소와 그 관계를 분석하고, 이를 바탕으로 정보 시스템을 효율적으로 설계하는 방법론.
- 서버, 운영체제, 미들웨어, 저장소 등 다양한 기술 지식 필요: 아키텍처 설계는 다양한 기술 요소에 대한 깊은 이해가 요구되며, 시스템의 목표에 맞게 적합한 구성 요소들을 결합해야 함.
- 비용 효율적 시스템 구축: 효율적인 비용으로 필요한 시스템을 구현하는데 있어서 아키텍처 설계가 매우 중요.
아키텍처의 역사와 발전
- Stand-Alone (1980년대까지)
- 특징: 네트워크 없이 독립적인 DBMS 서버만으로 시스템을 운영.
- 장점: 시스템 구축이 간단하고 보안성이 뛰어남.
- 단점: 물리적으로 분리된 장소에서는 접근이 불가능하며, 한 명만 사용할 수 있음.
- Client/Server (1990년대 ~ 2000년대)
- 특징: 클라이언트와 서버가 네트워크로 연결되어 여러 사용자가 동시에 시스템을 사용할 수 있음.
- 장점: 원격지에서도 사용 가능하고 다수의 사용자가 동시에 이용 가능.
- 단점: 인터넷 환경에서는 보안 위협이 존재하고, 각 사용자 PC에 애플리케이션을 설치해야 하는 불편함.
- WEB 3 계층 (2000년대 ~ 현재)
- 특징: 웹 서버(WEB), 애플리케이션 서버(WAS), 데이터베이스 서버(DBMS)로 구성된 3계층 아키텍처.
- 장점: 보안이 강화되며, 비즈니스 로직을 애플리케이션 계층에 집중시켜 관리가 용이.
- 단점: 이전의 방식들과 비교할 때 특별한 단점은 없음.
- 클라우드 시대: 기존 아키텍처를 넘어서 다양한 클라우드 기반의 새로운 시스템 아키텍처들이 등장.
- 서버리스: 서버가 존재하지 않는 것처럼 운영되는 서버리스 모델도 적용 가능.
가용성(Availability)과 확장성(Scalability)
- 가용성
- 정의: 시스템이 정상적으로 사용 가능한 상태를 유지하는 정도.
- 계산식: 정상 작동 시간(Uptime)을 전체 시간(Uptime + Downtime)으로 나눈 값.
- 고가용성(HA): 장애 없이 시스템을 지속적으로 운영할 수 있는 능력.
- 확장성
- 정의: 시스템의 확장이 쉽고, 대규모 변화를 위해 재설계나 재설치 없이 용량을 늘릴 수 있는 능력.
- 클라우드 시스템의 장점: 클라우드 시스템은 뛰어난 확장성 덕분에 더욱 주목받고 있음.
가용성 확보 전략
- 고품질-소수 전략
- 설명: 높은 품질의 DBMS 서버 몇 대만 사용하여 시스템을 운영.
- 장점: 서버의 신뢰성 및 안정성이 높음.
- 저품질-다수 전략
- 설명: 품질이 낮은 DBMS 서버 여러 대를 사용하여 시스템을 운영 (클러스터링 기법).
- 장점: 서버 수를 늘리면 장애 확률이 낮아지고, 성능 개선 가능.
DB 서버 다중화
- 다중화의 어려움
- DB 서버는 영속적인 데이터 저장을 담당하기 때문에 다중화가 어려운 측면이 있음. 데이터 정합성도 중요한 요소임.
- DB 서버 다중화 유형
- Active-Active: 두 개의 DBMS 서버가 동시에 동작하고, 저장소는 하나를 공유.
- Active-Standby: 평소에는 Active 서버만 작동하고, 장애 발생 시 Standby 서버가 역할을 대신.
- 리플리케이션: 서버와 저장소를 복수 세트로 준비해 실시간으로 동기화. 주로 재해 복구(DR) 시스템에 사용.
- Active-Active
- 장점: 장애 시 거의 다운타임 없이 시스템을 운영할 수 있음. 성능 상 유리.
- 단점: 저장소 병목 현상이 발생할 수 있음.
- 평소에(장애 상황이 아닌 경우)도 2대의 서버가 운영되므로 성능 상 유리
- 저장소의 병목 현상이 있을 경우 순간적으로 성능에 문제가 발생하는 경우가 있음
- Oracle DBMS의 RAC가 대표적인 Active - Active 다중화 제품임
- 국산 DBMS인 TIBERO도 TAC라는 Active - Active 다중화 기술을 지원함
- Active-Standby
- 장점: 비용이 적고 관리가 용이.
- 단점: 장애 시 다운타임이 발생.
- Cold-Standby : 장애 상황이 없을 때는 Standby 서버가 작동하지 않고 Active 서버가 장애일 때만 작동
- Hot Standby : 장애 상황이 없을 때에도 Standby서버가 작동 --> Active 서버에 장애 발생 시 Downtime 시간이 감소됨
- 저장소 병목으로 인한 성능 상 이슈는 없음
- 무조건 1대의 서버로만 운영되므로 그로 인한 성능 상 불리한 점이 존재
- Active - Active 구성에 비해 비용상 유리하고 관리가 용이함
- 대부분의 DBMS가 채택하는 방식
- 리플리케이션
- 장점: 장애 발생 시 서비스가 중단되지 않음.
- 단점: 데이터 동기화가 중요하며, 높은 비용이 듦.
성능을 위한 다중화
- Shared Disk vs. Shared Nothing
- Shared Disk: 여러 서버가 동일한 저장소를 공유하지만, 저장소 병목 현상이 발생할 수 있음.
- Shared Nothing: 각 서버가 별도의 저장소를 가지고 병렬 처리하여 성능을 최적화. 샤딩 기술이 대표적.
- 샤딩(Sharding)
- 정의: 데이터를 수평적으로 나누어 여러 서버에 분산 저장하여 처리 성능을 높이는 기술.
- 특징: 각 샤드는 독립적으로 동작하며, 데이터 분산으로 부하를 분산시킴.
최적 아키텍처 설계 전략
- 다양한 조건 고려
- 가용성, 신뢰성, 성능, 보안, 비용 등 다양한 요소를 종합적으로 고려해야 함.
- 비즈니스 성장성 및 사용자 수 증가에 대한 예측도 중요.
- 비용과 시간의 고려
- 한번 구축한 시스템은 변경에 시간이 많이 소요되며, 비용도 많이 들기 때문에 초기 설계가 중요.
728x90
반응형
'Computer 공부 > Clean architecture' 카테고리의 다른 글
Clean architecture? (0) | 2024.07.19 |
---|