[AWS] RDS
RDS
- Relational Database Service (관계형 데이터베이스 서비스)
- 사용 가능한 DB 종류 Microsoft SQL, Oracle, MySQL, PostgreSQL, MariaDB 등이 있음
OLTP vs OLAP
- OLTP(OnLine Transaction Processing): 데이터의 저장, 삭제, 수정 등 실질적인 데이터를 수정하는 작업을 의미하는 용어
- OLAP(OnLine Analytical Processing): 이미 저장된 데이터를 바탕으로 고객이 원하는 정보를 어떤식으로 표현하고 제공하는지 의미하는 용어
Database Backups
RDS에는 데이터베이스를 백업하는 기능이 있음
- Automated Backups(자동 백업): Retention Period (1-35일) 안의 어떤 시간으로 돌아가게 할 수 있음. 이때 그날 생성된 스냅샷과 Transaction Logs를 참고함. RDS를 생성할 때 디폴트로 Automated Backups 기능이 설정되어 있으며 백업 정보는 S3에 저장됨
- DB Snapshots(데이터베이스 스냅샷): 사용자가 직접 스냅샷을 생성하며 원본 RDS 인스턴스를 삭제해도 스냅샷은 존재함 (Automated Backups 경우 RDS 인스턴스 삭제 시 스냅샷 또한 삭제됨)
RDS 인스턴스 복원 시 새로운 RDS 인스턴스와 RDS 엔드포인트가 생성됨
Multi AZ
- 원래 존재하는 RDS DB에 무언가 변화가 (ex. write) 생길 때 다른 AZ (Availability Zone)에 동기적으로 똑같은 복제본이 만들어짐
- AWS에 의해 자동으로 관리가 이루어짐
- 원본 RDS DB에 문제가 생길 시 자동으로 다른 AZ 복제본이 사용됨
- Disaster Recovery Only: 오직 데이터 복구를 위해서만 사용되고 성능 개선을 위해서 사용되지는 않음 (성능 개선을 기대하기 위해선 Read Replica를 사용해야 함)
Read Replica
- Production DB의 쓰기가 불가능한 읽기 전용 복제본이 생성됨
- Read Heavy DB 작업 시 효율성의 극대화를 위해 사용됨 (Scaling)
- Disaster Recovery 용도가 아님
- 최대 5개 Read Replica DB 허용
- 각각의 Read Replica는 자기만의 고유 Endpoint 존재
ElasticCache
- 클라우드 내에서 In-memory 캐시를 만들어줌
- 데이터베이스에서 데이터를 읽어오는 것이 아니라 캐시에서 빠른 속도로 데이터를 읽어옴
- Read-Heavy 어플리케이션에서 Latency 감소 효과
- Memcached: Object 캐시 시스템으로 ElasticCache에서 주로 사용함. 캐시 크기가 가변적임. 오픈소스
- Redis: Key-Value, Set, List와 같은 형태의 데이터를 In-Memory에 저장 가능함. 오픈소스. Multi AZ 지원
RDS 실습