- 다양한 DB 엔진 제공
- 즉각적인 DB 컴퓨팅 사이즈 조정
- 범용(SSD) 스토리지
- 자동 백업 (가용성 및 내구성 향상)
- 데이터 및 전송 데이터 암호화
- 쉽고 빠른 이중화 구성 (Multi-AZ)
- Read Replica (읽기 전용 DB)
- 관리 부담 감소 사용 편의성
- DB 인스턴스 백업 및 복구를 위한 두 가지 방법
- 자동 백업 및 데이터베이스 스냅샷을 제공
- 특정 시점으로 복구 또는 DB 스냅샷에서 복구 작업을 수행하면 새로운 엔드포인트를 가지는 새 DB 인스턴스가 생성됨
- RDS DB 스냅샷과 자동 백업은 S3에 저장
- 자동 백업
- 백업을 수행하는 백업 기간을 설정
- 백업 보존 기간은 1일부터 최대 35일까지 설정 가능
- DB 인스턴스를 특정 시점으로 복구 가능
- RDS는 DB 트랜잭션 로그를 5분마다 백업하므로 가장 오래된 시점부터 5분전까지 시점으로 복구 가능
- 자동백업을 비활성화 하려면 보존기간을 0으로 설정
- 데이테베이스 스냅샷
- 사용자가 수동으로 스냅샷 생성가능(수동 백업)
- 사용자가 지정한 만큼 백업을 보존할 수 있음 (스냅샷 보존기간 없음)
- SSL/TLS를 사용하여 애플리케이션과 DB 인스턴스 간의 전송 중 암호화 가능
- KMS를 통해 관리하는 키를 사용하여 모든 데이터베이스 엔진에 대한 저장 중 암호화 가능
- 암호화 되지 않은 DB 인스턴스 암호화
- RDS 인스턴스 스냅샷 생성
- 암호화 된 스냅샷 복사본 생성
- 암호화 된 스냅샷에서 RDS 인스턴스 복원
- 암호/패스워드 이외에 IAM 사용자 및 역할을 통해 데이터베이스 인증 적용 가능
- RDS에 보안그룹을 연결하여 IP 주소, EC2 인스턴스에 대한 데이터베이스 연결 제어 가능
- RDS Audit Logs 기능을 사용하여 보안 감사에 활용 가능 (로그 데이터 장기 보관을 위해 로그를 CloudWatch Logs에 보낼 수 있음)
- EC2에 RDS를 설치하여 구성하는 경우는 사용자가 서버를 포함한 모든 부분을 관리
- 사용자가 데이터베이스와 운영체제에 대한 관리 권한을 가짐
- 데이터베이스 프록시 기능
- 애플리케이션이 데이터베이스와 연결을 풀링하고 공유하도록 하는 기능
- 여러 애플리케이션 연결에서 데이터베이스 연결을 공유할 수 있으므로 데이터베이스 리소스를 효율적으로 사용
- 데이터 베이스 장애 조치 시간 감소
- 애플리케이션 연결을 유지하면서 예비 DB 인스턴스에 자동으로 연결
- 보안 개선
- 데이터베이스에 IAM 인증을 필요에 따라 적용하고 Secret Manager에 보안 인증 정보를 안전하게 저장
- 데이터베이스 성능 유지
- 데이터베이스 연결 풀을 설정하고 매번 새 데이터베이스 연결을 여는데 필요한 메모리 및 CPU 오버헤드없이 이 풀에서 연결을 다시 사용
- 연결 요청이 지정된 한도를 초과하는 경우 애플리케이션 연결을 거부하여 부하 감소 (데이터베이스 열린 연결 수 제어)
- 서로 다른 가용영역의 Standby 형태의 Slave DB가 생성되고 동기식으로 복제가 됨
- Master DB에 장애가 발생할 경우 자동으로 감지한 후 Failover 함
- 내구성과 가용성을 향상 시킬 수 있음
- Standby Replica는 읽기 트래픽 처리 불가 (Multi-AZ RDS는 읽기 트래픽 분산 용도가 아님)
- DB 인스턴스에 대한 업데이트는 가용영역 전체에서 예비 복제본에 동기식으로 복제
- 2배의 비용
- 읽기 용도의 동일한 DB를 여러 개 생성해서 읽기 용도의 부하 분산을 할 수 있음
- 읽기를 별도로 분리하여 성능을 향상
- SQL 쿼리를 많이하는 리포팅 툴의 경우 읽기 복제본으로 연결하여 쿼리 성능 향상
- 읽기 전용 복제본이 작동하려면 백업이 활성화된 상태로 유지되어야 함
- 활성 상태의 장기 실행 트랜잭션이 있으면 완료 후에 읽기 전용 복제본을 생성하는 것을 권장