Amazon RDS
RDS는 Relation Database Service의 약자로, AWS에서 제공, 관리하는 DBaaS(DB as a Service) 중 하나이다.
Relation이라는 단어에서 바로 알 수 있듯 SQL을 쿼리로 사용하는 관계형 데이터베이스(RDB; Relational Database)이며, 현재 RDS에서 선택 가능한 DB 엔진은 다음과 같다.
- Aurora
- PosgreSQL
- MySQL
- MariaDB
- Oracle
- SQL Server
참고로 Aurora는 MySQL, PostgreSQL과 호환되는 관계형 데이터베이스로 Amazon에서 직접 개발하였으며, 빠른 성능과 안정성을 자랑한다. 전적으로 Amazon에 소유권이 있으며, 소스코드는 공개되지 않았다.
RDS는 클라우드 프로바이더가 사용자 대신 관리해주는 Managed Service이므로, EC2에 직접 DB를 호스팅하는 방식(full-ops DB)과 비교하여 다음과 같은 장점이 있다.
- 프로비저닝 자동화, OS 패치
- 지속적 백업 및 특정 Timestamp 복구(PITR;Point In Time Recovery)
- 모니터링용 대시보드
- Read replica를 통한 읽기 성능 향상
- DR(Disaster Recovery)용 Multi AZ
- 유연한 수평/수직 확장(Scaling)
AWS가 대신 관리해주는 대신 DB가 위치한 VM으로 접근하는 것은 허용되지 않으며, 내부적으로 EBS(gp2, io1)를 DB Storage로 사용한다.
RDS Backup
RDS는 기본적으로 Backup 기능이 활성화된 상태로, 아래와 같이 자동화되어 있다.
- 날마다 데이터베이스 Full Bakcup
- 5분마다 트랜잭션 로그 백업
- 가장 오래된 백업부터 5분전까지 상태로 DB 복구 가능(PITR)
- 7일에서 최대35일까지 백업 파일 유지
또한 사용자가 직접 DB 스냅샷을 생성하는 것도 가능하며, 스냅샷을 따로 지우지 않는 이상 계속 보관할 수 있다. 스냅샷은 Region 간 복사나 다른 계정으로 공유 가능하며, S3에 저장할 수도 있다.
RDS Storage Autoscaling
RDS의 또 하나 장점을 들자면 DB 저장공간이 부족해질 경우, 자동으로 사용 가능한 용량을 늘려준다는 점이다. 물론 이는 RDS만의 특징이라기 보다 클라우드의 유연한 확장성이라고 보는게 정확하다. Storage Autoscaling(스토리지 자동조정)은 2019년에 처음 소개되었으며, 모든 RDS DB 엔진에서 지원하는 기능으로 RDS의 가동 중단없이 저장공간을 사용량(Workload)에 맞춰 자동으로 확장한다.
Storage Autoscaling이 동작하는 경우는 다음과 같다.
- 남은 저장공간이 전체 용량의 10% 미만일 때
- low-storage 상태가 5분 넘게 지속될 때
- 가장 최근 Storage 변경 또는 최적화 이후 6시간이 지났을 때
그리고 다음 중 가장 큰 값만큼 용량이 추가된다.
- 5GiB
- 현재 사용중인 공간의 10%
- 지난 7시간 동안의 FreeStorageSpace 지표에 따른 예상치
무한히 확장할 수 있는 위험이 있기 때문에 사용자가 DB Storage의 최대용량을 따로 설정하여 그 이상을 넘지 않게 하는 Maximum Storage Threshold(최대 스토리지 임계값)기능도 같이 제공하고 있다.
'Cloud' 카테고리의 다른 글
Container 101 - (1) Introduction (0) | 2022.01.10 |
---|---|
Amazon RDS - Read Replica와 Multi AZ 비교 (0) | 2021.11.07 |
Container Vs. VM (0) | 2021.06.26 |
Amazon EKS Tutorial - Part.6 (0) | 2021.03.22 |
Amazon EKS Tutorial - Part.5 (0) | 2021.03.20 |