몽고DB 복제(Replication) 방식: 3벌식, PSA 구조 비교 및 설명
2025. 3. 14. 00:19ㆍIT/몽고DB
몽고디비의 복제(Replication)란?
몽고디비에서 복제(Replication)는 데이터를 여러 서버에 복사하여 장애 대비, 데이터 보호 및 고가용성을 확보하는 방법입니다.
몽고디비는 최소 3개 서버(노드)로 구성된 복제 세트(Replica Set) 운영을 권장하며, 대표적인 구성은 다음 두 가지가 있습니다.
- 3벌식 (Primary-Secondary-Secondary)
- PSA 구조 (Primary-Secondary-Arbiter)
각각의 의미와 특징을 간단히 살펴보겠습니다.
3벌식 복제 (Primary-Secondary-Secondary)
구성 요소
- Primary (1대): 주 데이터베이스로 읽기/쓰기 작업 수행
- Secondary (2대): Primary 데이터를 복제하며, 읽기 작업 및 장애 시 Primary 역할 수행
구조도
+-------------------+
| 클라이언트 |
+---------+---------+
|
v
+--------+--------+
| Primary |◀───────┐
+--------+--------+ |
│복제 ┌─────────┘
v v
+----------------+ +----------------+
| Secondary #1 | | Secondary #2 |
| (복제본, 장애 대비)| | (복제본, 장애 대비)|
+----------------+ +----------------+
장점
- 장애 발생 시 빠르고 명확한 장애 복구 가능
- 데이터 안정성과 가용성이 매우 높음
- 읽기 부하 분산 가능
단점
- 서버 비용 및 관리 부담 증가 (총 3개의 데이터 노드 유지)
PSA(Primary-Secondary-Arbiter) 구조
구성 요소
- Primary (1대): 읽기/쓰기 작업 수행 및 데이터 복제
- Secondary (1대): Primary 데이터를 복제하며 장애 대비
- Arbiter (1대): 데이터 복제 없이 투표권만 보유 (Primary 선출에만 참여)
구조도
Client
│
▼
┌─────────────────┐
│ Primary │ ◀────────────┐
│ (읽기/쓰기, 데이터 복제) │
+----------------─+ │
│ │
v │
+----------------+ +-------------------+
| Secondary | | Arbiter |
| (복제, 장애대비) | | (데이터 없음, 투표권) |
+----------------+ +-------------------+
장점
- 서버 자원이 적게 드는 경제적인 구성
- 빠른 장애 복구 가능 (자동 Failover 제공)
단점
- Secondary 장애 시 Arbiter는 데이터가 없어 위험 증가
- 장애 발생 시 Secondary 하나만으로 운영되므로 부하가 집중될 위험
🚨 3벌식 vs PSA 구조 비교 요약
구분 | 3벌식(Primary-Secondary-Secondary) | PSA(Primary-Secondary-Arbiter) |
안정성 | ⭐⭐⭐⭐⭐ (매우 높음) | ⭐⭐⭐ (보통) |
비용 효율성 | ⭐⭐ (비용 다소 높음) | ⭐⭐⭐⭐⭐ (경제적) |
부하분산 가능성 | 가능(Secondary 분산) | 제한적(Secondary 1대만 가능) |
자동 장애 복구(Failover) | 가능(안정적) | 가능(약간의 리스크 존재) |
추천 환경 | 중~대규모 시스템, 높은 안정성 요구 | 소규모 시스템, 서버 비용 제한적 환경 |
📌 결론
- 안정성과 성능 중심이라면 3벌식 구성을 추천합니다.
- 서버 비용, 자원이 제한적인 환경에서는 PSA 구조를 고려할 수 있습니다.
몽고DB 노드별 구성요소 및 정의
Replica Set 노드 구성요소Replica Set은 MongoDB의 고가용성(High Availability)과 장애 복구(Failover)를 위한 구조입니다. 기본적으로 다음과 같은 노드로 구성됩니다.1. Primary Node (주 노드)클라이언트의 읽
make2t.tistory.com
반응형
'IT > 몽고DB' 카테고리의 다른 글
ISODate란? 국제 표준 날짜 형식 정리 (1) | 2025.03.20 |
---|---|
MongoDB TTL 인덱스 설정 및 데이터 삭제 확인 방법 (3) | 2025.03.20 |
몽고DB 노드별 구성요소 및 정의 (0) | 2025.02.23 |
몽고DB - Dirty Cache 문제 해결 (0) | 2025.02.21 |
몽고DB와 오라클 활용 전략 (2) | 2025.02.20 |