[AWS 자격증] Amazon RDS, Aurora & ElastiCache 정리
AWSRDSAuroraElastiCache자격증
작성자 : 오예환 | 작성일 : 2026-01-06 | 수정일 : 2026-01-06
1. Amazon RDS 개요
RDS란?
Relational Database Service - AWS 관리형 관계형 데이터베이스로, SQL을 쿼리 언어로 사용하는 DB 서비스입니다.
지원 데이터베이스 엔진
- PostgreSQL, MySQL, MariaDB
- Oracle, Microsoft SQL Server, IBM DB2
- Aurora (AWS 자체 개발 DB)
2. RDS vs EC2에 직접 DB 설치
RDS 사용의 장점
| 기능 | 설명 |
|---|---|
| 자동 프로비저닝 | OS 패치 자동화 |
| 지속적 백업 | 특정 시점 복원 (Point in Time Restore) |
| 모니터링 대시보드 | 기본 제공 |
| Read Replicas | 읽기 성능 향상 |
| Multi-AZ | 재해 복구(DR) 지원 |
| 유지보수 윈도우 | 업그레이드 일정 관리 |
| 스케일링 | 수직/수평 확장 가능 |
| 스토리지 | EBS 기반 |
단점: 인스턴스에 SSH 접속 불가
3. RDS Storage Auto Scaling
동작 방식
- 스토리지 부족 감지 시 자동으로 용량 증가
- Maximum Storage Threshold 설정 필수
자동 확장 조건 (모두 충족 시)
- 할당된 스토리지의 10% 미만 남음
- 저용량 상태가 5분 이상 지속
- 마지막 수정 후 6시간 경과
워크로드가 예측 불가능한 애플리케이션에 유용합니다.
4. RDS Read Replicas (읽기 복제본)
핵심 특징
- 최대 15개 Read Replica 생성 가능
- 같은 AZ, 다른 AZ, 다른 리전 모두 가능
- 비동기(ASYNC) 복제 → 최종적 일관성(Eventually Consistent)
- 독립 DB로 승격 가능
- SELECT 문만 가능 (INSERT, UPDATE, DELETE 불가)
사용 사례
프로덕션 DB (정상 부하)
↓
ASYNC 복제
↓
Read Replica ← 리포팅/분석 애플리케이션
→ 프로덕션 DB에 영향 없이 분석 작업 수행네트워크 비용
| 구성 | 비용 |
|---|---|
| 같은 리전 내 다른 AZ | 무료 |
| 다른 리전 | 유료 |
5. RDS Multi-AZ (재해 복구)
Read Replica vs Multi-AZ 비교
| 구분 | Read Replica | Multi-AZ |
|---|---|---|
| 복제 방식 | 비동기 (ASYNC) | 동기 (SYNC) |
| 용도 | 읽기 성능 향상 | 재해 복구 (DR) |
| 접근 | 별도 연결 문자열 | 단일 DNS (자동 장애조치) |
| 스케일링 | O | X |
Multi-AZ 특징
- 하나의 DNS로 자동 장애조치
- AZ 손실, 네트워크/인스턴스/스토리지 장애 시 자동 전환
- 애플리케이션 수정 불필요
Single-AZ → Multi-AZ 전환
- 다운타임 없음 (Zero downtime)
- 내부 동작: 스냅샷 생성 → 새 AZ에 복원 → 동기화 설정
6. Amazon Aurora
Aurora란?
AWS 자체 개발 데이터베이스 (비공개 소스)로, PostgreSQL과 MySQL 호환됩니다. 기존 드라이버를 그대로 사용할 수 있습니다.
성능 비교
| 대상 | 성능 향상 |
|---|---|
| MySQL on RDS | 5배 |
| PostgreSQL on RDS | 3배 이상 |
주요 특징
| 특징 | 설명 |
|---|---|
| 스토리지 자동 확장 | 10GB 단위, 최대 256TB |
| Read Replica | 최대 15개, 복제 지연 10ms 미만 |
| 장애조치 | 즉시 (30초 이내) |
| 비용 | RDS 대비 약 20% 높음 (효율성 더 좋음) |
고가용성 & 읽기 확장
┌─────────────────────────────────────────┐
│ 공유 스토리지 볼륨 (3개 AZ) │
│ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ AZ1 │ │ AZ2 │ │ AZ3 │ │
│ │2카피 │ │2카피 │ │2카피 │ = 총 6카피 │
│ └─────┘ └─────┘ └─────┘ │
└─────────────────────────────────────────┘- 쓰기: 6개 중 4개 필요
- 읽기: 6개 중 3개 필요
- 자가 복구 (Self-healing) + 자동 확장
Aurora 엔드포인트
| 엔드포인트 | 용도 |
|---|---|
| Writer Endpoint | 마스터 인스턴스 연결 |
| Reader Endpoint | Read Replica 로드밸런싱 |
Aurora 주요 기능
- 자동 장애조치, 백업/복구
- 제로 다운타임 패치
- Backtrack: 백업 없이 특정 시점으로 데이터 복원
7. RDS & Aurora 보안
| 보안 항목 | 설명 |
|---|---|
| 저장 시 암호화 | AWS KMS 사용, 시작 시 설정 필수 |
| 전송 중 암호화 | TLS 기본 지원 |
| IAM 인증 | 사용자명/비밀번호 대신 IAM 역할 사용 가능 |
| 보안 그룹 | 네트워크 접근 제어 |
| SSH | 불가 (RDS Custom 제외) |
| 감사 로그 | CloudWatch Logs로 전송 가능 |
암호화되지 않은 DB 암호화 방법: 스냅샷 생성 → 암호화된 상태로 복원
8. Amazon RDS Proxy
RDS Proxy란?
RDS용 완전관리형 데이터베이스 프록시로, DB 연결을 풀링하여 공유합니다.
장점
| 장점 | 설명 |
|---|---|
| DB 효율성 향상 | CPU, RAM 부하 감소, 연결/타임아웃 최소화 |
| 서버리스 | 자동 스케일링, Multi-AZ 고가용성 |
| 장애조치 시간 | RDS/Aurora 대비 66% 단축 |
| 코드 변경 | 대부분 불필요 |
| 보안 | IAM 인증 + Secrets Manager 연동 |
지원 DB
- RDS: MySQL, PostgreSQL, MariaDB, MS SQL Server
- Aurora: MySQL, PostgreSQL
주의: VPC 내부에서만 접근 가능 (퍼블릭 접근 불가)
Lambda + RDS Proxy 아키텍처
Lambda Functions → RDS Proxy → RDS DB Instance
(VPC Private Subnet)9. Amazon ElastiCache
ElastiCache란?
관리형 인메모리 데이터베이스 (Redis / Memcached)로, 초고성능 및 저지연을 제공합니다.
- DB 읽기 부하 감소
- 애플리케이션 Stateless 구현
주의: 애플리케이션 코드 변경 필요
아키텍처 패턴 1: DB 캐시
Application
↓
ElastiCache에서 조회 (Cache Hit?)
├─ Hit → 바로 반환
└─ Miss → RDS에서 조회 → ElastiCache에 저장아키텍처 패턴 2: 세션 스토어
User → App Instance 1 → 세션 저장 → ElastiCache
↓
User → App Instance 2 → 세션 조회 ← (이미 로그인 상태)10. Redis vs Memcached
| 구분 | Redis | Memcached |
|---|---|---|
| 고가용성 | Multi-AZ + 자동 장애조치 | 없음 |
| Read Replica | 지원 | 없음 |
| 데이터 지속성 | AOF 영속화 | 비영속적 |
| 백업/복원 | 지원 | Serverless만 지원 |
| 데이터 구조 | Sets, Sorted Sets 지원 | 단순 키-값 |
| 아키텍처 | 복제 기반 | 샤딩 (멀티 노드) |
| 멀티스레드 | 단일 스레드 | 멀티스레드 |
11. 캐싱 전략
Lazy Loading (Cache-Aside)
요청 → 캐시 확인 → Miss → DB 조회 → 캐시 저장 → 반환
→ Hit → 바로 반환| 장점 | 단점 |
|---|---|
| 요청된 데이터만 캐싱 | Cache Miss 시 3번의 왕복 (지연) |
| 노드 장애 시 치명적이지 않음 | 오래된 데이터 가능성 (Stale Data) |
Write-Through
DB 쓰기 → 캐시에도 동시 저장| 장점 | 단점 |
|---|---|
| 캐시 데이터 항상 최신 | 쓰기마다 2번 호출 필요 |
| 읽기 속도 빠름 | 읽히지 않는 데이터도 캐싱 (Cache Churn) |
권장 조합
- Lazy Loading 기본 적용 (읽기 측)
- Write-Through 특정 쿼리/워크로드에 선택적 적용
- TTL 설정 권장 (단, Write-Through 사용 시 제외)
12. Cache Eviction & TTL
캐시 제거 방법
- 명시적 삭제: 직접 삭제
- LRU (Least Recently Used): 메모리 부족 시 오래된 항목 제거
- TTL (Time-to-Live): 설정된 시간 후 자동 만료
TTL 적용 예시
- 리더보드, 댓글, 활동 스트림
- 몇 초 ~ 며칠까지 설정 가능
메모리 부족으로 제거가 자주 발생하면 스케일 업/아웃 필요
13. Amazon MemoryDB for Redis
MemoryDB란?
Redis 호환 내구성 있는 인메모리 DB로, 초당 1억 6천만 요청 이상 처리 가능합니다.
주요 특징
| 특징 | 설명 |
|---|---|
| 성능 | 인메모리 (수백 개 노드) |
| 내구성 | Multi-AZ 트랜잭션 로그 |
| 확장성 | 수십 GB ~ 수백 TB |
사용 사례
- 웹/모바일 앱, 온라인 게임
- 미디어 스트리밍, 금융/뱅킹
핵심 비교 요약
| 서비스 | 용도 | 특징 |
|---|---|---|
| RDS | 관계형 DB | 관리형, Multi-AZ, Read Replica |
| Aurora | 고성능 관계형 DB | RDS보다 빠름, 자동 확장, 고가용성 |
| ElastiCache | 인메모리 캐시 | Redis/Memcached, 세션/캐시 저장 |
| MemoryDB | 내구성 있는 인메모리 DB | Redis 호환, 초고성능 |