MongoDB에서 안정성과 고가용성을 보장하는 핵심 개념 중 하나는 Replica Set(복제셋)입니다. 특히, PSA 구조(Primary, Secondary, Arbiter)는 최소 자원으로 고가용성을 실현하는 효율적인 구성 방식입니다.
이 글에서는 MongoDB PSA 구조의 개념과 특징, 실제 구성 방법, 장단점을 알기 쉽게 정리했습니다. MongoDB 운영 환경을 구성하거나 클라우드 인프라 설계를 고민 중이라면 꼭 참고하세요!
🔍 MongoDB PSA 구조란?
PSA 구조는 MongoDB에서 Replica Set을 구성할 때 사용하는 세 노드 구성 방식입니다:
- P: Primary (기본 노드)
클라이언트의 읽기 및 쓰기 요청을 처리하는 주요 노드입니다. - S: Secondary (보조 노드)
Primary 노드의 데이터를 실시간 복제합니다. 필요시 읽기 전용 트래픽 분산에 활용할 수 있습니다. - A: Arbiter (중재자 노드)
데이터를 저장하지 않고, 선출 투표만 참여하는 가벼운 노드입니다.
✅ PSA 구조의 장점
- 비용 절감: Arbiter는 저장공간과 메모리를 거의 사용하지 않음.
- 고가용성 확보: 최소 3노드 구성이므로 장애 시 자동 선출 가능.
- 빠른 장애 복구: Primary 장애 시 Secondary가 자동 승격 가능.
⚠️ PSA 구조의 단점
- Arbiter는 데이터 미보유 → 데이터 내구성 낮음.
- 보안 취약 가능성 → Arbiter 노드가 해킹되면 투표 조작 가능.
- Majority Write Concern 제한: Arbiter는 데이터를 저장하지 않기 때문에 writeConcern: majority 설정 시 주의 필요.
🛠️ PSA 구성 예시
[ Primary ] <--> [ Secondary ]
\ /
\ /
[ Arbiter ]- Arbiter는 복제를 하지 않기 때문에 네트워크/스토리지 비용이 낮습니다.
- 단, 다른 노드와 물리적으로 격리된 위치에 두는 것이 권장됩니다.
🔐 운영 팁 & Best Practice
- 가능한 경우 Arbiter 대신 실제 Secondary 노드를 사용하세요.
- Arbiter는 신뢰할 수 있는 내부 네트워크에 배치하세요.
- 클라우드 환경에서는 3개의 가용영역(Availability Zone)에 분산하세요.
📌 결론
MongoDB의 PSA 구조는 리소스가 제한된 상황에서 최소한의 비용으로 고가용성을 확보할 수 있는 훌륭한 전략입니다. 하지만 데이터 무결성과 복제 안정성이 중요한 서비스라면 Arbiter 대신 Full Secondary를 사용하는 것이 바람직합니다.