RDS (관계형 데이터베이스 서비스)
개요
- RDS란?: SQL을 쿼리 언어로 사용하는 관리형 데이터베이스 서비스
- 이용 이유: 관리형 서비스로서 많은 기능을 제공
- 지속적인 백업
- 모니터링 대시보드 제공
- 다중 가용 영역(Availability Zones, AZ) 지원
- SSH 접속 불가
주요 기능
- 자동 스케일링 (Auto Scaling)
- 저장공간이 부족하면 자동으로 스케일링 업
- 서비스 작동이 끊기지 않도록 보장
- 수동 스케일링 방지
- 최대 저장 임계값 설정 필요
- 읽기 전용 복제본과 다중 AZ
- 읽기 작업을 스케일링
- 읽기 전용 복제본을 다른 AZ에 설정 가능 (크로스 리전도 가능)
- 복제본을 데이터베이스로 승격 가능
- 예시:
- 애플리케이션이 인스턴스에 대한 읽기와 쓰기를 함
- 보고 애플리케이션이 인스턴스에 데이터를 읽으려 할 때, 프로덕션 애플리케이션의 성능 저하 및 오류 가능성 있음
- 읽기 전용 복제본 생성 후, 보고 애플리케이션이 이 복제본에서만 읽기 작업 수행
- 비용 구조
- 같은 리전 내의 다른 AZ 간 데이터 전송: 비용 발생 안 함 (RDS에 한정)
- 서로 다른 리전 간 데이터 전송: 비용 발생
- 예시:
us-east-1a
→ us-east-2a
: 비용 발생 안 함
- 재해 복구 및 대기 복제본
- 재해 복구를 위해 읽기 전용 복제본 사용 가능
- 스탠바이 복제본이 존재하며, 하나의 DNS 이름을 갖고 마스터 DB 인스턴스의 문제가 발생하면 복제본이 역할 대체
- 스탠바이 데이터베이스는 대기 목적으로 존재
다중 AZ 설정
- 단일 AZ에서 다중 AZ로 변경 시 다운타임 없음
- 설정 수정만으로 작동 중단 없이 전환 가능
- 기본 데이터베이스 RDS 스냅샷 생성 후 스탠바이 인스턴스로 변환
- 싱크 복제를 통해 지속적인 동기화 진행