Day 6: 확장성과 분산 데이터베이스
- 수직적 확장 vs 수평적 확장
- Scale-Up과 Scale-Out 개념
- 샤딩(Sharding) & 레플리케이션(Replication)
- 데이터 파티셔닝 전략
- 마스터-슬레이브 복제, 멀티 마스터
- NoSQL 상세
- Key-Value Stores (Redis, DynamoDB)
- Document DB (MongoDB), Column Store (Cassandra)
- 분산 트랜잭션 & CAP 이론
- 일관성(Consistency), 가용성(Availability), 파티션 내성(Partition Tolerance)
오늘날, 데이터베이스가 커지고 트래픽이 늘어나면서 단일 서버로 처리하기 어려운 상황이 빈번해졌다. 이에 대응하기 위해 수평적 확장(Scale-Out), 샤딩(Sharding), 레플리케이션(Replication) 같은 분산 전략을 활용하며, 이를 기술적으로 뒷받침해줄 NoSQL 시스템들이 각광받고 있다. 또한, 분산 트랜잭션을 다룰 때는 CAP 이론이 중요한 지침으로 작용한다.
1. 수직적 확장 vs 수평적 확장
1.1 Scale-Up (수직적 확장)
- 개념
- 기존 서버의 하드웨어 사양(CPU, 메모리, 디스크 등)을 고성능 장비로 교체하거나 업그레이드하는 방식
- 예) 8코어 CPU → 32코어 CPU, 16GB RAM → 256GB RAM
- 장점
- 애플리케이션 구조 변경 없이 단일 서버의 성능을 즉시 높일 수 있음
- DB 스키마나 운영 로직 변경이 비교적 단순
- 단점
- 고성능 장비는 비용이 급격히 증가(가격 대비 성능 한계가 존재)
- 물리적 한계(CPU 코어 수, 메인보드 슬롯 등)에 부딪히면 더 이상 확장 어려움
1.2 Scale-Out (수평적 확장)
- 개념
- 더 많은 서버(노드)를 추가해, 데이터와 트래픽을 분산 처리
- 예) 일반 PC 수십 대 또는 클라우드 VM을 병렬로 묶어 대규모 트래픽 처리
- 장점
- 저비용 서버 여러 대를 연결해 대용량 처리가 가능
- 고가의 단일 장비를 사용하는 것보다 장애에 대한 내결함성(Fault Tolerance) 강화
- 단점
- 노드 간 통신·데이터 분산 전략 등 분산 시스템 복잡도가 증가
- 일관성 유지나 데이터 동기화 문제가 발생할 수 있음