🛠️ MongoDB DBA가 꼭 챙겨야 할 관리 포인트 정리
MongoDB를 운영 환경에 도입했다면, 이제부터는 DBA 입장에서의 관리 전략이 중요합니다.
이 글에서는 MongoDB를 안정적으로 운영하기 위한 주요 관리 포인트를 하나씩 짚어볼게요.
1️⃣ 운영 환경 구성
✅ Replica Set
- MongoDB 고가용성을 위한 기본 구성
- 최소 3개 이상의 노드 구성: 1 Primary + 2 Secondary
- 자동 Failover 지원
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "mongo1:27017" },
{ _id: 1, host: "mongo2:27017" },
{ _id: 2, host: "mongo3:27017" }
]
});
✅ Sharding
- 수평 확장(Scale-out)을 위한 기능
- 샤드 키(Shard Key) 선정이 매우 중요
- 불균형 파티셔닝은 성능 저하로 이어짐
📌 샤딩은 반드시 트래픽 패턴 기반으로 설계해야 합니다.
2️⃣ 모니터링 포인트
운영 환경에서는 지속적인 모니터링이 필수입니다.
🧪 주요 명령어
mongostat
: 실시간 트래픽 확인mongotop
: 컬렉션별 읽기/쓰기 시간 확인
📊 MongoDB Atlas Monitoring
- CPU, 메모리, IOPS, 컬렉션별 쿼리 수행 시간
- Slow Query Analytics 제공
🔍 300ms 이상 걸리는 쿼리는 slow query log로 추적하세요.
3️⃣ 성능 최적화
✅ 인덱스 관리
- 쿼리에 사용되는 필드는 인덱스 필수
- 복합 인덱스는 순서 중요 (
{ a: 1, b: 1 }
)
✅ 쿼리 분석
db.collection.find({ a: 1 }).explain("executionStats")
- COLLSCAN → 인덱스 미사용 경고
- IXSCAN → 인덱스 정상 사용
✅ Write Concern / Read Concern
- 데이터 일관성을 위해 적절히 조정 필요
- 기본:
{ w: "majority" }
4️⃣ 백업과 복구
🧰 mongodump & mongorestore
# 백업
mongodump --out=/data/backup
# 복구
mongorestore /data/backup
🌀 Point-in-Time 복구 (MongoDB Atlas)
- 클러스터 설정 시 PITR(지점 복구) 설정 가능
- 실수로 인한 삭제/변경 복구에 유용
5️⃣ 사용자 권한과 보안
🔐 Role-Based Access Control (RBAC)
read
,readWrite
,dbAdmin
등 역할 기반 권한- 운영 계정에는 최소 권한 부여 원칙 적용
🔒 인증 & 암호화
- 비밀번호 인증 기본
- LDAP, Kerberos 등 외부 인증 연동 가능
- 데이터 암호화: TLS/SSL + Encryption-at-Rest
6️⃣ 장애 대응 체크리스트
- Primary 전환 감지 (rs.status())
- Secondary 복제 지연 확인 (Replication Lag)
- 디스크 공간, 커넥션 수 상시 모니터링
- 애플리케이션에서 재시도 로직 포함 여부 확인
📍 MongoDB는 장애 발생 시 자동 복구 기능이 있지만, DBA의 사전 대응 설계가 핵심입니다.
✅ 마무리 요약
- Replica Set은 기본, Sharding은 상황에 따라
- 인덱스/쿼리 분석은 성능 유지의 핵심
- 권한 관리와 백업은 운영 안정성의 필수 요소
- Atlas 활용 시 시각화된 모니터링과 자동 백업이 장점
도움이 되셨다면 공감과 구독도 부탁드립니다! 😊
'NoSQL > MongoDB' 카테고리의 다른 글
[MongoDB] RDBMS DBA 관점에서의 MongoDB 커리큘럼 (0) | 2025.04.25 |
---|---|
[MongoDB] 성능 튜닝 실전편: 인덱스 전략과 Aggregation Pipeline 최적화 (0) | 2025.04.21 |
[MongoDB] MongoDB 운영 중 자주 발생하는 문제와 실전 대응법 (0) | 2025.04.20 |
[MongoDB] MongoDB OpLog 변경하기 (0) | 2025.04.18 |
[MongoDB] MongoDB 기본기, RDBMS와 비교하며 쉽게 이해하기 (0) | 2025.04.18 |