CentOS7 에 Mongodb 설치하기

Posted by Everyharu
2016. 4. 21. 16:30 IT/Mongodb

최근에는 nosql 열풍도 조금 주춤해지는것일까 아니면 점점 성숙해지고 있는것일까? 잘은 모르겠다. 하지만 그동안 redis같은 캐시외에는 쓸일이 없어서 사용하지 않던 nosql 을 사용할일이 생겼다.

어떤 DB던지 그 DB의 특성을 모르고 사용한다면 나중에 반드시 문제가 생기기 마련이기에 이번에 진행할 프로젝트에서 사용할 db를 고르던차에 어쩌면 mongodb가 잘 어울릴것 같다는 생각이 들었다. 그래서 약간의 조사를 마치고 mongodb가 초기모델에 적합한 DB라고 결론내리고 개발서버를 구축하기 시작했다.


기본적으로 서버환경은 CentOS7 Minimal 설치이다. 어차피 라이브서버에서 사용할 환경과 똑같이 맞춰주는게 좋다.


기본적인 리눅스 기본세팅과 설치과정은 생략하겠다.

****현재 최신 stable release인 3.25 버전의 Mongodb 를 centos7에 설치시에 service로 실행되지 않는 문제가 발생합니다. 그렇다고 매번 시스템을 킬때마다 root로 접속해서 mongodb를 올려주거나 하는것은 문제가 있습니다. 때문에 이전릴리즈로 설치하여야하는데 바로전 버전인 3.24도 있지만 직전 릴리즈보다는 안정화되어 공개된것으로 보이는게 낫다고 생각하기에 3.0.11 버전으로 설치합니다. ****

(CentOS7.2 minimal 환경에서 되지 않는다. 필자가 여러번 시도했지만 되지않았고 서치해봤을떄도 역시 해결되지 않았다. 이 부분은 특정 환경에 대한 문제인지 아니면 mongodb의 특정버전 문제인지 모르겠지만 현재 몇일전에 올라온 해외사이트에서의 질문이 답변되지 않고있다.
https://groups.google.com/forum/#!topic/mongodb-user/GSwNidxA9kE

)

본격적으로 mongodb 를 설치해보도록 하자.


이 글을 쓰는 현 시점에서 mongodb 의 설치페이지를 확인해보자.

현재 stable release 는 3.2.5 버전이다. - 하지만 우리는 이전 릴리즈인 3.0.11 을 설치한다.

원문  : https://docs.mongodb.org/v3.0/tutorial/install-mongodb-on-red-hat/


1. vim /etc/yum.repos.d/mongodb-org-3.0.repo 으로 repo파일 생성

2. 열린 파일에 다음을 입력하고 저장.


[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1


3. sudo yum install -y mongodb-org

4. yum update시에 mongodb 가 함께 자동으로 업데이트되는것을 방지하기 위한 코드를 추가.

vim /etc/yum.conf

exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

5. CentOS7을 설치해보면 기본적으로 selinux 가 켜져있다. 필자의 경우에는 보안을 위해 이를 절대 끄지 않는다. 일부 사이트들에서 이를 끄는것은 소개하는 경우가 종종 있는데 절대 끄지 말기를 바란다. 이는 우리가 해커로부터 예상치 못한 공격을 당하는것을 굉장히 잘 막아준다. 대신 mongodb를 사용할 수 있도록 약간의 세팅이 필요하다.

yum install policycoreutils-python

설치한 policycoreutils-python는 semanage 라는 selinux 관리를 위한 툴을 사용하기 위한 패키지이다.

6. selinux에 mongodb의 기본포트를 추가해준다.
semanage port -a -t mongod_port_t -p tcp 27017

7. 방화벽에서 mongodb의 포트를 열어준다.
firewall-cmd --permanent --zone=public --add-port=27017/tcp
firewall-cmd --reload
firewall-cmd --list-all

8. 시작프로그램에 mongodb를 설정해놓자.

sudo systemctl enable mongod
sudo systemctl start mongod



현재 업데이트된 버전은 수정이 되었습니다. 요약본으로 다시보세요
http://haru.kafra.kr/15