AWS 기초이론 - RDS

1. RDS란?


  • Relational DB Service : 관계형 데이터베이스
  • Microsoft SQL, Oracle, MySQL, Postgre, Aurora, Maria DB 를 사용 가능

Data Warehousing

  • Business Intelligence
  • 리포트 작성, 데이터 분석시 사용
  • 매우 방대한 분량의 데이터 로드시 사용

OLTP VS OLAP

  • OLTP : INSERT와 같이 종종 사용되어지는, 혹은 규모가 작은 데이터를 불러올 때 사용되는 SQL 쿼리가 필요할 때 유용
  • OLAP : 매우 큰 데이터를 불러올 때 사용, 주로 덩치가 큰 SELECT 쿼리에서 사용


2. Database Backups


두 가지 방식이 있다.

Automated Backups (AB)

  1. Retention Period(1~35일) 안의 어떤 시간으로 돌아가게 할 수 있음
  2. AB는 그날 생성된 스냅샷과 Transaction logs(TL)을 참고함
  3. 디폴트로 AB기능이 설정되어 있으며 백업 정보는 S3에 저장
  4. AB동안 약간의 I/O suspension이 존재할 수 있음 -> Latency

DB Snapshots

  1. 주로 사용자에 의해 실행
  2. 원본 RDS Instance를 삭제해도 스냅샷은 존재함

백업시 일어나는 일

그림1

  • 원본 RDS 인스턴스를 가지고 새로운 DB를 복원시 새로운 인스턴스와 Endpoint가 생성
    • 원본 Endpoint는 앞에 original인 반면, 복원된 것은 앞에 restored가 붙는다.


3. Multi AZ, Read Replicas


Multi AZ

그림2

  • 원래 존재하는 RDS DB에 무언가 변화가 생길때(ex 쓰기) 다른 Availability Zone에 똑같은 복제본이 만들어짐 = Synchronize
  • AWS에 의해 자동으로 관리됨
  • 원본 RDB DB에 문제가 생길 시 자동으로 다른 AZ의 복제본을 사용

Read Replica

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

그림3

  1. EC2 인스턴스로부터 쓰기 작업시 Read Replica에 의해 똑같은 RDS 복제본이 생성
  2. 쓰기 작업도 복제본에 쓰기
  3. Read Traffic이 발생하면 Main DB로 연결하는게 아니라 각각의 Read Replica로 연결하여 Main DB의 Work Load를 줄일 수 있음


4. ElastiCache


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

Memcached

  • Object 캐시 시스템으로 알려져 있음
  • ElastiCache는 Memcached의 프로토콜이 디폴트
  • EC2 Auto Scaling처럼 크기가 커졌다 작아졌다 가능
  • 오픈 소스
  • 사용 용도
    • 가장 단순한 캐싱 모델일때
    • Object caching이 주된 목적
    • 캐시 크기를 마음대로 scaling해야 할때

Redis

  • Key-Value, Set, List와 같은 형태의 데이터를 In-Memory에 저장 가능
  • 오픈 소스
  • Multi-AZ 지원(Disaster Recovery 가능!)
  • 사용 용도
    • List, Set과 같은 데이터 셋 사용
    • 리더보드처럼 데이터셋의 랭킹을 정렬하는 용도 필요시
    • Multi AZ 기능 사용시



© 2021. By Backtony