1 minute read

아키텍쳐

What is “Architecture”?

  • 시스템을 만들기 위한 물리적 레벨의 조합(서버의 기능, 저장소와 네트워크 기기의 조합 등)
  • DB 설계에서 시스템의 구성을 의미
  • 아키텍쳐를 통해서 시스템의 용도와 목적 추측 가능
  • AS-IS, TO-BE 시스템을 설계
  • 참고 아키텍쳐 업무를 맡은 사람을 “TA(Technical Architect)”라고 하고, 이 업무는 보통 PM(Product Manager)가 담당함

IT 아키텍쳐

  • 정보 시스템을 효율적으로 구성하기 위한 방법

1. Stand-alone 단계

  • DBMS 서버와 사용자가 직접적으로 연결된 방식(네트워크 접속 ❌)
  • 20C 현대적 컴퓨터의 최초 등장 시점에서 등장

Stand-alone 단계

2. 클라이언트/서버 단계

  • 네트워크 연결을 통해서 복수 사용자가 동시 사용 가능
  • DB 서버 1대에 복수 사용자가 접속
  • DBMS 서버가 서버가 됨(DBMS 관점)

클라이언트/서버 단계

3. WEB3 계층(DBMS 관점)

https://github.com/hy6219/TIL-Today-I-Learned-/blob/main/JSP%20Servlet/WAS%EA%B0%80%20%EC%9B%B9%20%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%9D%84%20%EB%8F%99%EC%9E%91%EC%8B%9C%ED%82%A4%EB%8A%94%20%EC%9B%90%EB%A6%AC.png?raw=true

  • 애플리케이션을 WAS 서버에서 관리
  • 시스템을 웹서버, WAS 서버, DBMS 서버의 3계층(3TO구조, WEB3계층)으로 인식
  • 클라우드(GCP, AWS, Naver Cloud 등) 의 등장으로 경향이 변화

WEB3 계층

가용성과 확장성

가용성 Availability

  • 정보 시스템이 정상적으로 사용 가능한 정도
  • (예시) 1초에 1000명의 요청에 대해서 처리
  • 고가용성 HA; High Availabilty : 가용성이 높은 것

$Availability=(Uptime/(Uptime+Downtime))*100$ (%)

-Uptime: 정상적인 사용시간

-Downtime: 비정상적인 사용시간

-Uptime+Downtime: 전체 사용시간

확장성 Scalability

  • 대규모적인 재설계 및 재설치 없이 확장이 얼마나 쉽고 가능한 지에 대한 용이성을 의미
  • DBMS 설계자: DBMS의 확산이나 거대한 성장을 도모해야

↔️절대적인 사용자 수가 증가하더라도 이를 수용할 수 있도록 확장성 있게 설계해야 함

  • 클라우드 시스템은 scale-out 등을 이용해서 탁월한 확장성을 지원하여, 각광을 받음
  • scale out : 동일한 업무를 접속된 서버의 수를 늘려서 처리하여 효율성을 향상시킴(“수평적 스케일”)
  • scale up : 서버 자체의 성능을 증가시킴(“수직 스케일”)

가용성을 높이는 전략

가용성을 높이는 전략

  • 고품질-소수 전략의 경우, 은행 등 보안이 필요한 경우에 주로 사용됨
  • 저품질-다수 전략의 경우, 게시판 등 보안이 보다 덜 필요한 경우에 주로 사용됨

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

https://blog.kakaocdn.net/dn/dA5lm3/btqPlcqWHgR/leOlCmtsupaOPWhaufsCz0/img.png

이미지 참고: 패스트캠퍼스 SQLD 강의 && kerpect님 블로그

  1. 비정상적인 시간 Downtime을 줄일 수 있음
  2. 동일 기능을 하는 DBMS 서버를 여러 대 설치 및 운영하여 병렬화
  3. 여러 대의 DBMS 서버가 한 대의 시스템을 위해서 존재
  4. 다중화/여유도 확보

SPOF; Single Point of Failure

  • 시스템 구성 요소 중 동작하지 않으면 전체 시스템이 중단되는 요소
  • 높은 가용성을 요하는 네트쿼트, SW 애플리케이션, 상용 시스템에 SPOF가 있는 것은 바람직 하지 ❌
  • 높은 신뢰성을 요구하는 시스템은 단일 컴포넌트(독립적인 단위 모듈)에 의존하지 ❌

신뢰성과 가용성

신뢰성vs가용성

DB 서버의 다중화

  • 다른 컴포넌트에 비해서 다중화 어려움
  • 영속(Persistence) 계층의 특성

-데이터 장기간 보존 필요

-일시적 처리를 담당하는 애플리케이션 서버 드오가 차이

-데이터 다중화 시 갱신을 통한 정합성 중요(데이터가 모순이 없이 일치해야 함)

제목 없음

Updated: