1. 데이터베이스 확장 : Scale-Up vs Scale-Out
- Scale-Up (수직 확장)
- 개념: DB 서버 자체의 CPU, RAM, Disk 등을 업그레이드
- 장점: 단순 구조, 빠른 대응
- 단점: 비용 상승 및 물리적 한계
- Scale-Out (수평 확장)
- 개념: 여러 대의 DB로 트래픽 분산 및 부하 분배
- 장점: 수평적 확장 용이, 대규모 트래픽 대응 가능
- 단점: 샤딩 등 분산 구조 설계 필요
2. 샤딩이란 무엇인가?
샤딩은 데이터를 여러 DB 인스턴스에 나눠서 저장하는 기술이다. 크게 두 가지 방식이 있다.
- 수직 샤딩 (Vertical Sharding)
- 방식: 데이터를 수직으로 분할하는 방식 (컬럼 단위로 분리)
예) title, content → DB1 / board_id, created_at → DB2 - 장점: 특정 컬럼 쿼리 성능 향상
- 단점: 조인 및 트랜잭션 관리 복잡, 수직으로 분할되므로 수평적 확장에 제한
- 방식: 데이터를 수직으로 분할하는 방식 (컬럼 단위로 분리)
- 수평 샤딩 (Horizontal Sharding)
- 방식: 데이터를 수평으로 분할하는 방식 (행 단위로 분리)
예) article_id=1~5000 → DB1 / 5001~10000 → DB2 - 장점: 수평적 확장 용이, 부하 분산
- 단점: 조인 및 트랜잭션 관리 복잡
- 방식: 데이터를 수평으로 분할하는 방식 (행 단위로 분리)
3. 샤딩 전략별 분류
- 범위 기반 샤딩 (Range Sharding)
- 방법: Shard Key의 값 범위로 분리
예) article_id=1~5000 / 5001~10000 - 장점: 범위 쿼리에 유리
- 단점: 특정 샤드로 데이터 몰림 가능
- 방법: Shard Key의 값 범위로 분리
- 해시 기반 샤딩 (Hash Sharding)
- 방법: 해시 함수로 샤드 분배
예) article_id % 2 - 장점: 데이터 균등 분산
- 단점: 범위 조회에 불리
- 방법: 해시 함수로 샤드 분배
- 디렉토리 기반 샤딩 (Directory-based)
- 기준: 매핑 테이블에 의해 샤드 결정
예) article_id=3 → Shard 2 - 장점: 유연한 샤드 구성 가능
- 단점: 디렉토리 관리 비용, 병목 가능성
- 기준: 매핑 테이블에 의해 샤드 결정
샤딩의 개념과 각 기법의 특성을 이해하고, 시스템 특성에 따라 적절한 기법을 선택하는 것이 중요하다.
4. 물리적 샤딩 vs 논리적 샤딩
- 물리적 샤드 (Physical Shard)
- 정의: 데이터를 물리적으로 분산한 실제 단위
- 필요성: 대규모 데이터 분산 저장 및 성능 향상
- 논리적 샤드 (Logical Shard)
- 정의: 데이터를 논리적으로 분산한 가상의 단위
- 필요성: 물리적 확장 시, Client 변경없이 유연한 매핑
5. 데이터 복제: Primary / Replica 구조
대규모 시스템은 단순 확장뿐 아니라 안정성과 고가용성도 필수입니다. 이때 필요한 게 복제(Replication) 입니다.
- 구조
- Primary (쓰기 노드): 데이터 기록 담당
- Replica (읽기 노드): 데이터 복제 및 조회 처리
- 복제 방식
- 동기적(Sync): 쓰기 성능 저하 가능 / 데이터 일관성 보장
- 비동기적(Async): 성능 우수 / 최신 데이터 반영 지연 가능
- 운영 전략
- 장애 발생 시 Replica를 Primary로 승격
- 읽기 요청을 Replica로 나눠 부하 분산
- 백업 및 안전성 확보
[관련자료]
스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판 강의 | 쿠케 - 인프런
쿠케 | 대규모 데이터와 트래픽을 지탱하기 위한 시스템을, 스프링부트로 직접 만들면서 배워봅니다., IT 서비스 대기업 개발자의 대규모 시스템 실전 개발 노하우!본 강의는 대규모 시스템을 구
www.inflearn.com
'프로그래밍_인강' 카테고리의 다른 글
| 조회수 - InMemoryDB, 분산락 (1) | 2025.09.04 |
|---|---|
| 좋아요 수 설계 - 비정규화, 락 (0) | 2025.09.04 |
| 게시글 목록 조회 - 페이지 번호 (with 인덱스) (3) | 2025.07.21 |