ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS 데이터베이스 종류와 그 사용법
    카테고리 없음 2022. 3. 27. 11:30

    AWS는 많은 종류의 데이터베이스를 지원하고 있습니다. 지원하는 데이터베이스는 알맞는 조건에서 사용할 때 비용 대비 가장 만족할 만한 성능을 가질 수 있습니다. 이번 포스팅 에선 어떤 종류의 DB가 있는지 살펴보고 어떠한 경우 해당 DB를 사용하는게 알맞는지 살펴보려고 합니다.

    관계형 데이터 베이스

    • 데이터의 관계에 집중한 데이터베이스로 미리 지정된 형식과 타입의 데이터만 저장할 수 있습니다.
    • 행과 열을 기반으로 한 여러테이블을 통해 데이터를 정의하며 테이블 형식으로 데이터를 관리합니다.
    • 원하는 동작이 정확히 수행되거나 완전히 실패하는 트랜잭션을 지원합니다.

    OLTP 와 OLAP

    OLTP(Online Transactional Processing)

    • 주로 데이터의 트랜잭션을 다루는 데이터베이스
    • id 123545 번호를 가진 유저의 이름 나이를 조회 혹은 수정함
    • 주로 관계형 데이터베이스에서 처리
    • AWS 서비스: Amazon RDS

    OLAP(Online analytical Processing)

    • 데이터를 종합적으로 보고 통계를 산출하는데 특화된 데이터베이스
    • 1월 한달 동안 서울에서 가장 많이 팔린 인형 종류를 조회
    • 주로 데이터 웨어하우스에서 처리
    • AWS 서비스 : Amazon Redshift

    용도에 따라 사용할 수 있는 AWS 관계형 데이터베이스 서비스

    • 기존에 사용하는 DB를 마이그레이션
      • Amazon RDS (MySQL, PostgreSQL, Oracle, MS SQL)
    • 관계형 DB를 처음부터 사용 및 클라우드를 위한 설계 반영
      • Amazon Aurora
    • 데이터 웨어하우스(OLAP)
      • Amazon Redshift

    키-값 데이터베이스

    • 데이터를 단순히 키-값으로 정의하는 데이터베이스입니다.
      • 키를 고유한 식별자로 사용하는 키-값 쌍의 집합으로 데이터를 저장합니다.
      • 키-값 데이터베이스는 파티셔닝이 가능하고 다른 유형의 데이터베이스로는 불가능한 범위까지 수평확장이 가능합니다.
      • 키를 사용해서만 쿼리할 수 있습니다.
    • 사용 사례
      • 세션 저장 : 유저의 로그인 이후 통신 중 인증에 사용되는 세션 저장을 할 수 있습니다.
      • 장바구니 : 매우 많은 양의 데이터 및 상태 변경을 처리할 수 있습니다.
    • AWS 서비스 : Amazon DynamoDB


    문서 데이터베이스

    • 데이터를 JSON 혹은 유사 형식의 문서로 데이터를 저장 및 쿼리하는 데이터베이스입니다.
    • 각 어플리케이션에서 사용하는 모델 형식을 그대로 사용 가능합니다. (Ex. JavaScript => JSON)
    • Nest 된 구조로 문서를 저장 할 수 있습니다.

    • 사용 사례
      • 컨텐츠 관리 : 비디오 및 블로그 포스팅등의 관리 및 추적할 수 있습니다.
      • 카탈로그 : 제품의 카탈로그 저장
    • AWS 서비스: Amazon DocumentDB(MongoDB 호환)

    그래프 데이터베이스

    • 데이터보다 데이터간 관계가 더 중심인 데이터베이스입니다.
      • 각 데이터 주체간 관계와 연결을 분석하는데 최적화되어 있습니다.
    • 사용 사례
      • 소셜 네트워크: 각 사람간의 친구관계, 팔로우 관계등을 정의할때 사용될 수 있습니다.
      • 이상탐지: 구매자가 평소에 구매하지 않는 물품의 구매 등에 대한 감지 혹은 패턴을 파악할 때 사용될 수 있습니다.
      • 추천 엔진: 누가 무엇을 구매했는지 혹은 어떤 그룹의 사람들이 어떤 성향을 가지고 있는지를 파악할 수 있습니다.
    • AWS 서비스: Amazon Neptune

    인메모리 데이터베이스

    • 메모리를 사용한 데이터베이스입니다.
      • SSD 혹은 HDD에 저장하는 것이 아닌 메모리에 저장하기 때문에 읽고 쓰기가 매우 빠릅니다.
      • SSD 혹은 HDD에 비해서는 내구성이 떨어집니다.
    • 사용 사례
      • 실시간 경매: 매우 빠른 I/O및 응답속도가 빠른 수만명이 사용하는 경매 시스템에 사용될 수 있습니다.
      • 게임의 랭킹 보드: 실시간으로 매우 빠르게 변하는 랭킹시스템에 사용될 수 있습니다.
      • 캐싱: 자주 요청받는 메인 데이터베이스(주로 관계형 DB)의 쿼리를 임시로 저장하여 빠른속도로 유저에게 제공할 때 사용될 수있습니다.
    • AWS 서비스:
      • Amazon Elasticache
        • 메인 데이터베이스의 워크로드를 분산하고 캐싱 기능으로 활용할 수 있습니다.
        • 쿼리 캐싱, 세션 저장, 임시 데이터 저장 등등
      • Amazon MemoryDB for Redis : 내구성을 확보한 In-Memory DB 서비스
        • 메모리 데이터베이스로 메인 데이터베이스 자체로 사용을 할 수 있습니다.
        • 타임시리즈 데이터베이스, IOT 기기들의 메인 데이터베이스로 사용할 수 있습니다.

    검색 데이터베이스

    • 데이터의 검색에 특화된 데이터베이스
      • 인덱싱과 카테고리 기능에 특화되어있습니다.
      • 원하는 데이터를 빠르게 찾는것이 목표입니다.
      • 주로 저장을 위한 데이터베이스 이외 특별한 목적 으로 사용됩니다.
    • 사용 사례
      • 컨텐츠 검색: 로그 검색, 유저 정보 검색, 색인등
      • 로그 분석: 방대한 로그에서 원하는 조건에 맞는 로그 검색 혹은 시각화
    • AWS 서비스: Amazon Elasticsearch Service

    원장(Ledger) 데이터베이스

    • 데이터의 신뢰성 및 투명성이 중요한 데이터베이스
      • 장부로 사용될 데이터베이스로 데이터의 정확한 변경 내역 및 무결성 확보 가 중요한 기능입니다.
    • 블록체인 네트워크와 암호화를 통해 무결성을 확보합니다.
    • 사용사례
      • 금융 거래 기록: 변경되면 안되는 매우 중요한 이벤트 기록 및 감사의 용도로 사용됩니다.
    • AWS 서비스: Amazon QLDB(Quantum Ledger Database)

    타임시리즈 데이터베이스

    • 많은 이벤트를 시간단위로 저장하기 위한 데이터베이스
      • 수만~수십만건의 이벤트 데이터를 시간에 따라 정렬하고 특정 시점의 이벤트를 쿼리합니다.
      • 많은 I/O 가 발생합니다.

    • 사용 사례
      • IOT 기기의 이벤트 관리: 많은 숫자의 IOT 기기의 이벤트 기록 및 분석을 할 때 사용될 수 있습니다.
      • 분석 어플리케이션: 게임같은 이벤트가 많이 발생하는 어플리케이션의 분석 데이터의 개싱 및 시각화를 할 떄 사용될 수 있습니다.
    • AWS 서비스: Amazon Timestream

    출처

    댓글