올바른 DB 고르기
- AWS에는 선택할 수 있는 다양한 관리형 데이터베이스가 있다.
- 무엇을 선택지는 어떤 아키텍처를 요구하는지에 따라 다르다.
- 읽기 중심인지, 쓰기 중심인지, 혹은 균형이 맞는 워크로드인지, 처리량은 얼마나 되는지, 그 처리량이 하루에 얼마나 달라지는지, 확장이 필요한지, 하루에 얼마나 달라지는지?
- 저장해야 할 데이터의 양은 얼마나 되고 얼마 동안 보관하애 하는지, 데이터는 계속 증가하는지, 평균 객체의 크기는 어떻게 되는지, 데이터 액세스 빈도와 액세스 방법은 무엇인지?
- 데이터 내구성은 어떤지, 데이터의 공급원은 무엇인지?
- 지연 시간 요구 사항은 어떻게 되는지, 동시 사용자는 얼마나 되는지?
- 데이터 모델은 어떻게 되는지, 데이터를 어떻게 쿼리할 것인지, 조인이 필요한지, 정형인지, 반정형인지?
- 강력한 스키마가 필요한지, 유연성이 필요한지, 데이터베이스 관련 보고가 필요한지, 검색 기능이 필요한지, 관계형 데이터베이스와 NoSQL 중 무엇이 필요한지?
- 라이센스 비용이 드는지, Aurora와 같은 클라우드 네이티브 데이터베이스로 전환할 계획이 있는지?
RDS
- 관리형 PostgreSQL / MySQL / Oracle / SQL Server / MariaDB / 사용자 지정 RDS
- RDS 인스턴스 크기, EBS 볼륨 유형, 크기를 프로비저닝해야 함
- Read Replicas(읽기 성능 향상) : 읽기 트래픽 분산으로 성능 향상 → 최대 15개까지 생성, 같은 AZ나 Cross AZ나 Cross Region 모두 가능, 비동기 복제, 읽기 전용으로 일반 DB로 승격 가능
- Read Replica는 같은 Region 내 복제는 무료, Cross-Region은 데이터 전송 비용 발생
- Multi AZ : 동기 복제, 장애 대응 목적, 같은 DNS 이름 사용, 다운타임 없음
- 스토리지 오토스케일링 기능(ex, 여유 공간 10% 미만일때)
- IAM 인증 - RDS 데이터베이스 보안(비밀번호 대신 IAM Role로그인) / 보안 그룹 - 네트워크 보안 / KMS - 저장 데이터 암호화(생성 시에만 암호화 설정 가능, 나중에 변경 불가) / SSL & TLS - 전송 데이터 암호화
- 자동 백업 옵션(최대 35일까지), 지정 시간 복구 기능
- 장기 보존 백업을 위한 수동 DB 스냅샷
- 유지 관리 기능을 예약할 수 있음 (다운타임 발생 - 프로비저닝하거나 AWS가 데이터베이스 엔진을 주기적으로 업데이트하고 기본 EC2 인스턴스에 보안 패치를 실행할 때 발생)
- RDS Proxy로 중간에서 Connection Pooling과 보안 강화 가능 → "Too many connections" 문제 해결
Aurora
- AWS가 개발한 클라우드 최적화 관계형 DB
- MySQL 대비 5배, PostgreSQL 대비 3배 빠름
- 자동 확장 기능 : 시작은 10GB, 자동 증가도 10GB 단위, 최대 128TB
- 고가용성 : 3개 AZ에 걸쳐 총 6개의 복사본
- 1개의 Master(쓰기 담당) + 최대 15개의 Read Replica(읽기 담당) → 모든 인스턴스가 같은 스토리지 공유
- Master 장애 시, Read Replica 중 하나가 자동으로 Master로 승격(평균 30초 이내로 RDS Multi AZ보다 빠름)
- 여러 엔드포인트 제공 → 쓰기 엔드포인트는 항상 마스터를 가리킴, 읽기 엔드포인트는 모든 Read Replica에 자동 로드 밸런싱
- RDS와 동일한 보안 / 모니터링 / 유지 관리 기능
- Aurora의 백업 및 복구 옵션
- Aurora Serverless : 예측할 수 없는 / 간헐적인 워크로드에 적합, 용량 계획을 하지 않아도 됨
- Aurora Multi-Master : 마스터 여러개로, 쓰기 고가용성을 위해 쓰기 장애 조치가 지속해서 필요할 때 사용 → DB 인스턴스 여러 개가 스토리지에 쓰기를 할 수 있도록 설정 가능
- Aurora Global : 1개의 Primary Region(읽기/쓰기) + 최대 5개 Secondary Region(읽기 전용) → 글로벌 애플리케이션, 재해 복구
- Aurora Machine Learning : Aurora에서 SageMaker 및 Comprehend(자연어 처리)를 사용하여 머신 러닝 수행
- Aurora Database Cloning : “Copy-on-Write” 사용 → 원본과 clone이 같은 스토리지를 가리키고 있고 포인터만 복사하는 개념으로 스냅샷을 복원하는 것보다 속도가 빠름
- 사용 사례: RDS와 동일하지만 더 적은 유지 보수 + 더 큰 유연성 + 더 높은 성능 + 더 많은 기능
ElastiCache
- AWS 관리형 인메모리 캐시 서비스 -> Redis / Memcached
- 자주 읽는 데이터를 메모리(RAM)에 저장
- DB 부하 감소 + 응답 속도 향상
- IAM, 보안 그룹, KMS, Redis 인증을 통한 보안
- 애플리케이션 코드가 ElastiCache를 활용하도록 코드 수정이 필수
Redis
- 복잡한 데이터 구조
- Multi AZ, Replication, Backup 지원
- Read Replica 지원
- 고가용성, 리더보드, 세션 등
Memcached
- 단순 Key - Value
- 수평 확장 쉬움
- 멀티스레드
- 백업, 복제 없음
- 단순 캐싱, 분산 캐시
DynamoDB
- AWS의 독점 기술, 관리형 서버리스 NoSQL 데이터베이스, 밀리초 수준의 지연 시간 제공, SQL 쿼리 사용 불가
- 용량 모드
- 선택형 오토 스케일링이 탑재된 프로비저닝된 용량 모드 - 점진적으로 늘어나거나 점진적으로 줄어드는 이중 워크로드가 있을 때 유용
- 온디맨드 용량 모드 - 용량 프로비저닝 필요 없음. 오토 스케일링이 실행되므로 워크로드를 예측하기 어려울 때나 데이터베이스의 수요가 급증할 때 유용
- ElastiCache 대신 DynamoDB에 키-값을 저장할 수 있음 (ex. 웹사이트 세션 데이터 저장, TTL 기능 사용)
- 고가용성, 기본적으로 다중 가용 영역에 걸쳐있기 때문, 읽기와 쓰기가 완전히 분리되어 있고 트랜잭션 기능 제공
- 읽기 캐시용 DAX 클러스터, 마이크로초 읽기 지연 시간
- 보안, 인증, 권한 부여는 IAM을 통해 처리
- 이벤트 처리: AWS Lambda 또는 Kinesis Data Streams와 통합하기 위한 DynamoDB Streams
- GlobalTable 기능: 어느 리전에서든 읽고 쓸 수 있음
- 백업 옵션
- PITR을 사용한 최대 35일까지의 자동 백업 : 새 테이블로 복원
- 온디맨드 백업
- 스키마를 빠르게 전개할 때 유용
- 사용 사례: 400KB 미만의 문서를 다루는 작은 서버리스 애플리케이션 개발, 서버리스 캐시 분산
Document DB
- AWS의 MongoDB 호환 관리형 NoSQL 데이터베이스
- 자동 3개 AZ 복제
- 최대 15개 Read Replica
Redshift
- 데이터 웨어하우스 서비스
- OLAP(Online Analytical Processing) -> 분석용
- 페타바이트 규모의 데이터 분석
- PostgreSQL 기반
Athena
- 서버리스 SQL 쿼리 엔진
- S3 데이터를 SQL로 쿼리
- S3에 저장된 데이터: s3://logs/2024/12/16/app.log (CSV, JSON, Parquet 등)
-> Athena 쿼리: SELECT status, COUNT(*) FROM logs WHERE date = '2024-12-16' GROUP BY status;
Neptune
- 완전 관리형 그래프 데이터베이스
- 관계 중심 데이터 저장
- 소셜 네트워크, 자식 그래프(ex, 위키피디아), 사기 탐지(복잡한 관계 패턴 분석) 등
QLDB(Quantum Ledger Database)
- 불변 원장 DB
- 모든 변경 이력 영구 보존
- 암호화 검증 가능
Timestream
- AWS의 시계열 데이터베이스 -> 시간 순서대로 수집되는 데이터
- IoT, 모니터링 데이터에 최적화
'AWS' 카테고리의 다른 글
| [AWS] 모니터링 : CloudWatch & CloudTrail & Config (0) | 2025.12.22 |
|---|---|
| [AWS] Data & Analytics (0) | 2025.12.19 |
| [AWS] Serverless Architectures (0) | 2025.12.15 |
| [AWS] Serverless (0) | 2025.12.10 |
| [AWS] Integration & Messaging (0) | 2025.12.02 |