데이터베이스(DB)를 선택할 때 고려해야 할 점이 많음
잘못 선택하면 성능 문제, 확장성 한계, 유지보수 어려움 등 다양한 문제 발생할 수도있다
데이터베이스는 크게 몇 가지 유형으로 나뉨, 각 유형과 적합한 사용 사례를 알아보자!
유형 | 설명 | 대표 서비스 |
---|---|---|
🔹 관계형 DB (RDBMS) | 테이블 기반의 관계형 데이터베이스 | MySQL, PostgreSQL, Oracle, AWS RDS, Aurora |
🔹 NoSQL DB | 스키마 없이 다양한 형식으로 데이터 저장 | DynamoDB, MongoDB, ElastiCache, Cassandra |
🔹 객체 저장소 | 파일, 이미지, 대용량 객체 저장 | Amazon S3, Glacier |
🔹 데이터 웨어하우스 | 분석 및 BI(비즈니스 인텔리전스) 용도 | Redshift, Athena, EMR |
🔹 검색 엔진 | 비정형 데이터 검색 및 색인 | OpenSearch, Elasticsearch |
🔹 그래프 DB | 관계 데이터를 빠르게 탐색 | Amazon Neptune |
🔹 원장형 DB | 불변성 및 감사 기록 저장 | QLDB |
🔹 시계열 DB | 시간 기반 데이터 저장 및 분석 | Amazon Timestream |
📌 언제 사용해야 할까?
✅ 데이터 무결성이 중요한 경우 (ex: 은행 거래)
✅ 복잡한 쿼리가 필요한 경우 (ex: 다중 테이블 조회)
✅ ACID(원자성, 일관성, 독립성, 지속성) 보장이 필요한 경우
관계형 DB의 한계를 보완하여, 스키마 없이 유연하게 데이터를 저장 가능.
유형 | 설명 | 대표적인 DB |
---|---|---|
문서형(Document DB) | JSON 형태로 저장 | MongoDB, AWS DocumentDB |
키-값(Key-Value) | Key-Value 형태로 저장 | Redis, DynamoDB |
열 기반(Columnar DB) | 대용량 데이터 분석에 최적화 | Cassandra, AWS Keyspaces |
그래프 DB | 관계 탐색 및 네트워크 분석 | Amazon Neptune |
📌 언제 사용해야 할까?
✅ 스키마가 유연해야 하는 경우 (ex: 사용자 프로필, 설정 데이터)
✅ 조인이 많지 않고 단순한 읽기/쓰기 성능이 중요한 경우 (ex: 캐싱 시스템)
✅ 실시간 데이터 분석 및 로그 저장 (ex: IoT 데이터 수집)
서비스 | 설명 |
---|---|
Amazon S3 | 대용량 파일, 이미지, 비디오 저장 |
Amazon Glacier | 장기 백업 및 아카이빙 |
📌 언제 사용해야 할까?
✅ 이미지, 동영상, 문서 저장 (ex: 클라우드 스토리지)
✅ 장기 데이터 보관 (ex: 백업, 로그 보관)
서비스 | 설명 |
---|---|
Redshift | 빅데이터 분석을 위한 OLAP 데이터 웨어하우스 |
Athena | S3에 저장된 데이터를 SQL로 분석 |
EMR | 빅데이터 분석을 위한 Hadoop 기반 서비스 |
📌 언제 사용해야 할까?
✅ 대량의 데이터 분석이 필요한 경우 (ex: BI 보고서, 로그 분석)
✅ SQL 기반으로 데이터 분석을 수행해야 하는 경우
서비스 | 설명 |
---|---|
OpenSearch (Elasticsearch 기반) | 비정형 데이터 검색 및 색인 |
📌 언제 사용해야 할까?
✅ 텍스트 기반 검색이 필요한 경우 (ex: 사이트 검색 기능)
✅ 로그 및 모니터링 데이터 분석
서비스 | 설명 |
---|---|
Amazon Neptune | 관계형 데이터 탐색 최적화 |
📌 언제 사용해야 할까?
✅ SNS 친구 추천, 추천 시스템
✅ 복잡한 관계 데이터 분석 (ex: 사기 탐지, 네트워크 분석)
서비스 | 설명 |
---|---|
Amazon QLDB | 블록체인 유사 불변성 저장소 |
📌 언제 사용해야 할까?
✅ 금융 거래 이력 보관
✅ 데이터 변경 이력을 저장해야 하는 경우 (ex: 감사 로그)
서비스 | 설명 |
---|---|
Amazon Timestream | 시계열 데이터 저장 및 분석 |
📌 언제 사용해야 할까?
✅ IoT 센서 데이터 저장 (ex: 온도, 습도 변화 기록)
✅ 서버 모니터링 및 로그 분석
✅ 실시간 데이터 스트리밍 분석
데이터베이스를 선택할 때는 워크로드, 확장성, 비용, 성능을 종합적으로 고려해야 함. 관계형 DB와 NoSQL DB의 차이를 이해하고, 목적에 맞는 DB를 선택하는 것이 핵심!
📌 최종 선택 가이드
✅ 트랜잭션이 중요하다 → RDBMS (MySQL, PostgreSQL, RDS)
✅ 빠른 확장이 필요하다 → NoSQL (DynamoDB, MongoDB)
✅ 비정형 데이터 저장 → Object Storage (S3)
✅ 검색 기능이 필요하다 → OpenSearch
✅ 그래프 데이터 분석 필요 → Neptune
✅ 시간 기반 데이터 저장 → Timestream