MongoDB Replica Set 설정

nagang·2023년 5월 28일
0

MongoDB

목록 보기
2/3
post-thumbnail

MongoDB 기본 세팅

전 글 MongoDB 기본 세팅 후 Replica setting을 할 때 참고하기 위한 글이다.

OS: amazon-linux-2
Mongo Version: 4.2.24

참고 링크: Mongo Replication
Replica set을 설정하기 전 보안 설정이 필요하다.

MongoDB 인증 설정

  • mongo root 권한 유저 만들기
mongo # mongo-cli 접속
use admin # admin db로 전환
db.createUser({user:"유저 이름", pwd: "password", roles: ["root"]}) # root 권한 유저 생성
  • 몽고 DB 인증 설정
openssl rand -base64 756 > /etc/mongo-keyfile
vim /etc/mongod.conf

security:
  authorization: enabled
  keyFile: /etc/mongo-keyfile

Keyfile은 어떠한 방법으로 생성해도 무관한데, base64 character set 로만 이루어진 6-1024자의 파일로 생성해야 한다.

  • keyFile 사용 권한 부여
chown mongod /etc/mongo-keyfile
chmod 600 /etc/mongo-keyfile

Replica set 설정하기

vim /etc/mongod.conf

replication:
   replSetName: "rs0" // replica set 이름은 자유롭게 설정 가능하다.
   
mongo // mongo-cli 접속
use admin
db.auth({user:"유저 이름", pwd: "password"}) // root 권한을 가진 mongo user로 로그인
rs.initiate({_id: "rs0", members: [{_id: 0, host: "{hostname}:27017"}]})
rs.add({hostname:27017}) // secondary 설정
rs.addArb({hostname:27017}) // arbitor 설정

아래 명령어를 통해 replica set이 정상적으로 끝났는지 확인한다.

rs.status() // root user로 로그인 후 진행

발생 Error 처리

Error가 발생하면 /var/log/mongod/mongod.log 에서 에러가 발생 로그를 확인한다.

Failed to unlink socket file /tmp/mongodb-27017.sock Operation not permitted
  • /tmp/mongodb-27017.sock 파일에 대한 권한이 없는 것으로 삭제하거나 권한을 주면 된다.
profile
backend 개발자입니다.

0개의 댓글