[AWS] RDS: Relational DB Service


목적: 관계형 데이터베이스


DB 제공 서비스



관계형 데이터베이스 기본 개념


  • 데이터베이스
  • 테이블
  • 데이터
  • 필드



RDS 종류


  • Microsoft SQL
  • Oracle
  • MySQL
  • Postgre
  • Aurora (AWS에서 제공하는 RDS)
  • MariaDB



Data Warehousing


  • Business Intelligence
  • 리포트 작성, 데이터 분석 시 사용 (Production Database -> Data Warehousing)
  • 매우 방대한 분량의 데이터 로드 시 사용



OLTP vs OLAP


  • OLTP(Online Transaction Processing)
    • 사용자의 PC에서 발생되는 transaction을 DB가 처리하고, 그 결과를 요청한 사용자 PC에 결과를 되돌려주는 과정
    • 즉 데이터 자체의 처리에 중점을 둔 용어
    • INSERT와 같이 종종 사용되어지는, 혹은 규모가 작은 데이터를 불러올 때 사용되는 SQL 쿼리가 필요할 때 유용 = 1개의 요청작업을 처리하는 과정
  • OLAP(Online Analytical Processing)
    • 이미 저장된 데이터를 기반하여 분석하는데 중점이 된 용어
    • Data Warehouse 같이 매우 큰 데이터를 불러올 때 사용
    • 주로 덩치가 큰 SELECT 쿼리가 사용됨



RDS Backup


  • 원본 RDS Instance를 가지고 백업용 RDS Instance를 생성 시 새로운 Endpoint가 생성 = 원본 RDS와 백업용 RDS Instance는 전혀 다른 것
    • 원본 RDS Instance: original.ap-northeast-1.rds.amazonaws.com
    • 백업용 RDS Instance: backup.ap-northeast-1.rds.amazonaws.com
  1. Automated Backups(AB): 자동 백업
    • Retention Period(1-35일) 안의 어떤 시간으로 돌아가게 할 수 있음
    • AB는 그 날 생성된 스냅샷과 Transaction logs(TL)을 참고함
    • Default로 AB기능이 설정되어 있음
    • 백업 정보는 S3에 저장: RDS 용량에 해당하는 만큼 무료 저장
    • AB동안 약간의 I/O suspension이 존재할 수 있음: Latency
    • Instance 삭제 시 스냅샷도 같이 삭제됨
  2. DB Snapshots: 데이터베이스 스냅샷
    • 카메라로 그 순간을 찍을 때 사용하는 용어 스냅샷
    • 용어 그대로, 주로 사용자에 의해 수동으로 실행됨
    • 원본 RDS Instance를 삭제해도 스냅샷은 존재함



Multi AZ: Multi Available Zone


  • 원래 존재하는 RDS DB에 변화(ex. write)가 생길 때 다른 AZ에서 똑같은 복제본이 만들어짐 (= Synchoronize)
  • AWS에 의해서 자동으로 관리가 이루어짐 (No admin intervention)
  • 원본 RDS DB에 문제가 생길 시 자동으로 다른 AZ의 복제본이 사용됨
  • 오직 Disaster Recovery 용으로 사용됨
    • 성능 개선을 위해 사용되지 않음
    • 성능 개선을 위해서라면 Read Replica가 사용되어야 함



Read Replica


  • Production DB의 읽기 전용 복제본이 생성됨 (write 불가능)
  • 주로 Read-Heavy DB 작업 시 효율성의 극대화를 위해 사용됨 (Scaling)
  • Disaster Recovery 용도가 아님
  • 최대 5개 Read Replica DB 허용
  • Read Replica의 Read Replica 생성 가능 (단 Latency 발생)
  • 각각의 Read Replica는 자기만의 고유 Endpoint 존재



ElastiCache


  • 클라우드 내에서 In-memory 캐시를 만들어줌
  • DB에서 데이터를 읽어오는 것이 아닌, 캐시에서 빠른 속도로 데이터를 읽어옴
  • Read-Heavy 어플리케이션에서 상당한 Latency 감소 효과를 누림
  1. Memcached

    • Object 캐시 시스템
    • ElasticCache는 Memcached의 프로토콜을 default로 따름
    • EC2 Auto Scaling처럼 크기가 커졌다 작아졌다 가능
    • 오픈소스: https://github.com/memcached/memcached
    • 사용처
      • 가장 단순한 캐싱 모델
      • Object caching이 주된 목적일 시
      • 캐시 크기를 마음대로 scaling하기를 원할 시
  2. Redis

    • Key-Value, Set, List와 같은 형태의 데이터를 In-Memory에 저장 가능
    • 오픈소스: https://github.com/redis/redis
    • Multi-AZ 지원
    • 사용처
      • List, Set과 같은 데이터셋 사용
      • 리더보드처럼 데이터셋의 랭킹 정렬이 필요
      • Multi AZ 기능이 사용되어져야 할 때



AWS 서비스 설명 더보기


[AWS] Intro


Author: Ruby Kim
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Ruby Kim !
Comments
  TOC