
오늘은 필자와 함께 RDS와 Aurora에 대해 공부해보자
AWS에서 관계형 데이터베이스(RDB)를 관리하는 가장 대표적인 서비스가 RDS와 Aurora이다!
기존의 온프레미스 DB 운영과 비교하면 관리 부담이 적고, 자동 백업, 고가용성, 확장성까지 제공되어 많은 기업들이 채택해서 사용하고 있다고 한다 그렇다고 함 ㅎㅁㅎ
RDS
- SQL DB 관리형 서비스
- PostgreSQL, MySQL, MariaDB, Oracle, MS SQL, Aurora DB 엔진 지원
왜 사용할까?
- OS 패치나 프로비저닝 자동화됨
- 특정 시간 단위 백업/복구 지원
- 모니터링 대시보드 제공 🖥️
- 읽기 전용 복제본 지원
- 재해 복구를 위한 멀티 AZ 지원 ⚡
- 관리 화면 제공 🛠️
- 스케일링 용이 🔄
- EBS를 통한 스토리지 백업 가능
- 인스턴스에서 직접 OS 레벨 변경 불가능 🚫
RDS 스토리지 Auto Scaling
- RDS 스토리지를 동적으로 증가 ⬆️
- 용량 부족 감지 시 자동 확장됨
- Maximum Storage Threshold 설정 필요 (DB 최대 스토리지 용량 지정)
- 예측이 어려운 워크로드에 유용 🏗️
- 모든 RDS DB 엔진 지원
RDS 읽기 복제본과 읽기 스케일링
- 최대 15개의 읽기 복제본 생성 가능
- 리전/AZ 간 또는 동일 AZ 내에서 생성 가능
- 비동기 방식으로 복제됨 (완전히 동일한 복제본은 아님) 🔄
- 복제본을 승격할 수 있음 → 쉽게 말해, 읽기 전용 DB를 기본 DB(마스터)로 전환 가능
- 애플리케이션이 복제본에 연결하려면 connection string 업데이트 필요 🔗
읽기 복제본은 언제 사용할까?
- 집계/통계 역할을 하는 애플리케이션 📊
- CQRS 구현 시 → 명령(Create, Update, Delete)과 조회(Read)를 분리하여 성능 최적화 가능
- 분석용 DB 구현 🔍
- 읽기 복제본은 항상 읽기 전용
- AZ 간 네트워크 비용 없음 (리전 간은 발생 주의 ⚠️)
RDS 멀티 AZ 재해 복구
- 동기화된 복사 수행 🔄
- 하나의 DNS 사용 🌐
- 가용성 확보를 위해 사용됨
- AZ 장애, 네트워크/인스턴스 문제 발생 대비 💾
- 스케일링을 위한 기능 아님! 🚨
하나의 AZ에서 멀티 AZ로 적용
- 다운타임 없이 적용 가능 ⏳
- 수정 버튼 클릭만으로 적용 가능 🖱️
- 내부적으로 수행되는 과정:
- 스냅샷 생성 📸
- 새로운 AZ에 DB 복구
- 두 DB 간 동기화 진행 🔄
RDS 커스텀하기
- Oracle 또는 MS SQL 사용 시 OS와 DB 커스텀 지원 🛠️
- 일반 RDS에서는 설정 불가능한 기능 조정 가능
- OS 또는 DB 설정 변경 가능 ⚙️
- 보안 패치 다운로드 가능 🔐
- SSH 또는 SSM 세션 매니저를 통한 접속 필요 🖥️
- 자동 모드 OFF 필요! 스냅샷 미리 저장 권장 ⚠️
RDS 백업 알아보기
- 자동 백업
- 매일 전체 DB 스냅샷 저장 📸
- 트랜잭션 로그 5분마다 백업 🕒
- 1일~35일 동안 데이터 저장 가능
- 0으로 설정 시 자동 백업 안 함 ❌
- 수동 DB 스냅샷
- 사용자가 직접 실행 가능
- 원하는 기간만큼 보관 가능 🔒

Aurora
Aurora란? 🤔
- AWS에서 제공하는 MySQL 및 PostgreSQL 호환 고성능 DB 🚀
- AWS 클라우드 최적화된 DB 엔진 제공
- RDS MySQL 대비 5배 빠름 ⚡
- RDS PostgreSQL 대비 3배 빠름 🚀
- 최대 15개의 읽기 복제본 지원
- 복제 속도가 MySQL보다 빠름 🔄
- 고가용성 설계됨
- 비용은 20% 더 비쌈 💰
고가용성과 읽기 스케일링
- 하나의 Aurora 인스턴스만 쓰기 가능 (마스터 인스턴스) 🖋️
- 리전 간 복제본 생성 지원 🌍
- 마스터 장애 발생 시 30초 이내 복구 ⚡
- 최대 15개의 읽기 복제본 제공 🔄
- 데이터를 3개 AZ에 복사하여 저장 (Shared Volume 사용) 🏗️
Aurora 커스텀 엔드포인트
- 특정 읽기 복제본에 별도 엔드포인트 할당 가능
- 기본 읽기 엔드포인트는 설정 후 변경 불가 ⚠️
- 예시: 분석용 읽기 복제본을 따로 설정하여 분석 시스템에서만 사용 가능
Aurora 서버리스
- 사용량에 따라 자동 스케일링됨 🔄
- 간헐적이거나 예측이 어려운 워크로드에 적합
- 용량 계획 필요 없음
- 초 단위 과금 방식 💰 (사용량 적으면 비용 절감 가능)
Aurora Global DB
- 리전 간 읽기 복제본 지원 🌍
- 재해 복구에 유용 ⚠️
- 주요 특징:
- 1개의 주요 리전 (Primary Region)
- 최대 5개의 부속 리전 (Secondary Region)
- 1초 이내 지연 시간 ⚡
- 부속 리전당 최대 16개의 읽기 복제본 생성 가능
- 주요 리전 장애 발생 시 1분 내 부속 리전을 주요 리전으로 승격 가능 (RTO: 1분 미만) 🔄
- 리전 간 데이터 복제 속도: 1초 미만
Aurora 머신러닝 🤖
- Aurora + ML → SQL을 사용해 머신러닝 예측 기능 추가 가능
- AWS의 ML 서비스와 통합 지원
- SageMaker / Comprehend 사용 가능
Aurora 백업
- 자동 백업
- 1~35일간 데이터 저장 (중지 불가)
- 해당 기간 내 특정 시점 복구 가능 🔄