MongoDB Community Edition 4.2 설치 - ARM64 Ubuntu/Debian Armbian
MongoDB에 관련 글
MongoDB Community Edition Installations 시리즈:ㅇ
MongoDB Tutorials 시리즈:
MongoDB와 Middleware Platform:
이전 버전과 기타 자료:
- MongoDB User Authentication
- MongoDB Community Edition 3.6 on Ubuntu(ARM64)
- Mongodb 3.4 install on Armv8
- Raspberry Pi 3 64bit OS openSUSE: Build MongoDB 3.4
Install MongoDB 4.2 Community edition 설치
이 문서는 Arm64 기반 CPU를 사용하는 Raspberry Pi, Odroid, PINE64, OrangePi 등 SBC 지원 보드 계열 위에서 Ubuntu/Debian 에서 설치 및 사용 가능한 MongoDB Community Edition 4.2 버전을 설치하고 구성하는 과정을 정리하고 있다.
MongoDB Community Edition 버전 Amd64, Arm64 의 설치는 Install MongoDB Community Edition on Debian 에서 제공하고 있다.
하지만 Arm64를 지원하는 Odroid C2, PINE64, OragePi 등 SBC 브드의 Armbian, Ubuntu 오에스에서 MongoDB Community Edition 을 저장소에서 apt 명령으로 직접 설치가 안되서 작은 트릭 이 필요하다.
- MongoDB Community Edition 4.2 설치
- systemd 사용이 가능한 mongod Unit 파일 구성
MongoDB Community Edition 은
MongoDB Community Edition 은 다음 패키지를 지원하고 있다:
mongodb-org
: 다음 패키지를 설치하기 위한 메타 패키지mongodb-org-server
:mongod
daemon 과 구성 및 초기 스크립트.mongodb-org-mongos
:mongos
daemon.mongodb-org-shell
:mongo
shell.mongodb-org-tools
: MongoDB 유틸리티.- mongoimport, bsondump, mongodump, mongoexport, mongofiles, mongoperf, mongorestore, mongostat, and mongotop.
테스트한 플랫폼
64bit Arm을 지원하는 Armbian/Ubuntu 배포본을 사용했다.
Armbian 기반:
- PINE64: 64bit, Armbian
- Hardkernel Odroid C2: 64bit, Armbian
사전준비
설치를 위해 MongoDB Community Edition 을 지원하는 저장소를 위한 키 저장소를 구성해
레포지토리 등록
인증된 .dpkg
, .apt
패키지를 설치하기 위해, 아래 처럼 서버의 키를 등록한다.
키 서버 등록
Install MongoDB Community Edition on Debian 에 있는데로 apt 저장소를 위한 키 서버를 등록한다.
1 | $ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add - |
사용한 키가 필요 없어서 키 서버 저장소 목록을 지우려면 apt-key 명령으로 삭제할 키 해시 8자리 코드를 확인한다.
1 | $ sudo apt-key list |
이 키를 삭제한다.
1 | $ sudo apt-key del A15703C6 |
MongoDB용 소스 리스트 추가
키 서버를 등록했으면 apt의 source list에 mongodb repository를 등록해야 한다. Ubuntu 16.04, 18.04 그리고 Debian Stretch/Buster with Armbian 에서 MongoDB Community Edition에 대한 저장소 source list 를 아래 같이 등록해서 사용하겠다.
아래 명령은 /etc/apt/sources.list.d/mongodb-org-4.2.list
파일을 생성하고 apt 소스 목록을 추가한다. 단, 저장소의 구분 이름인 multiverse 를 꼭 지정해 주자.
1 | echo "deb [ arch=arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list |
보통 APT 계열의 저장소를 위한 소스 리스트는 아래 같이 구성된다.
deb URL 배포판명 구분명
마지막 구분명은 쓰이는 용도에 따라 main, universe, multiverse 등으로 구분이 되어 있다.
설치
apt
명령으로 저장소 소스의 캐시를 갱신하고 mongodb-org 커뮤니티 버전 mongodb를 설치한다.
1 | $ sudo apt update |
설치 중에 mongodb 3.x, 4.x 버전은 데이터를 저장하는 파일 시스템으로 xfs 를 권장하고 있어서 경고 메시지를 출력하는데 일단 무시한다.
apt로 특정 버전을 설치하려면 다음 같이 버전을 명시한다.
1 $ sudo apt-get install -y mongodb-org=4.1
무사히 설치를 완료하면 systemd 의 유니트가 추가되어 mongod
서비스를 통해 관리할 수 있다.
설치 확인
systemctl 로 mongod 데몬이 동작을 확인해 보자, systemctl 로 서비스를 종료했다 재시작 해보자
1 | $ sudo systemctl stop mongod.service |
mongod 가 정상적으로 동작하는지 status 상태를 확인해 보자.
1 | $ systemctl status mongod.service |
여기까지 Arm64 기반 Debian Buster인 Armbian 시스템에 Mongodb Community Edition 4.2 버전을 설치하는 과정을 진행했다.
mongod
서비스가 제대로 실행됐으면 mongo
클라이언트로 테스트해 볼 수 있으면 접속해 볼 수 있는데, 연결을 위해 mondod.conf 라는 구성 파일을 다루어 보자.
설치 위치
MongoDB Community Edition이 설치되면 요구되는 파일 및 폴더가 다음 위치에 생성된다.
- /var/lib/mongodb : 기본 데이터 파일 위치
- /var/log/mongodb : 기본 로그 저장 폴더
- /etc/mongod.conf : mongod 구성 파일. 로그, 데이터 위치 등을 변경 가능
이제 데이터베이스 시스템을 사용하기 위한 데이터 파일, 네트워크 구성 및 인증 방법을 구성해야 한다. 실제 데이터 베이스 운영을 위해서 구성 파일인 mongod.conf
파일을 사용이 필요하면 이어지는 글을 참조하자.
만약 MongoDB community edition을 위 방법같이 설치를 했는데 systemctl 명령으로 찾지 못하면 아래 systemd unit 파일에 대한 글을 참조해서 추가해 주면 된다.
systemd unit 파일
Armbian 에서 설치중 systemd unit 설정 파일과 MongoDB 시스템 계정 등이 생성되지 않는 경우가 있었다.
- mongodb-org 설치후 systemd Unit 파일이
/etc/init.d
에 복사되지 않는 경우 - 여기서는 odroid-c2 armbian 설치 상태, 일반 리눅스 배포본은 잘 된다.
systemd 를 사용하기 위해서 MongoDB 서버 Daemon을 위한 Unit 파일을 아래를 따라 손으로 생성해 주면 systemctl 명령으로 서비스를 관리할 수 있다.
- MongoDB Daemon 사용자 추가
- Service Unit File 작성
- 활성화
- 퍼미션 확인
- Run
1. MongoDB Daemon 사용자 추가
mongod
데몬은 mongodb user account 계정으로 실행된다. systemctl
명령으로 mongod
를 시작하고 사용하기 위해서는 mongod-org 서비스를 위해서 사용자 mongodb 가 추가되야 한다. 만약 생성되지 않았으면, 새로 만든다.
1 | $ sudo adduser --disabled-password --gecos "" --no-create-home --disabled-password --disabled-login mongodb |
2. systemd service entry
데비안/우분투 에서 systemd 서비스 파일은 /lib/systemd/system/
밑에 위치한다. Mongodb Community Edition 의 Unit 파일은 mongod.service 이다.
Mongodb Community Edition 설치시 Unit 파일이 복사되는데 파일이 있는지 확인한다.
1 | $ ls -l /lib/systemd/system/mongod.service |
만약 mongod.service 가 없으면 새로 생성해야 한다.
Unit 파일
다음은 Mongodb Community Edition 설치시 기본으로 제공되는 유니트 파일이다. 만약 mongod.service 파일이 없으면 /lib/systemd/system/mongod.service 에 생성해서 사용할 수 있다.
1 | [Unit] |
3. 활성화
mongod.service 가 있으면 활성화 여부, 즉 systemd 에 mongod.service 가 등록 됐는지 확인한다. /lib/systemd/system/mongod.service
파일을 다음 같이 활성화 시켜준다.
1 | $ sudo systemctl list-unit-files --type=service |grep mongod |
disable 상태면 systemctl
명령으로 enable 시킨다.
1 | $ cd /lib/systemd/system |
4. 퍼미션 확인
MongoDB Community Editon을 소스 빌드로 설치하면 데이터 및 로그 디렉토리를 생성하고 사용자 퍼미션이 설정되야 한다.
예를 들어 로그 디렉토리 /var/log/mongo 그리고 데이터 디렉토리 /data/mongodata 라면 해당 디렉토리에 시스템 몽고디비 사용자 mongodb
가 쓸 수 있는 퍼미션을 준다.
1 | $ sudo chown mongodb.mongodb /var/log/mongodb |
5. Run
systemctl
명령으로 mongod 를 시작한다.
1 | $ sudo systemctl start mongod |
실행한 mongod
를 확인해 보면
1 | $ ps -ef |grep mongod |
mongod
서비스가 제대로 실행됐으면 mongo 클라이언트로 테스트해 볼 수 있으면 접속해 볼 수 있다.
참조
MongoDB Community Edition 4.2 설치 - ARM64 Ubuntu/Debian Armbian
https://blog.thinkbee.kr/2019-12-20-mongodb-4.2-install_arm64-d7c98dd6a70e/