✅ 1. MongoDB 5.0 지원 종료 사실

MongoDB 5.0은 2024년 10월부로 End of Life(EOL) 입니다.
→ Security patch 포함 지원 없음, CVE 발생 시 패치 불가

현재 지원되는 LTS 버전은:

  • 6.0 LTS
  • 7.0 LTS

즉, 실질적 업그레이드 목표는:

 
5.0 → 6.0 → 7.0

(6.0을 LTS로 오래 운영해도 됨)

MongoDB는 메이저 버전 건너뛰기 업그레이드를 허용하지 않습니다.
5 → 7로 직접 업그레이드하면 ReplicaSet 자체가 깨집니다.


✅ 2. “서비스 중단 없이” 업그레이드할 수 있는 구조

현재 EC2 3대로 구동 중이라면 아마 아래 형태일 거예요:

 
Replica Set - Primary - Secondary - Secondary

이 구조에서는 롤링 업그레이드(Rolling Upgrade) 를 사용하면
서비스 중단 없이 업그레이드 가능합니다.


✅ 3. 정식 업그레이드 절차 (MongoDB 공식 절차 기반)

전체 플로우

 
1) Pre-check (호환성, 스토리지 엔진, Feature Compatibility Version) 2) Secondary 1대 업그레이드 3) Secondary 2대 업그레이드 4) Primary를 Step Down 후 업그레이드 5) FCV 변경 6) 클러스터 정상화 확인

아래에 실제 현장에서 쓰는 구체 절차를 적어볼게요.


🔥 4. 실제 상세 절차

Step 0 — 백업/스냅샷 생성

  • EC2 EBS Snapshot
  • 혹은 mongodump
    → 실패 시 즉각 롤백 가능하게

Step 1 — 사전 체크

mongo 콘솔에서:

 
db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })

FCV가 5.0이어야 정상.

또한:

 
rs.status() rs.conf()

오류 없는지 확인.


Step 2 — Secondary 한 대를 업그레이드

  1. Secondary 한 대를 선택
  2. mongod 종료
 
sudo systemctl stop mongod
  1. MongoDB 6.0 패키지 설치
    (amazon linux / ubuntu에 따라 다름 — 필요하면 상세 스크립트 제공 가능)
  2. 재기동
 
sudo systemctl start mongod
  1. 클러스터 정상 합류 확인
 
rs.status()
  1. oplog sync OK 확인

→ 이 서버가 6.0으로 잘 돌아가면 계속 진행.


Step 3 — 나머지 Secondary도 동일 절차로 업그레이드


Step 4 — Primary 업그레이드

Primary는 직접 Upgrade 하면 다운타임 위험 있으므로:

  1. Primary를 강제로 step down
 
rs.stepDown()

→ 다른 Secondary가 Primary가 됨
서비스 중단 없음

  1. 기존 Primary 서버를 mongod stop
  2. MongoDB 6.0 설치 후 start

Step 5 — FeatureCompatibilityVersion 변경

모든 노드가 6.0에서 정상적으로 올라온 뒤:

 
db.adminCommand({ setFeatureCompatibilityVersion: "6.0" })

Step 6 — 정상 동작 확인

  • rs.status()
  • replication lag 확인
  • 애플리케이션 write/read 정상 동작 확인
  • op log 증가 확인
  • mongod.log 에 error 없는지

🔁 6. (선택) 6.0 → 7.0 업그레이드

같은 방식으로 “롤링 업그레이드” 하면 됩니다.

 
5.0 → 6.0 → 안정화 후 → 7.0

바로 7.0까지 갈 필요 없으면 6.0 LTS 유지해도 안전합니다.


⚠️ “바로 5.x → 7.x or 5.x → 5.9.x” 하면 안 되는 이유

  • MongoDB는 메이저 버전 건너뛰기 허용 안함
  • WiredTiger 스토리지 메타데이터가 다름
  • FCV 매커니즘 때문에 클러스터 자체가 올라오지 않음
  • 5.9는 정식 릴리즈가 아님 (개발 프리뷰)

🧩 추가 고려사항 (실무에서 꼭 필요)

✔︎ 바뀌는 parameter / deprecated 기능

  • setParameter, replication.enableMajorityReadConcern 같은 값의 호환성 체크

✔︎ Driver 버전 업데이트

Node/Java/Python에서 MongoDB Driver도 버전 호환 필요

  • 6.x 이상에서는 5.x 드라이버가 deprecated 되는 경우 있음

✔︎ Monitoring (CloudWatch/Datadog/Prometheus)

업그레이드 후 connection pool 동작이 달라질 수 있음


🎯 최종 요약

MongoDB 5.0 → 6.0 롤링 업그레이드 절차

  1. Snapshot/백업 생성
  2. FCV 확인
  3. Secondary 1 업그레이드 → 정상 확인
  4. Secondary 2 업그레이드
  5. Primary stepDown → 업그레이드
  6. 6.0 전체 업 후 FCV 6.0 설정
  7. 정상 동작 확인
  8. (선택) 같은 방식으로 7.0까지 업그레이드 가능

👉 서비스 중단 없음 (Zero downtime 유지 가능)
👉 메이저는 반드시 계단식 업그레이드 (5 → 6 → 7)

Posted by yongary
,