데이터베이스 - RDS / DynamoDB

Gyuri hwang·2024년 5월 27일
0

데이터베이스

데이터베이스는 구조화된 정보 또는 데이터의 조직화된 모음으로, DBMS(Database Management System)라 하는 소프트웨어를 사용하여 저장, 검색 및 제어.
데이터베이스에는 단어, 숫자, 이미지, 비디오 및 파일을 포함한 모든 유형의 데이터가 포함될 수 있음

Relational Database (관계형 데이터베이스)

  • 구조화된 데이터를 저장
  • 데이터를 행과 열이 있는 테이블 형태로 저장 (열에는 데이터 속성이 포함되고 행에는 데이터 값)
  • 엄격한 스키마
  • SQL을 사용하여 데이터 조작
  • MySQL, PostgreSQL 등이 있음

*SQL(Structured Query Language, 구조적 쿼리 언어)
: 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어

Non-Relational Database (비관계형 데이터베이스)

  • 비정형 데이터를 저장
  • 스키마가 없음
  • 대량의 분산 데이터를 저장 (큰 데이터 볼륨, 짧은 지연 시간과 유연한 데이터 모델이 필요한 애플리케이션에 특히 최적화됨)
  • mongoDB, redis 등이 있음

RDS(Relational Database Service)

DB 관리하는 방법으로 여러 개가 있는데,

On-Premise

: 사용자가 직접 서버를 구축해서 DB 관리
(유연성 높지만 사용자가 모든 것을 다 관리해야 하기에 어렵고 비용이 많이 든다는 단점)

AWS EC2

: AWS에서 제공하는 EC2 인스턴스 위에 사용자가 직접 DB를 설치하고 관리
(서버 유지, 관리는 AWS가 / 사용자는 DB 관리)

AWS RDS

: AWS의 완전관리형 DB 서비스
(대부분의 데이터베이스 관리 작업을 알아서 해 줌)
-> AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치하고, 운영 및 확장할 수 있는 웹 서비스

RDS의 장점

  1. 간편한 관리
    : 인프라를 프로비저닝하거나 소프트웨어를 유지 관리할 필요 없이 비효율적이고 시간 소모적인 데이터베이스 관리 테스크를 제거할 수 있음
  2. 가용성 및 안정성
  • Multi AZs (다중 AZ)
  1. 확장성
  • Read Replica
  1. 비용 효율성

Multi AZ
: Amazon RDS 다중 AZ 배포에서 Amazon RDS는 자동으로 프라이머리 데이터베이스 DB 인스턴스를 생성하고 동시에 다른 AZ의 인스턴스에 데이터를 복제

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

Read Replica
: 읽기 전용 복제본 -> 읽기(Read) 쿼리의 성능 향상과 분산 처리
(데이터베이스의 읽기 기능을 향상시키기 위해 사용)

  • 비동기적으로 복제 진행
  • Read Replica 인스턴스를 이용한 Scale out을 통해 읽기 중심의 데이터베이스 워크로드 처리량 향상

DynamoDB

SQL

: 구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어

  • 관계형 데이터베이스에서 데이터 저장, 조회, 수정, 삭제
  • DB에 정해진 구조(Schema)에 따라 테이블(행과 열이 있는 표 형태)에 저장
  • Oracle, MySQL, PostgreSQL

NO-SQL

: 특정 데이터 모델을 위해 특별히 구축되었으며 현대적 애플리케이션에 맞게 쉽게 확장할 수 있는 유연한 스키마에 데이터를 저장

  • 비관계형 데이터베이스에서 데이터 저장, 조회, 수정, 삭제
  • 정형화되지 않은 구조 사용
  • 가용성과 확장성이 높고, 고성능에 최적화
  • instagram, facebook 등에서 아용
  • MongoDB, AWS DynamoDB

AWS DynamoDb

: 서버리스 NoSQL 데이터베이스 서비스 / 사용한 만큼만 비용을 지불하면 DynamoDB가 0으로 규모 조정되고 콜드 스타트, 버전 업그레이드, 유지 관리 기간, 패치 적용, 가동 중단이 동반되는 유지 관리가 없음

  • 완전관리형: 장비 운영부터 데이터베이스 솔루션 설치 및 운영까지 AWS에서 모두 담당
  • 높은 가용성과 내구성
    - 대부분 10ms 내에 데이터를 읽고 처리할 만큼 속도가 매우 빠름
    • 모든 데이터가 SSD에 저장되고, AWS 리전의 여러 가용 영역에 걸쳐 자동 복제됨(내구성이 좋음)
  • Auto-Scaling

AWS DynamoDB 핵심 구성 요소

  1. 테이블(Tables)
  2. 항목(Items)
  3. 속성(Attributes)
    • 각 항목은 하나 이상의 속성으로 구성

Partition Key

  • 테이블에서 무조건 하나만 존재해야 하는 값
  • 파티션을 결정
    - Dynamodb는 테이블의 크기가 10G를 초과하면 데이터에 대한 Partition을 나눔
    • 같은 Partition Key를 가지면 같은 Partition에 저장되는 것
    Sort Key
  • Partition Key로 저장할 파티션 공간을 결정하고 나서, 같은 Partition이라면 Sort Key 값을 기준으로 정렬되어 저장됨
  • 일치, 부등호, 포함 등의 범위를 지정할 수 있는 검색을 지원

0개의 댓글