RDS (Relational Database Service)
관리형 관계형 데이터베이스 서비스
> DB 설치, 관리, 백업, 복제, 장애 복구 등 복잡한 작업을 자동화
주요 특징
- 관리 자동화
- 인스턴스 생성, 패치, 업그레이드, 백업, 복구 등을 자동으로 처리
- 지속적인 백업을 통해 사용자는 이를 활용하여 특정 시점으로 복원 가능 (Point in Time Restore)
- 지원 엔진 유형
- Aurora (Amazon Proprietary database)
- PostgreSQL
- MySQL
- MariaDB
- Oracle
- Microsoft SQL Server
- IBM Db2
- 고가용성 보장
- Multi-AZ 배포로 장애 발생 시 자동으로 대기 인스턴스로 전환해 서비스의 연속성 보장
- 성능 모니터링 대시보드 사용
- Read Replicas
- 읽기 전용 복제본 생성 > 읽기 부하 분산
- 인스턴스 타입을 늘려 스케일아웃/스케일업 가능
- EBS가 스토리지 지원
- 업그레이드 > Maintenance Windows
- 단, SSH로 RDS 인스턴스 접속은 불가능
⚡ RDS를 사용하는 것과 EC2 인스턴스에 DB를 직접 배포하는 것과의 차이점
RDS EC2에 직접 설치 관리 자동화 (백업, 복구, 패치 등) 모든 걸 사용자가 직접 관리 Multi-AZ로 장애 복구 지원 수동으로 복제 구성 필요 쉬운 설정 인트턴스, 스토리지 등 직접 세팅 더 높은 비용 발생 가능 비용 절감 가능
RDS - Storage Auto Scaling (중요)
스토리지 용량을 자동으로 확장해주는 기능 (축소는 X)
동작 방식
1. 초기 용량 설정 > RDS 인스턴스 생성 시 초기 스토리지 용량 지정
2. 확장 트리거 > DB의 사용량이 일정 임계치에 도달하면 RDS Storage Auto Scaling이 동작
3. 자동 확장 > RDS가 감지하여 지정한 최대 용량까지 스토리지를 자동으로 확장 (DB 중단 방지)
- 최대 스토리지 임계값 설정 > 스토리지가 무한정 늘어나지 않도록 최대 용량 제한 설정
- 할당된 용량의 10% 미만으로 남으면 스토리지 설정을 자동으로 변경할 수 있음
- 스토리지가 5분 이상 부족한 상태가 지속되고 마지막 수정 후 6시간이 지나면 스토리지가 자동으로 확장
- 업무량이 예측하기 어려운 애플리케이션에 유용
- RDS의 모든 DB 엔진에 지원
RDS - Read Replicas (읽기 전용 복제본)
- 읽기 작업을 복제본에 분산하여 읽기 성능을 개선
- 복제본 최대 15개까지 생성 가능
- 동일한 AZ 또는 AZ나 리전에 걸쳐서 생성
- 읽기 전용이기 때문에 SELECT 명령문만 사용 가능
동작 방식
- 복제본 생성
- Primary DB의 데이터를 Read Relica에 복제
- 📌 비동기 복제 (읽기가 일관적으로 유지됨을 의미)
- Read Replica는 쓰기 작업 없이 읽기 작업만 처리
- 만약 애플리케이션에서 데이터를 복제하기 전 읽기 전용 복제본을 읽어들이면 모든 데이터를 얻을 수 있음
- 읽기 부하 분산
- 애플리케이션에서 Read Replica로 읽기 요청을 분산시켜 Primary DB의 부하를 줄임
- 📌 수동 장애 조치 > DB로 승격 가능
- Primary DB에 장애 발생 시 Read Replica를 수동으로 승격해 새로운 Primary DB로 만듦
- 권한 부여 후에 해당 복제본은 복제 메커니즘을 완전히 탈피
- 자체적인 라이프사이클을 갖음
- 📌 읽기 전용 복제본을 사용하기 위해서는 애플리케이션에 있는 모든 연결을 업데이트해야 함
- 이를 통해 RDS 클러스터 상의 읽기 전용 복제본 전체 목록을 활용할 수 있음
네트워크 비용
- 동일한 리전 내의 다른 AZ로 데이터 이동 시 무료
- 서로 다른 리전일 경우 비용 발생
- (기본적으로 다른 AZ로 데이터 이동 시 비용 발생하며, AWS 관리형 서비스일 경우 무료)
RDS - Multi AZ (for 재해 복구)
- 장애 발생 시 자동 장애 조치로 서비스 연속성 보장
- 스케일링 X
- 📌 읽기 전용 복제본도 Multi AZ 설정 가능
동작 방식
- 복제본 생성
- 읽기와 쓰기를 수행하는 Primary DB 인스턴스와 동일한 Standby DB 인스턴스를 다른 AZ에 복제
- 동기 복제
- 모든 데이터가 Primary DB -> Standby DB로 동기화
- 자동 장애 조치 > 하나의 DNS 이름을 갖고, 애플리케이션 또한 하나의 DNS 이름으로 통신
- Primary DB에 장애 발생 시 RDS가 자동으로 Standby DB를 새로운 Primary로 승격
- 서비스 연결 자동 전환
- 재복구
- 장애 복구 후 새로운 Standby DB를 생성해 Mulity-AZ 구성을 복원
📌 RDS - 단일 AZ에서 다중 AZ로 DB 전환
- 다운타임 = 0
- 단일 AZ에서 다중 AZ로 DB를 전환 시 DB를 중지할 필요가 없음
- 사용자는 설정 옵션 변경 외에 아무 작업도 할 필요 없음
전환 시 (내부) 동작 과정
- Primary DB의 RDS가 자동으로 스냅샷 생성
- 생성된 스냅샷은 다른 AZ에 새로운 Standby DB에 복원
- Standby DB 복원 후 두 DB 간의 동기화 > 다중 AZ 설정 상태
RDS Custom (for Oracle & Microsoft SQL Server)
RDS의 관리 편의성은 그대로 유지하면서, 사용자가 DB에 대한 세부적인 제어 권한을 가질 수 있도록 설계된 서비스
(기존에는 DB 인스턴스에 직접 접근하거나 OS 수준에서 커스터마이징이 불가능했음)
- RDS Custom 옵션 추가 시
- 내부 설정 구성, 패치 적용 및 네이티브 기능 활성화 가능
- SSH 또는 SSM 세션 관리자를 사용하여 RDS 뒤에 있는 EC2 인스턴스에 접근 가능
- Custom 옵션을 사용하기 위해 RDS가 수시로 자동화, 유지 관리 또는 스케일링과 같은 작업을 수행하지 않도록 자동화를 꺼두는 것이 좋음
- 사용자가 직접 DB에 접근하면 문제 발생 위험이 높아지므로 DB 스냅샷 활용 필요
- RDS Custom 가능 엔진 유형
- Oracle, Microsoft SQL Server
'개발 공부 > AWS' 카테고리의 다른 글
[AWS] SAA 공부 (6)-2 RDS & Aurora - Backup (0) | 2025.03.25 |
---|---|
[AWS] SAA 공부 (6)-1 RDS - Amazon Aurora (0) | 2025.03.25 |
[AWS] SAA 공부 (5)-5 ELB - SSL 인증서 / SNI / Connect Draining / ASG (0) | 2025.03.24 |
[AWS] SAA 공부 (5)-4 ELB - Sticky Sessions / Cross-Zone Load Balancing (0) | 2025.03.24 |
[AWS] SAA 공부 (5)-3 ELB - GWLB (Gateway Load Balancer) (0) | 2025.03.24 |