AWS RDS (AWS 관계형 데이터 베이스)
🥐 Amazon Relational Database Service (RDS)
AWS가 OS나 데이터베이스 엔진의 관리를 수행한다.
데이터베이스 엔진은, DB에 대한 CRUD 처리를 관리하는 소프트웨어이다.
RDS가 지원하는 엔진
- MySQL
- SQL Server
- MariaDB
- PostgreSQL
- Oracle
- Amazon Aurora
이 중 Amazon Aurora는 AWS가 클라우드 용으로 구축한 데이터베이스다.
🥨데이터베이스 성능을 결정하는 인스턴스와 스토리지 유형
RDS도 EC2와 마찬가지로 선택한 인스턴스에 따라 성능이 달라진다.
RDS 인스턴스 유형
인스턴스의 성능 (CPU,메모리)은 인스턴스 크기를 선택해 결정
스토리지 유형
RDS에서도 데이터 저장을 위한 스토리지 설정 가능
볼륨 유형 | 개요 |
범용 SSD | 고성능으로 용량에 따라 읽기/쓰기 성능 결정 |
프로비저닝 IOPS SSD | 고성능이며 지정한 읽기/쓰기 성능 확보 |
마그네틱 HDD | 저렴한 비용 |
🥨가용성 향상을 위한 "예비 복제본" / 읽기 성능 향상을 위한 "읽기 전용 복제본"
RDS는 데이터를 처리하는 프라이머리 인스턴스 외에 예비 복제본(Standby replica)을 다중 AZ에 배포해 가용성을 높일 수 있다.
고가용성은 시스템이 중단되지 않고 작동할 수 있는 능력이며,
RDS에서는 이를 예비 복제본으로 구현하고, 구성을 다중 AZ 배포라고한다.
프라이머리 인스턴스나 AZ에 장애가 발생하면,
예비 복제본으로 전환해 데이터베이스를 계속 이용 가능하다. (장애 조치 Fail Over)
이때, 엔드포인트의 목적지가 자동으로 예비 복제본으로 전환된다.
RDS에는 읽기 전용으로 사용할 수 있는, 읽기 전용 레플리카 기능이 있다.
이는 프라이머리 인스턴스에서 복제된 인스턴스이며,
읽기 요청이 늘어나면 인스턴스의 수를 늘리는 스케일 아웃 방식으로 성능 향상 가능하다.
🥨RDS 보안 설정과 백업
RDS는 VPC내에 생성된다.
RDS 인스턴스 생성을 위해 최소한 두 개의 서브넷이 필요하다.
서브넷은 리전 내의 서로 다른 AZ를 지정해야 한다.
🥨데이터베이스 엔진 업데이트
데이터베이스 엔진이나, 데이터베이스 엔진이 실행되는 OS에 취약점(보안 결함)이
발생할 수 있으므로 정기적으로 버전'업그레이드'를 해야한다.
- 버전 업그레이드는 AWS가 실시.
- '업데이트' 작업은 유지 관리 기간이라는 사용자가 설정한 시간대애 실시.
유지 보수 작업 시 RDS 인스턴스가 일시적으로 오프라인(사용불가)이 되므로, 데이터베이스 사용률이 높은
이용 시간을 피해 설정 필요하다.
엔진 업그레이드(새 버전 변경)는 프라이머리 인스턴스와 예비 복제본이 동시 업그레이드된다.
🥨데이터 백업
RDS는 자동 백업 기능이 있다.
사용자가 지정한 일 수 만큼의 스냅숏이 자동 유지된다.
보존 일 수는 0~35일 사이로 지정 가능하며, 0은 자동 백업 기능을 비활성화하는 값이다.
- 첫 스냅숏 :: 전체 데이터 백업
- 두 번째 이후 스냅숏 :: 차분 (처음 백업으로부터 변경된) 데이터만 백업
> 스냅숏은 사용자가 지정한 백업 윈도우 시간대에 실행
스냅숏 파일은 S3 버킷에 저장되므로 파일의 내구성은 매우 높다.
그리고 새 RDS 인스턴스를 생성하는 방식으로 복원 가능하며, 기존의 RDS 인스턴스에는 복원 불가
특정 시점 복구 (PITR, Point in TIme Recovery) 기능을 이용해 특정시간을 지정하고 복원 가능하다.