카테고리 없음

5. AWS 데이터베이스(RDBMS, NoSQL, ElastiCache[Redis])

초코chip 2024. 9. 26. 07:53

RDS의 DB엔진 종류

 

RDBMS vs NoSQL

RDBMS 장점

  • 조인: 테이블을 조인하여 데이터 간의 관계를 더 잘 이해 가능
  • 중복 감소: 동일한 데이터를 여러 위치에 저장하는 대신 한 테이블에 데이터를 저장하고 다른 테이블에서 참조 가능
    • 즉, 조인을 통한 중복 감소
  • 정확성: 관계형 데이터베이스는 데이터가 높은 무결성으로 유지되고 원자성, 일관성, 격리, 내구성ACID 원칙을 준수하도록 보장
  • 친숙도: 관계형 데이터베이스는 1970년대 이래로 널리 사용되어 데이터가 많음

 

NoSQL의 장점

  • 비교적 자유로운 스키마를 가진다
    • 모든 속성을 다 가지거나, 동일할 필요 없음
  • Key - Value (키 - 값) 데이터 형태
  • PUT/ GET형태로 액새스한다
  • 1:N, M:N의 관계를 나타낼수 있다
  • "관계"를 표현하지는 않지만 빠르다

 

 

관리형 vs 비관리형 DB

  • 관리형: RDS
  • 비관리형: EC2 인스턴스에서 DB를 호스트하는 것

 

 

 

RDMS에서 제공하는 서비스

'

DB 이중화(Multi - AZ) - AWS DB 고가용성

 

 

  • Master와 Standby: 이 구조는 두 개의 가용 영역을 사용하여 DB 인스턴스를 배치
    • Master: 주 사용 DB
    • Standy: 대기 상태로 존재 = Master에서 문제가 발생되기전에 사용하지 않음
      • Master에서 문제가 발생하면 Standy가 Master로 승격
  • 동기식 복제(Synchronous Replication):  데이터는 주 데이터베이스에서 보조 데이터베이스로 실시간으로 동일하게 복제

 

  •  

 

데이터 조회 확장성(Read Replica)

읽기 작업만 할 수 있는 리드 레플리카 여러개를 운영하여, DB 부하를 줄여줌

 

  1. 소스 DB: 소스 DB에서 모든 쓰기 작업을 처리
  2. 리드 레플리카: 읽기 작업만 가능한 DB 복제본
    • 사용자나 애플리케이션이 조회 작업을 할 때, 해당 레플리카를 사용
  3. 비동기 복제:
    • 소스 DB에서 일어난 모든 변동 사항(쓰기 작업)을 리드 레플리카로 복제
    • 해당 과정은 데이터가 변경될 때마다 자동으로 수행되며, 지연 시간이 발생할 수 있음

 

RDS의 백업 관리

RDS를 S3에 백업을 하는데, 같은 리

  • Master DB는 트랜잭션 로그를 S3에 실시간으로 백업
  • Standby DB는 EBS에 저장된 전체 DB 데이터를 스냅샷 형태로 S3에 백업

 

 

자동 백업과 수동 스냅샷

  • 자동 백업: 전체 DB 인스턴스 및 트랜잭션 로그를 저장하는 것
    • 0~35일 동안 유지할 수 있음.
    • 특정 시점으로 복구하는 데 유용
  • 수동 스냅샷: 35일 이상 자동 백업을 유지할 때 사용하는 것 

 

AWS ElastiCache

  • 정의: 인메모리 캐시(In-Memory Cache)는 데이터를 빠르게 접근하기 위해 메모리(RAM)에 저장하는 기술
  • 목적: 자주 요청되는 데이터를 메모리에 저장하여 빠르게 읽을 수 있도록 하기 위해
  • 용도:
    • 모든 기기가 연결됨: 스마트폰, 태블릿, 자동차 등 수많은 기기가 데이터를 빠르게 주고받아야 되는 경우
    • 실시간 성능 요구: 온라인 게임, 광고, 전자상거래 같은 서비스는 즉각적인 응답이 필요한 경우
    • 예측 불가능한 트래픽: 사용자 요청이 갑자기 많아질 수 있는데, 이를 빠르게 처리해야하는 경우
    • 데이터베이스 성능 한계: 많은 요청을 처리할 때 데이터베이스가 느려질 수 있으므로 이를 보완하는 방법이 필요한 경우

 

Memcached와 Redis 비교

  • Memcached:
    • 데이터를 저장하는 기능(영구성)이 없음
    • 단순히 문자열 데이터를 메모리에 저장하고 빠르게 가져오는 데 적합
  • Redis: Memcached보다 더 강력한 기능을 제공
    • 데이터를 영구적으로 저장 가능
    • 문자열 외에도 다양한 자료형(리스트, 셋 등)을 지원
    • 복잡한 작업도 처리 가능
 

Aurora

  • MySQL 호환 관계형 DB엔진
  • 장점
    • 상용 DB의 10분의 1가격
    • MySQL보다 최고 5배 뛰어난 성능
  • How?: 어떻게 MySQL보다 뛰어난 성능을 내는가?
    • 3개의 가용영역에 걸쳐 6개의 복제를 저장하여 고가용성 제공
    • S3에 지속적으로 데이터를 백업

 

 

AWS Dynamo DB

 

 

용도에 맞는 AWS DB 서비스