[AWS] 데이터베이스 (RDS, DynamoDB)

Cherry·2024년 5월 21일

데이터베이스란?

데이터베이스는 구조화된 정보 또는 데이터의 조직화된 모음으로 DBMS (Database Management System)에 의해서 제어된다

Relational Database

일반적으로 우리가 배워왔던 Mysql, Oracle, Mssql 같은 고전적인 데이터베이스를 관계형 데이터베이스이다.

  • 구조화된 데이터를 저장
  • 테이블 형태
  • 엄격한 스키마
  • SQL(Structured Query Language)을 사용해서 데이터 조작
  • 트랜잭션(전부 아니면 무): 전체 트랜잭션이 하나의 단위로 기록. 실패 시 전체 롤백
  • 정규화: DB설계 시 중복을 최소화해서 구조화하는 프로세스

장점

  • 데이터의 성능이 일반적으로 좋아 정렬, 탐색, 분류가 빠름
  • 신뢰성이 높아 데이터의 무결성을 보장
  • 정규화에 따른 갱신 비용을 최소화

단점

  • 기존에 작성된 스키마를 수정하기 어려움
  • 데이터베이스의 부하를 분석하기 어려움
  • 빅데이터를 처리하는데 매우 비효율적임.

Non-Relational Database

  • 비관계형 데이터 베이스에서 데이터 저장, 조회, 수정, 삭제
  • 정형화되지 않은 구조 사용, 스키마 X
  • 가용성과 확장성이 높고 고성능에 최적화
  • Instagram, faceBook 등에서 사용
  • 대량의 분산 데이터 저장
  • 다향한 형태의 데이터 빠르게 처리
  • ex) MongoDB, AWS DynamoDB

AWS RDS (Relational Database Service)

AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스이다.

  • On-Premise: 사용자가 직접 서버를 구축해서 DB 관리
  • AWS EC2: AWS에서 제공하는 EC2 인스턴스 위에 사용자가 직접 DB를 설치하고 관리
  • AWS RDS: AWS의 완전관리형 DB 서비스

RDS의 장점

  • 간편한 관리
  • 가용성(Availability) 및 안정성(Durability)
  • 자동 백업 vs. 스냅샷
  • Multi AZs
  • 보안성(Security)
  • 확장성(Scalability)
  • Read Replica
  • 비용 효율성(Cost Effective)

Multi AZ

  • 데이터베이스의 복사본을 다른 가용 영역(Availability Zone)에 자동으로 생성하고 동기화
  • 대기 데이터베이스(Standby) 역할
  • 장애 감지 시 자동으로 대기 인스턴스로 대체

Read Replica

  • 읽기 전용 복제본 -> 읽기(Read) 쿼리의 성능 향상과 분산 처리 비동기적으로 복제 진행
  • Read Replica 인스턴스를 이용한 Scale Out을 통해 읽기 중심의 데이터베이스 워크로드 처리량 향상

AWS DynamoDB

모든 규모에서 10밀리초 미만의 성능을 제공하는 서버리스 NoSQL 완전관리형 데이터베이스

  • 서버리스 NO-SQL
  • 완전관리형 : 장비 운영부터 데이터베이스 솔루션 설치 및 운영까지 AWS에서 모두 담당
  • 높은 가용성과 내구성
  • 대부분 10ms 내에 데이터를 읽고 처리할 만큼 속도가 매우 빠름
  • 모든 데이터가 SSD에 저장되고 AWS 리전의 여러 가용 영역에 걸쳐 자동 복제
  • Auto-Scaling
    : change the read and write capacity of your table based on request volume

구성 요소

  • 테이블 (Tables)

  • 항목 (Items)

    • People 테이블에서 각 항목은 한 사람
    • Cars 테이블의 경우 각 항목은 차량 한 대
  • 속성 (Attributes)

    • 각 항목은 하나 이상의 속성으로 구성
    • People 테이블의 항목 : PersonID, LastName, FirstName

  • People 테이블에서 기본 키(PK)는 한 개의 속성(PersonID)으로 구성

Partition Key

  • RDBMS에서 Primary Key와 같은 역할
  • 테이블에 무조건 하나만 존재해야하는 값
  • DynamoDB는 테이블의 크기가 10G를 초과하면 데이터에 대한 Partition을 나눈다
  • 같은 Partition Key를 가지면 같은 Partition에 저장되는 것

Sort Key

  • Partition Key로 저장할 파티션 공간을 결정하고 나서, 같은 Partition이라면 Sort Key 값을 기준으로 정렬되어 저장됨
  • 일치, 부등호, 포함 등의 범위를 지정할 수 있는 검색을 지원한다
    • Partion Key는 일치검색(Equal)만 지원

0개의 댓글