AWS RDS

흑이·2023년 1월 3일
0

Data Warehousing

  • Business Intelligence
  • 리포트 작성, 데이터분석시 사용 (Production Database -> Data Warehousing)
  • 매우 방대한 분량의 데이터 로드시 사용, 빅데이터를 불러올 때 사용하는 시스템


OLTP VS OLAP

OLTP : INSERT와 같이 종종 사용되어지는, 혹은 규모가 작은 데이터를 불러올때 사용되는 SQL쿼리가 필요할때 유용
ex) Order # 210에만 해당되는 customer 이름, 주소, 시간 정보 INSERT

OLAP : 매우 큰 데이터를 불러올때 사용, 주로 덩치가 큰 SELECT 쿼리가 사용됨
ex) 특정 회사 부서의 Net Profit, Products



Database Back-ups

  1. Automated Backups(AB) - 자동 백업
  • Retention Period(1-35일) 안의 어떤 시간으로 돌아가게 할 수 있음
  • AB는 그날 생성된 스냅샷과 Transaction logs(TL)을 참고함
  • 디폴트로 AB기능이 설정되어 있으며 백업 정보는 S3에 저장
  • AB동안 약간의 I/O suspension이 존재할 수 있음 -> Latency , AB가 끝나면 Latency 사라짐
  • RDS 삭제시 S3의 스냅샷이 모두 없어짐
  1. DB Snapshots (데이터베이스 스냅샷)
  • 주로 사용자에 의해 실행됨
  • 원본 RDS Instance를 삭제해도 스냅샷은 존재함(vs AB) - S3에 존재

RDS 데이터 백업시 일어나는 현상은?

  • RDS 백업시 RDS Instance와 그에 해당하는 RDS Endpoint가 생성된다.
  • 2개는 완전히 다른 객체



Multi AZ

  • 원래 존재하는 RDS DB에 무언가 변화가 생길때 다른 Availability Zone에 똑같은 복제본이 만들어짐(Synchronize)
  • AWS에 의해서 자동으로 관리가 이루어짐(No admin intervention)
  • 원본 RDS DB에 문제가 생길 시 자동으로 다른 AZ의 복제본이 사용됨
  • Disaster Recovery Only
  • 성능 개선을 위해서 사용되지는 않음, 따라서 성능 개선을 기대하기 위해선 Read Replica가 사용되어져야 함



Read Replica

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


  • 3개의 인스턴스가 RDS에 연결됨
  • 쓰기 작업 실행시 Read Replica에 의해 똑같은 RDS 복제본 생성(쓰기 작업도 복제본에서 진행)


  • 메인 프로덕션 db로 연결시키는 것이 아니라, 하나의 EC2가 각각의 Read Replica로 연결 시킬 수 있다.
  • 성능 개선 효과
  • Read Replica의 Read Replica 생성(다른 AZ에 만들 수 있고, 같은 AZ에 생성 가능)


ElastiCache

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

2가지의 다른 타입

Memcached

  • Object 캐시 시스템
  • ElastiCache는 Memcached의 프로토콜을 디폴트로 따름
  • EC2 Auto Scaling 처럼 크기가 커졌다 작아졌다 가능함
  • 오픈소스

언제 사용 하는가?
1. 가장 단순한 캐싱 모델이 필요한지
2. Object caching이 주된 목적한지
3. 캐시 크기를 마음대로 scaling 필요한지


Redis

  • KeyValue, Set, List와 같은 형태의 데이터를 In-Memory에 저장 가능함
  • 오픈소스
  • Multi-AZ 지원

언제 사용 하는가?
1. List, Set과 같은 데이터셋을 사용?
2. 리더보드처럼 데이터셋의 랭킹을 정렬하는 용도가 필요?
3. Multi AZ기능이 사용되어져야 하는지?



https://www.inflearn.com/course/aws-%EC%9E%85%EB%AC%B8/dashboard

0개의 댓글