Post

MongoDB 설치 및 세팅

설치

절차

본 설치 절차는 ubuntu 20.04를 기준으로 작성되었다.

  1. public key 가져오기
    1
    
    $ wget -qO - https://www.mongodb.org/static/pgp/server-{버전}.asc | sudo apt-key add -
    

    {버전} 안에는 필요한 버전을 입력하면 되며 현재 있는 버전에 대해서 확인하고 싶다면 https://www.mongodb.org/static/pgp 에 접속하면 현재 받아올 수 있는 버전의 public key에 대해서 확인할 수 있다. key 가져오기에 성공하면 OK라고 찍힌다.

  2. 레포지토리 리스트에 Mongodb 추가
    1
    
    $ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/{버전} multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-{버전}.list
    

    위와 마찬가지로 {버전}에는 1에서 가져온 key의 버전을 입력해준다.

  3. 등록한 리스트를 설치시 반영할 수 있도록 업데이트 해준다.
    1
    
    sudo apt-get update
    
  4. MongoDB를 설치해준다.
    1
    
    sudo apt-get install -y mongodb-org
    

그러면 설치가 진행된다. 설치 했다고 끝이 아니다. 프로세스를 관리하기 위해서는 ubuntu가 어떤 init 시스템을 쓰는지 알아야한다. 다음 명령어를 입력해보자.

1
ps --no-headers -o comm 1

출력 결과에 따라 현재 ubuntu가 사용하고 있는 init 시스템이 다르다.

  • systemd : systemctl
  • service : service
  1. 서비스 구동 상태를 확인해준다. ```shell #systemctl 일경우 systemctl status mongod

#service 일 경우 service mongod status

1
2
3
4
5
6
7
8
9
10
결과가 active(running) 이라고 뜬다면 설치가 잘 되고 잘 구동되고 있는 것이다.

## 보안 설정
추가적으로 해야할 보안 설정이 있다.

### 계정 추가
다음 명령어를 입력하여 mongo shell에 엑세스 한다.
```shell
mongo

현재 계정 및 보안 설정이 아무것도 되어 있지 않으므로 바로 들어가진다. 일단 admin db를 사용한다.

1
use admin

이후 사용자를 만드는데, 일단 root 계정을 만들도록 하자

1
2
3
4
5
6
7
db.createUser(
  {
    user: "사용할 아이디",
    pwd:  "사용할 비밀번호",
    roles: [{ "role" : "root" }]
  }
)

이렇게 계정을 만들고 나서 ctrl+c로 mongo 쉘을 벗어난다 이후 init 시스템을 이용하여 mongodb를 잠시 셧다운 시킨다.

1
2
3
4
5
#systemctl 일경우
systemctl stop mongod

#service 일 경우
service mongod stop

config 파일 수정

설치하게되면 ubuntu 기준으로 /etc 경로에 mongod.conf라는 설정 파일이 생긴다. 여기의 몇몇 가진 파라미터를 바꾸어줘야하는데 당장 바꾸어줘야하는 내용은 아래와 같다.

1
2
3
4
5
6
7
8
9
10
...
net:
  port: 27017 // DB를 구동하는 PORT 
  bindIp: 0.0.0.0 // 접근 가능한 IP 제한

...
security:
  authorization: enabled // enabled시 db 접근시 인증 확인
...

이후 다시 mongod.conf 파일을 저장한 뒤 서비스를 다시 구동하면 된다.

1
2
3
4
5
#systemctl 일경우
systemctl start mongod

#service 일 경우
service mongod start

이렇게되면 DB에 접근 제한이 풀리고 당장 실습할 환경이 마련된다.
DB 설치마다 찾아보기 귀찮아서 하나 포스팅 해두는 것이며 그 다음 포스팅에는 세팅에 대해 세부 사항을 알아보겠다.

참고자료

This post is licensed under CC BY 4.0 by the author.