connecting the dots
AWS 기초 - RDS 본문
RDS(Relational DB Service)
: 관계형 데이터베이스로 세상에 존재하는 많은 데이터베이스 서비스들을 제공
OLTP(Online Transaction Processing)
: insert와 같이 종종 사용되어지는, 혹은 규모가 작은 데이터를 불러올 때 사용되는 SQL 쿼리가 필요할 때 유용
- 여러 과정의 연산이 하나의 단위 트랜잭션으로 실행되도록 하는 프로세스
OLAP(Online Analytical Processing)
: 매우 큰 데이터를 불러올 때 사용. 주로 덩치가 큰 select 쿼리가 사용됨.
- 대용량 데이터를 고속으로 처리
- 데이터를 다양한 관점에서 추출, 분석할 수 있도록 하는 데이터 분석 기술
- 주로 데이터 큐브 형태로 표현됨
AWS RDS는 두 가지 형태의 백업을 지원한다.
우선 백업이란 데이터를 다양한 장애 상황에서 보호하기 위해 안전한 곳에 보관해두는 방법을 말한다.
RDS에서 제공하는 두가지 백업은
Automated Backups(자동 백업)과 스냅샷이다.
Automated Backups(AB, 자동 백업)
- Retention Period (1-35일) 안의 어떤 시간으로 돌아가게 할 수 있음
- 그날 생성된 스냅샷과 Transaction Logs(TL)을 참고함
- 디폴트로 AB 기능이 설정되어 있으며 백업 정보는 S3에 저장
- AB 동안 약간의 I/O suspension이 존재할 수 있음(체감상 크지는 않음)
DB Snapshot(데이터베이스 스냅샷)
- 데이터베이스를 카메라로 찍듯이
- 주로 사용자에 의해 실행됨(수동)
- 원본 RDS Instance를 삭제해도 스냅샷은 존재함. 따라서 스냅샷만으로 RDS 인스턴스를 복원시킬 수 있음. (AB 백업은 Instance 삭제 시 스냅샷도 삭제됨)
백업의 핵심은 백업 자체가 아니라 복원이다.
복원 방법을 정확하게 숙지하고, 복원을 위한 시나리오를 미리 준비해두어야 한다.
Multi AZ(Multi Availablity Zone)
: DB 인스턴스를 이중화하여 가용성을 높이는 서비스, DR(Disaster Recovery) 용도로 사용함
Multi AZ DB 인스턴스를 프로비저닝하면 RDS는 기본 DB 인스턴스를 자동 생성하고 다른 AZ에 있는 예비 인스턴스에 데이터를 복제함으로써 인프라 장애 상황에 대비할 수 있다.
원래 존재하는 RDS에 변화(예.write)가 생길 때 다른 Availability Zone에 똑같은 복제본이 만들어진다 = Synchronize
이는 AWS에 의해 자동으로 관리가 이루어진다(No admin intervention)
예를 들어 3개의 EC2 인스턴스가 하나의 RDS DB에 연결되어 있다면, 쓰기 기능이 수행된 후에는 또다른 복제본인 새로운 AZ에 쓰여지게 됨. 재해가 생길 시 복제된 DB에서 Fail-over하여 재해복구 시간 단축시킬 수 있다.
Read Replica
: DB 인스턴스의 읽기전용 복제본. DB 인스턴스의 용량을 한도 이상으로 확장하여 읽기 중심의 데이터베이스 워크로드를 처리할 수 있음
RDS에서 기존 DB 인스턴스의 스냅샷을 사용해 복제 DB 인스턴스를 생성한 후, 기존 DB가 변경될 때마다 Read Replica를 업데이트 한다.
Read Replica는 애플리케이션에 연동되어 기존 DB의 읽기 부하를 분산시켜 성능개선 효과를 볼 수 있다.
- 주로 읽기 전용
- Read-Heavy DB 작업 시 효율성의 극대화를 위해 사용됨(Scaling)
- Multi AZ와는 달리 Disaster Recovery 용도가 아님
- 하나의 RDS DB 당 5개까지 생성 가능
ElasticCache
: 우리는 Disk로부터 데이터를 불러오기도, Cache로부터 데이터를 불러오기도 한다.
이때 사용하는 Cache를 말한다. (데이터의 양이 많을수록 Cache가 Disk보다 훨씬 빠르다)
클라우드 내에서 In-memory 캐시를 만들어 RDS에서 느리게 데이터를 읽어오는 게 아니라 캐시에서 빠른 속도로 읽어옴
Read-Heavy 어플리케이션에서 상당한 Latency 감소 효과를 누릴 수 있다.
ElasticCache는 두 가지의 Type 존재한다.
- Memcached
Object 캐시 시스템으로 잘 알려져 있음 ElasticCache에서 디폴트로 따름 EC2 auto scaling처럼 크기가 커졌다 작아졌다 가능 오픈소스 |
- Redis
정교한 데이터타입을 In-Memort에 저장 가능(key-value, set, list) 오픈소스 Multi-AZ 지원 리더보드처럼 데이터셋의 랭킹을 정렬하는 용도가 필요한 경우 |
'system > cloud' 카테고리의 다른 글
AWS 기초 - IAM, EC2 (0) | 2022.01.09 |
---|