MongoDB replica set 설치(멤버 3개, keyfile 및 인증)
MongoDB난이도: 중급소요 시간: 60–90분3개 멤버로 구성된 MongoDB 8.0(또는 7.0) replica set을 처음부터 구축합니다: 공식 저장소, XFS 데이터 디렉터리, RAM에 맞춘 WiredTiger cache, keyfile을 이용한 멤버 간 인증, 권한 부여, 관리자 및 애플리케이션 사용자, read/write concern, failover 테스트, 연결 문자열. 완료하면 멤버 하나가 손실되어도 중단 없이 견디고 비밀번호로 접근하는 replica set을 갖추게 됩니다. 데이터나 쓰기 부하가 서버 한 대를 넘어서면 sharded cluster 가이드를 여십시오. 구축된 set의 일상 운영, 백업, 보안 강화는 별도 MongoDB 가이드에 있습니다.
구성: 서버 3대(primary 1 + secondary 2), 데이터를 가진 멤버는 홀수
시작하기 전에
- 모든 서버가 같은 운영체제이고 최신 상태이며, 시각이 NTP(chrony)로 동기화되어 있습니다. 멤버 간 시각 차이는 세션과 oplog 문제의 원인이 됩니다.
- RAM과 CPU가 입력한 값과 같습니다(WiredTiger cache를 이 값으로 계산). swap은 설정되어 있되 작습니다.
- 데이터 디렉터리(…)가 별도 디스크/LV에 있고, XFS로 포맷되어 noatime으로 마운트되며 fstab에 영구 등록되어 있습니다. WiredTiger에서 ext4는 성능 문제를 일으킬 수 있습니다.
- 모든 서버 이름이 모든 서버와 애플리케이션 서버에서 해석됩니다(DNS 또는 /etc/hosts). replica set 구성에는 IP가 아니라 이름을 사용합니다.
- 서버 간에 … 포트가 열려 있고 애플리케이션 네트워크가 이 포트에 접근할 수 있습니다. 포트를 다른 서비스가 사용하고 있지 않습니다.
- 서버가 repo.mongodb.org와 pgp.mongodb.com에 HTTPS로 나갈 수 있거나 사내 mirror가 설정되어 있습니다.
- 운영체제 자체 mongodb 패키지나 이전 MongoDB 설치가 없습니다.
- 첫 번째 서버에서 다른 서버로 root(또는 sudo 권한 사용자)로 scp할 수 있습니다(keyfile 복사용). 안 되면 파일을 안전한 방법으로 직접 옮기십시오.
- root 또는 sudo 권한으로 로그인했고, 유지 보수 시간대와 서버 snapshot(복구) 계획이 준비되어 있습니다.
가이드 단계
- 운영체제 준비(모든 멤버) — Hostname: … · 시스템 업데이트와 필수 도구 · 이름 해석 설정(/etc/hosts) · 커널 설정(sysctl) · sysctl 설정 적용 · Transparent Huge Pages: 8.0용 활성화 …
- MongoDB 소프트웨어 설치(모든 멤버) — MongoDB … 저장소 추가 · MongoDB … 저장소 추가 · MongoDB 설치 · 데이터 디렉터리 준비 · SELinux 정책과 레이블
- Keyfile(멤버 간 인증) — Keyfile 생성 · Keyfile을 다른 멤버로 복사 · Keyfile 권한: …
- 구성 — mongod.conf: … · systemd 설정 확인 · 방화벽에서 포트 개방
- 서비스 시작(모든 멤버) — mongod 활성화 및 시작
- Replica set 시작 및 사용자 생성 — 다른 멤버 접근 확인 · rs.initiate · 관리자 사용자 생성 · 애플리케이션 사용자 생성 · 기본 read/write concern
- 검증과 failover 테스트 — Replica set 상태 · 쓰기/읽기 테스트 · 계획된 failover 테스트(rs.stepDown) · 애플리케이션 연결 문자열
- 설치 후 작업 — 로그 로테이션 · Logrotate 시험 · 백업 계획(필수) · 모니터링 연결 · 보안: TLS와 접근