MongoDB에서 안정성과 고가용성을 보장하는 핵심 개념 중 하나는 Replica Set(복제셋)입니다. 특히, PSA 구조(Primary, Secondary, Arbiter)는 최소 자원으로 고가용성을 실현하는 효율적인 구성 방식입니다.

이 글에서는 MongoDB PSA 구조의 개념과 특징, 실제 구성 방법, 장단점을 알기 쉽게 정리했습니다. MongoDB 운영 환경을 구성하거나 클라우드 인프라 설계를 고민 중이라면 꼭 참고하세요!


🔍 MongoDB PSA 구조란?

PSA 구조는 MongoDB에서 Replica Set을 구성할 때 사용하는 세 노드 구성 방식입니다:

  • P: Primary (기본 노드)
    클라이언트의 읽기 및 쓰기 요청을 처리하는 주요 노드입니다.
  • S: Secondary (보조 노드)
    Primary 노드의 데이터를 실시간 복제합니다. 필요시 읽기 전용 트래픽 분산에 활용할 수 있습니다.
  • A: Arbiter (중재자 노드)
    데이터를 저장하지 않고, 선출 투표만 참여하는 가벼운 노드입니다.


✅ PSA 구조의 장점

  1. 비용 절감: Arbiter는 저장공간과 메모리를 거의 사용하지 않음.
  2. 고가용성 확보: 최소 3노드 구성이므로 장애 시 자동 선출 가능.
  3. 빠른 장애 복구: Primary 장애 시 Secondary가 자동 승격 가능.


⚠️ PSA 구조의 단점

  1. Arbiter는 데이터 미보유 → 데이터 내구성 낮음.
  2. 보안 취약 가능성 → Arbiter 노드가 해킹되면 투표 조작 가능.
  3. Majority Write Concern 제한: Arbiter는 데이터를 저장하지 않기 때문에 writeConcern: majority 설정 시 주의 필요.


🛠️ PSA 구성 예시

[ Primary ] <--> [ Secondary ]
       \           /
        \         /
         [ Arbiter ]
  • Arbiter는 복제를 하지 않기 때문에 네트워크/스토리지 비용이 낮습니다.
  • 단, 다른 노드와 물리적으로 격리된 위치에 두는 것이 권장됩니다.


🔐 운영 팁 & Best Practice

  • 가능한 경우 Arbiter 대신 실제 Secondary 노드를 사용하세요.
  • Arbiter는 신뢰할 수 있는 내부 네트워크에 배치하세요.
  • 클라우드 환경에서는 3개의 가용영역(Availability Zone)에 분산하세요.


📌 결론

MongoDB의 PSA 구조는 리소스가 제한된 상황에서 최소한의 비용으로 고가용성을 확보할 수 있는 훌륭한 전략입니다. 하지만 데이터 무결성과 복제 안정성이 중요한 서비스라면 Arbiter 대신 Full Secondary를 사용하는 것이 바람직합니다.