Study/AWS

[AWS] 데이터베이스 종류 및 용어 정리

Dream Amal 2024. 4. 1.

1. 데이터베이스란?

01. 정의

  • 사전적 정의
    • 어떤 특정한 조직에서 여러 명의 사용자 또는 응용 시스템들이 공유하고 동시에 접근하여 사용할 수 있도록 구조적으로 통합하여 저장한 운영 데이터의 집합
  • 의미
    • 공유 데이터 (shared data)
      • 어느 하나의 프로그램에 종속된 것이 아니라, 다수의 사용자나 프로그램이 공동으로 소유하고 유지하는 개념
    • 통합된 데이터 (integrated data)
      • 분산된 데이터들을 한 곳으로 모아 중복을 최소화하기 위한 개념
      • 일관성 유지와 관리 비용 감소의 장점이 존재
    • 저장된 데이터 (stored data)
      • 컴퓨터가 접근 가능한 매체에 저장된 디지털 데이터
    • 운영 데이터 (operational data)
      • 조직 고유 업무를 수행하기 위하여 지속적으로 유지해야 하는 데이터를 의미
      • 시스템을 운영하기 위해 필요한 데이터

02. 스토리지 vs. 데이터베이스

  • Storage
    • 컴퓨터에 data를 저장하는 저장소의 역할을 수행하는 부품
    • 비휘발성 기억장치
    • 연결 방식에 따라 DAS, NAS, SAN 등으로 구분됨
    • 저장 데이터 종류
      • 텍스트, 이미지, 영상 등의 다양한 종류의 데이터
  • Database
    • 체계적인 데이터의 모음
    • 데이터 저장 및 조작을 지원함
      → storage에 저장된 데이터를 더욱 사용하기 쉽게 만들어 주는 것으로 이해할 수 있음
    • 저장 데이터 종류
      • Id, record, 거래정보와 같은 구조적 / 반구조적 데이터
  • 차이점 요약
    • 스토리지 → 파일을 저장
    • DB → column, row로 구성되는 2차원 데이터를 저장
      ⇒ storage는 파일 형태가 되면 무엇이든 저장할 수 있으나,
      DB에 저장하기 위해서는 앞단 또는 뒷단에서의 가공이 필요함.

2. AWS 데이터베이스 종류

01. RDS

  • Amazon Relational Database Service
  • RDS는 클라우드 환경에서 마치 온 프레미스(on-premises) 환경처럼 제약없이 원하는 데이터베이스 엔진을 쓰고 싶을 때 사용할 수 있는 AWS의 대표적인 관계형 데이터베이스 서비스
  • 장점
    • 다양한 RDBSM 지원 (MySQL, PostgreSQL, Oracle, MariaDB …)
      → 마이그레이션 리스크가 적음
    • AWS가 알아서 서버 자원을 provision해줌
      • OS patch, data backup, monitoring …
        → 유지 보수 비용 절감 가능
    • 수평 확장 가능
    • read replica 구성, HA를 위한 multi-AZ master-slave 구성에 용이
  • 단점
    • 해당 DB 엔진에서 허용하는 포트 이외의 다른 포트로의 포트포워딩 불가
    • DB가 설치된 EC2 인스턴스에 SSH로 접속 불가

02. DynamoDB

  • 완전 관리형(fully managed) 서버리스(serverless) NoSQL 데이터베이스 서비스
  • 장점
    • 기존 관계형 데이터베이스에 저장하기 적합하지 않는 비정형화된 데이터를 키/값의 형태로 저장할 수 있음
    • 저장된 데이터의 용량에 맞춰 알아서 무한대로 수평확장함
    • 인 메모리 캐시를 활용하면 성능을 최대치로 끌어올릴 수 있음 (DAX)

03. Aurora

  • 클라우드에 최적화되어 있는 RDS 엔진
  • 장점
    • 기존 RDS 엔진보다 3~5배에 달하는 성능 우수성을 가짐
    • 확장성과 가용성이 우수함
  • 단점
    • 기존 RDS 엔진보다 20%정도 더 비쌈
    • PostgreSQL, MySQL과만 호환됨
      → AWS Database Migration Service를 사용하면 어느 정도 리스크를 최소화할 수 있음

04. ETC.

  • Elastic Cache
  • Database Migration Service
  • 모든 Serivce 한눈에 보기

 

3. Q&A

01. 용어 정리

  • 데이터
    • 현실 세계에서 사건이나 사물의 특징을 관할하거나 측정하여 기술하는 가공되지 않은 사실이나 값
  • 정보
    • 의미있고 쓸모 있는 내용으로 가공하여 체계적으로 조직한 데이터
  • DBMS
    • 데이터베이스 관리 시스템(Database Management System)의 약자
    • 데이터베이스에 접근하여 데이터를 조작할 수 있도록 도와줌
         DBMS의 도움으로 데이터를 다루고 변화 시킬 수 있는 것!
      → 사용자들은 DB에 직접 접근하여 데이터를 다루는 것이 아니라,
    • 컴퓨터에 저장된 대량의 데이터를 체계적으로 관리하고 사용자가 원하는 정보를 효과적으로 검색하도록 하는 기능을 제공
    • 종류
  • RDBMS (관계형 DBMS)
    • 테이블을 기반으로 하는 관계 데이터 모델을 사용
        모든 데이터가 테이블에 저장됨
      → RDBMS는 하나 이상의 테이블로 구성되며,
  • SQL (Structured Query Language)
  • 스키마 (Schema)
    • 데이터베이스에서 가져오는 데이터 구조
    • (데이터 구조와 그 제약조건에 대한 명세를 기술한 것)

 

02. DBMS를 사용하는 이유

  • DBMS는 파일시스템의 문제점을 해결하기 위해 만들어짐
  • → DBMS의 특징이 곧 파일 시스템이 단점이 됨
  1. 데이터의 독립성
    • 물리적 독립성
      • DB 사이즈를 늘리거나, 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없음
      • 파일 시스템은 응용 프로그램의 기능 확장을 위해 파일의 구조를 재조직해야 함
    • 논리적 독립성
      • 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있음
      • 파일 시스템에서는 파일의 구조가 응용 프로그램에 반영되어 있기 때문에 파일의 구조가 바뀌면 모든 응용 프로그램을 수정해야 함
  2. 데이터의 무결성
    • 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터 무결성을 구현함
    • ex 입력 조건에 맞지 않는 입력 값 저장 불가 기능
    • 파일 시스템은 응용 프로그램 별로 제약 조건을 별도로 처리하므로, 무결성을 유지하기 어려움
  3. 데이터의 보안성
    • 허가된 사용자들만 데이터베이스나 내부 자원에 접근할 수 있도록 계정 관리, 또는 접근 권한을 설정함으로써 모든 데이터 보안을 구현할 수 있음
    • 파일 시스템은 파일 단위로 권한을 부여할 수 있어, 사용자별 세밀한 접근 제어가 어려움
  4. 데이터의 일관성
    • 연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성이 배제됨
    • 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수가 배제됨
    • 파일 시스템에서는 중복된 데이터 변경이 어려워 중복 데이터 간의 불일치가 발생할 수 있음
  5. 데이터의 중복 최소화
    • 데이터를 통합하여 관리함으로써 데이터 중복 문제 해결

03. Cloud RDS 구축 시, 이중화가 필요한 이유

  1. 장애(Failover) 또는 재해 시 빠른 서비스 재개를 위해
    • Database의 하드웨어, 미들웨어 등 다양한 지점에서의 오류 발생 시,
      사용자가 이를 인지하지 못하도록 하기 위함
    • 서비스의 일시적인 중단(다운타임)이 발생하더라도, 신속하게 대응하기 위함
  2. 부하 분산을 통한 원할한 서비스 성능 보장을 위해
    • 하나의 기기에서 일정량 이상의 사용자 트랜잭션을 처리하는 경우, 응답시간이 느려질 수 있음
    • 사용 트랜잭션의 패턴과 사용량 등을 분석하여 부하를 분산, 효율적 업무 처리가 가능하도록 하기 위함
    • 로드벨런싱은 구현하고자 하는 지점에 따라 미들웨어, 네트워크, OS 등 다양한 지점에서 구현 가능

04. 각 RDBMS의 특징

  1. MySQL
    • 가장 많이 사용되는 오픈 소스 RDBMS
    • PHP, Java 등의 언어와 함께 사용됨
    • 대규모 웹 애플리케이션에서 사용되는 것이 일반적임
  2. Oracle
    • 대규모 기업에서 많이 사용되는 상용 RDBMS
    • 높은 안정성과 확장성을 제공
    • 대용량 데이터를 다루는 데에 적합
  3. SQL Server
    • Microsoft에서 개발한 RDBMS
    • Windows 환경에서 많이 사용됨
    • 비교적 가격이 높게 측정되어 있음
  4. PostgreSQL
    • 오픈 소스 RDBMS
    • MySQL과 유사한 기능을 제공하지만 더 많은 기능을 갖추고 있음
    • 대용량 데이터 처리에 적합
  5. SQLite
    • 서버 없이 로컬 컴퓨터에서 작동하는 RDBMS
    • 모바일 디바이스에서 주로 사용됨

 

728x90

댓글