Tagged: MongoDB 설치

MongoDB 설치 및 환경설정

mongodb logo

이 글은 MongoDB 설치 및 환경설정에 관한 글이다. 환경설정은 슈퍼유저의 인증을 설정하는 것까지 한다.

Download and Extract

Mongodb 는 Binary 배포를 하고 있다. 홈페이지에 접속해서 설치할 컴퓨터의 운영체제에 맞는 압축 파일을 다운로드 하면 된다. Downlaod URL 도 제공하기 때문에 서버에서 wget, curl 을 이용해서 바로 다운로드도 할 수 있다.

Binary 파일이기 때문에 압축해제 하기만하면 설치가 완료 된다. 압축을 해제하고 나면 다음과 같은 파일들이 나온다.

보면알겠지만 달랑 실행을 위한 디렉토리와 파일만 존재한다. 이제 하나하나 설정을 해보자.

디렉토리 생성

먼저, 디렉토리를 생성해야 한다. 설정파일을 담을 디렉토리, 로그 파일을 담을 디렉토리, 데이터를 저장할 디렉토리등이다.

디렉토리를 생성하고 나면 위와같은 상태가 된다.

mongod.conf 파일 생성

mongodb 를 운영하기 위해서는 설정파일이 필요하다. 이를 위해서 설정파일을 생성해야 한다. 이는 다음의 주소에서 샘플을 구할 수 있다.

기본적인 내용만 되어 있다. 하지만 mongodb 는 Replica set 를 염두해야하기 때문에 이를 위한 설정을 포함하면 다음과 같다.

위 설정 파일을 실제 서버에서 운영하기에는 문제가 있다. 문제가 될만한 설정들은 다음과 같다.

  • cacheSizeGB – 엔진의 캐쉬 크기이다. 메뉴얼에 따르면 최소 1GB 이상이여야 한다.
  • oplogSizeMB – 리플리케이션을 위한 로그 파일 크기다. 메뉴얼에 따르면 활용가능한 디스크 공간의 5% 다.

실제 서버에서 운영한다면 위 두개의 파라메터를 반드시 운영환경에 맞게 설정을 해야한다. 그리고 운영환경을 위해서 슈퍼유저에 대한 인증을 반드시 설정해야 한다.

슈퍼유저 인증 설정

MongoDB 는 설치를 완료하고 나면 아무런 보안 설정이 없다. 누구나, 아무나 슈퍼유저가 될수 있다. 이를 제안하기 위해서 슈퍼유저에 인증을 설정해야 한다. 이는 서버를 구동하고 나서 해야 한다.

mongod.conf 의 인증과 Replica set 을 해제한 상태에서 해야지만 가능한다. 만일 최초 설치 후에 securiry, replication 부분이 설정이 되어 있다면 위 명령어는 듣지 않는다.

keyFile 생성

keyFile 은 sharded cluster 나 replica set 을 위해서는 keyFile 을 필요로한다. 각 노드간 자신들의 멤머인지 아닌지를 알기 위한 수단이 된다. 이 파일은 각 노드마다 모두 동일해야 한다.

shared cluster, replica set 을 구성한다면 구성을 위한 서버에 이 파일을 각각 배포를 해야 한다.

그리고 다음과 같이 mongod.conf 파일에 keyFile 을 인식시켜준다.

위와 같이 한 후에 서버를 다시 시작한다. (앞에서 서버를 shutdown 시켰놨었다.)

위와같이 서버로 접속하고 정상적으로 인증이 될 경우에 ‘1’ 을 리턴한다. 그리고 명령어를 쳐보면 실행이 되는 것을 알 수 있다.