[DB] AWS 데이터베이스 종류

멋진감자·2024년 12월 24일
1

데이터베이스

목록 보기
1/1
post-thumbnail

AWS 카테고리별 서비스

  • 관계형: RDS, Amazon Aurora, Amazon Redshift
  • 키-값: DynamoDB
  • 문서: DocumentDB
  • 인메모리: ElasticCache, MemoryDB For Redis
  • 그래프: Amazon Neptune
  • 타임시리즈: Timestream
  • 원장(Ledger): Amazon QLDB(Quantum Ledger Database)
  • 검색: Elasticsearch Service

1. 관계형 데이터베이스

데이터의 관계에 집중한 데이터베이스

  • 사전에 정의된 데이터 간 관계가 있을 때 사용
  • 미리 지정된 형식과 타입의 데이터만 (스키마에)저장 가능

테이블 형식으로 데이터 관리

  • 행과 열을 기반으로 한 여러 테이블을 통해 데이터 정의
  • 고유의 키로 각 데이터를 식별

트랜잭션 지원

  • 원하는 동작이 정확히 수행 or 완전히 실패 둘 중 하나로 유지
  • 일부 반영 혹은 실패했지만 데이터 변경이 되는 등 애매한 상태는 없음
  • 일반적인 어플리케이션, 온라인 게임 등에 사용

OLTP(Online Transactional Processing)

주로 데이터의 트랜잭션을 다루는 데이터베이스

ex) id가 1인 사용자의 이름, 나이 조회 or 값 수정

  • 주로 관계형 데이터베이스에서 처리
  • 행 단위에 관심
  • Amazon RDS

OLAP(Online Analytical Processing)

데이터를 종합적으로 보고 통계를 산출하는데 특화된 데이터베이스

ex) 1월 한 달간 오리에서 가장 많이 팔린 붕어빵 종류 조회

  • 주로 데이터 웨어하우스에서 처리
  • 열 단위에 관심
  • Amazon Redshift

관계형 데이터베이스 정리

  • 기존 DB를 마이그레이션하는 경우: Amazon RDS(MySQL, PostreSQL, Oracle, MS SQL 등)
  • 처음부터 관계형 DB를 사용하며 클라우드를 위한 설계를 반영하여 AWS스러운 DB 쓰겠다: Amazon Aurora
  • 데이터 웨어하우스(OLAP): Amazon Redshift

2. 키-값 데이터베이스

데이터를 단순히 키-값으로 정의

  • 키를 고유한 식별자로 사용하는 키-값 쌍의 집합으로 데이터 저장
  • 파티셔닝 가능, 다른 유형의 데이터베이스로는 안되는 범위까지 수평 확장 가능
  • 키만 사용해서 쿼리 가능
  • 세션 저장(유저 로그인 인증 등에 사용), 많은 양의 데이터(장바구니 등)를 관리할 때

DynamoDB

  • NoSQL방식으로 미리 지정된 형식이 필요없어 데이터 형식이 자유로움
  • 파티션키, 정렬키, 기타 속성명 존재
  • 기본값(NULL 등) 없이 빈 값도 가능

3. 문서 데이터베이스

  • 데이터를 JSON 등의 문서로 데이터를 저장 및 쿼리
  • 각 어플리케이션에서 사용하는 모델 형식을 그대로 사용 가능 ex) JS의 JSON 등
  • Next된 구조로 문서 저장 가능
  • 비디오나 블로그 등의 컨텐츠 관리, 제품 카탈로그 저장 등
  • Amazon DocumentDB(MongoDB 호환)

4. 그래프 데이터베이스

데이터보다 데이터 간 관계가 더 중심인 데이터베이스

  • 각 데이터 주체 간 관계와 연결을 분석하는 데 최적화되어 있다.
  • SNS, 이상 탐지, 추천 엔진 등에 사용

5. 인-메모리 데이터베이스

메모리를 사용한 데이터베이스

  • SSD나 하드디스크가 아닌 메모리에 저장하므로 읽기/쓰기가 매우 빠름
  • SSD나 하드디스크에 비해서는 내구성이 떨어짐
  • 실시간 경매, 게임 랭킹 보드, 캐싱(자주 요청되는 메인 DB의 쿼리를 임시로 저장했다가 빠르게 제공) 등에 사용
  • Amazon MemoryDB: 내구성까지 확보한 인-메모리 데이터베이스 서비스

Amazon MemoryDB vs ElastiCache

  • ElastiCache
    - 메인DB의 워크로드를 분산하고 캐싱 기능으로 활용
    - 쿼리 캐싱, 세션 저장, 임시 데이터 저장 등에 사용
  • Amazon MemoryDB
    - 메모리DB로 메인DB 자체로 사용을 상정
    - 타임시리즈 DB, IoT 기기의 메인DB 등으로 사용

6. 검색 데이터베이스

데이터 검색에 특화된 데이터베이스

  • 인덱싱과 카테고리 기능에 특화
  • 목표: 원하는 데이터를 빠르게 찾는 것
  • 저장을 위한 데이터베이스 외의 특별한 목적으로 사용됨
  • 로그 검색, 유저 정보 검색 등 컨텐츠 검색이나 로그 분석 등에 사용
  • Amazon Elasticsearch Service

7. 원장(Ledger) 데이터베이스

데이터의 신뢰성 및 투명성이 중요한 데이터베이스

  • 장부
  • 중심 기능: 데이터의 정확한 변경 내역 및 무결성 확보
  • 블록체인 네트워크 및 암호화로 무결성 확보
  • 금융 거래 기록 등에 사용

8. 타임시리즈 데이터베이스

많은 이벤트를 시간단위로 저장하기 위한 데이터베이스

  • 수만~수십만건의 이벤트 데이터를 시간에 따라 정렬하고 특정 시점의 이벤트를 쿼리
  • 많은 IO 발생
  • IoT 기기의 이벤트 관리, 분석 어플리케이션에 사용


뭐가 증말 많네..


Reference

profile
난멋져

0개의 댓글