MongoDB 설치하기

MongoDB 설치

EC2 설치 또는 Linux OS 환경 구성이 선행되었다는 가정하에 MongoDB 를 설치해보겠다. 그리고 해당 방법의 기준 OSAmazon Linux 2 로 결정하였다. 다양한 OS 의 설치 방법은 MongoDB 공식 홈페이지에서도 충분히 잘 설명해주고 있는 것 같다.

MongoDB 설치 방법은 2가지 방법으로 정리하였다.

  1. yum 활용한 설치 방법
  2. Tarball 활용한 설치 방법

인터넷망이 제한되는 환경인 경우, 공식 홈페이지에서 tar 파일을 받아서 설치하는 방법도 함께 정리하였다.


yum 활용한 설치 방법

1. yum 으로 설치하기 전에, yum 설정에 MongoDB 관련 설정 파일이 추가한다.

$ vi /etc/yum.repos.d/mongodb-org-5.0.repo

# /etc/yum.repos.d/mongodb-org-5.0.repo
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

2. yum install 를 통해서 MongoDB 설치

# mongodb 기본 설치
$ sudo yum install -y mongodb-org

# 특정 release 의 패키지를 설치 싶을 때
$ sudo yum install -y mongodb-org-5.0.2 mongodb-org-database-5.0.2 mongodb-org-server-5.0.2 mongodb-org-shell-5.0.2 mongodb-org-mongos-5.0.2 mongodb-org-tools-5.0.2

# 특정 패키지를 제외하고 설치하고 싶을 때 `/etc/yum.conf` 수정
exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

3. MongoDB 프로세스 실행

# 프로세스 실행
$ sudo systemctl start mongod
# `Failed to start mongod.service: Unit mongod.service not found.` 에러 발생한 경우, 아래 명령어 실행후 재실행
$ sudo systemctl daemon-reload
# 프로세스 상태 확인
$ sudo systemctl status mongod
# 재부팅후 상태 확인하기
$ sudo systemctl enable mongod
# 프로세스 중지
$ sudo systemctl stop mongod
# 프로세스 재시작
$ sudo systemctl restart mongod
Init System

리눅스 환경에서 MongoDB 의 프로세스 실행하고 관리하기 위해서 init system 을 사용하게 된다.
최신 리눅스 환경에서는 systemd 를 사용을 주로하지만, 이전 버전에서는 System V init 를 사용하는 경우가 있고, 그 둘의 실행 방법은 다르기 때문에 아래와 같은 명령어로 확인할 수 있다.

$ ps –no-headers -o comm 1


Tarball 활용한 설치 방법

1. MongoDB Server .tgz 파일 다운로드

MongoDB Community Edition Download

  • 공식 사이트에서 현재 설치하고자 하는 OS 체제 버전에 맞는 파일을 다운로드

Linux 환경 OS 확인 방법 : $ cat /etc/os-release

2. .tgz 파일 설치

$ tar -zxvf mongodb-linux-*-7.0.1.tgz

3. MongoDB /bin 파일 이동

$ sudo cp /path/to/the/mongodb-directory/bin/* /usr/local/bin/
  • 아래 3개의 파일이 이동된다.
    • mongod
    • mongos
    • install_compass

4. MongoDB Shell 다운로드 & 설치

MongoDB Shell Download

$ tar -zxvf mongosh-1.10.6-linux-x64.tgz
$ sudo cp /path/to/the/mongosh-directory/* /usr/local/bin/
  • 아래 2개의 파일이 이동된다.
    • mongosh
    • mongosh_crypt_v1.so

5. MongoDB Default 디렉토리 생성

# create new directory
$ sudo mkdir -p /var/lib/mongo
$ sudo mkdir -p /var/log/mongodb
# change owner & group
$ sudo chown -R mongod:mongod /var/lib/mongo
$ sudo chown -R mongod:mongod /var/log/mongodb
  • /var/lib/mongo : data directory
  • /var/log/mongodb : log directory

Camael’s note - MongoDB 데이터 파일 구조

6. MongoDB 실행 & 접속

# run database
$ mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
# connect database
$ mongosh "mongodb://localhost:27017"

MongoDB 설정 및 외부 접속

1. MongoDB 접속 가능 IP 정보 변경

/etc/mongod.conf 파일에서 bindIp127.0.0.1 인 부분을 0.0.0.0 으로 수정

$ vi /etc/mongod.conf

# network interfaces
net:
   port: 27017
   bindIp: 0.0.0.0  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.

2. 계정 생성

# `MongoDB` 접속
$ mongo

# `admin` 계정 생성
use admin
db.createUser({
    user: "<username>",
    pwd: "<password>",
    roles: [
        "userAdminAnyDatabase",
        "dbAdminAnyDatabase",
        "readWriteAnyDatabase"
    ]
})

# `customDB` 계정 생성
use <customDB>
db.createUser({
    user: "<username>",
    pwd: "<password>",
    roles: [
        "dbAdmin",
        "readWrite"
    ]
})

MongoDB 계정 삭제하는 방법

use <customDB>
db.dropUser(“<username>”)

3, EC2 보안 그룹 설정 변경

  • MongoDB 접속 port(default: 27017) 맞게 인바운드 규칙 추가

4. MongoDB 외부 접속

  • EC2 host url 과 MongoDBport 사용하여 정상 접속 확인!

MongoDB 백업 & 복구

  • MongoDB Database Tools 설치
  • mongodump 사용 방법
  • mongorestore 사용 방법

출처