전 글 MongoDB 기본 세팅 후 Replica setting을 할 때 참고하기 위한 글이다.
OS: amazon-linux-2
Mongo Version: 4.2.24
참고 링크: Mongo Replication
Replica set을 설정하기 전 보안 설정이 필요하다.
mongo # mongo-cli 접속
use admin # admin db로 전환
db.createUser({user:"유저 이름", pwd: "password", roles: ["root"]}) # root 권한 유저 생성
openssl rand -base64 756 > /etc/mongo-keyfile
vim /etc/mongod.conf
security:
authorization: enabled
keyFile: /etc/mongo-keyfile
Keyfile은 어떠한 방법으로 생성해도 무관한데, base64 character set 로만 이루어진 6-1024자의 파일로 생성해야 한다.
chown mongod /etc/mongo-keyfile
chmod 600 /etc/mongo-keyfile
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가 발생하면 /var/log/mongod/mongod.log 에서 에러가 발생 로그를 확인한다.
Failed to unlink socket file /tmp/mongodb-27017.sock Operation not permitted