MongoDB는 높은 성능, 높은 가용성, 손쉬운 확장성을 제공하는 크로스 플랫폼 기반의 문서 지향(document-oriented) 데이터베이스입니다. MongoDB는 컬렉션(collection)과 도큐먼트(document)라는 개념을 바탕으로 작동하며, 유연한 데이터 구조 덕분에 다양한 애플리케이션에서 널리 활용되고 있습니다.
이 글에서는 Ubuntu 16.04 환경에 MongoDB를 설치하고, 시스템 부팅 시 MongoDB 서비스가 자동으로 시작되도록 설정하는 전체 과정을 단계별로 안내해 드립니다.
1. MongoDB 저장소 추가하기
MongoDB는 Ubuntu 기본 패키지 저장소에 포함되어 있지만, 버전이 오래된 경우가 많습니다. 공식 MongoDB 저장소를 직접 등록하면 검증된 방식으로 최신 버전을 설치하고 업데이트할 수 있습니다.
가장 먼저 아래 명령어를 사용해 공식 MongoDB 저장소의 GPG 키를 가져옵니다.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
정상적으로 실행되면 다음과 같은 출력 결과가 표시됩니다.
Executing: /tmp/tmp.Qe1RFZgUh2/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 gpg: requesting key EA312927 from hkp server keyserver.ubuntu.com gpg: key EA312927: public key "MongoDB 3.2 Release Signing Key <packaging@mongodb.com>" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
다음으로 아래 명령어를 통해 MongoDB 저장소를 APT 소스 목록에 추가합니다.
$ sudo echo "deb https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
저장소가 추가되었다면 아래 명령어로 패키지 목록을 갱신합니다.
$ sudo apt-get update
2. MongoDB 설치 및 확인
이제 다음 명령어로 MongoDB를 설치합니다.
$ sudo apt-get install -y --allow-unauthenticated mongodb-org
설치가 진행되는 동안 화면에는 다음과 비슷한 출력이 표시됩니다.
Reading package lists... Done
Building dependency tree
Reading state information... Done
...
The following additional packages will be installed:
mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
The following NEW packages will be installed:
mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-shell
mongodb-org-tools
0 upgraded, 5 newly installed, 0 to remove and 168 not upgraded.
Need to get 47.4 MB of archives.
After this operation, 218 MB of additional disk space will be used.
Get:1 https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2/multiverse amd64 mongodb-org-shell amd64 3.2.6 [5,257 kB]
Get:2 https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2/multiverse amd64 mongodb-org-server amd64 3.2.6 [9,541 kB]
Get:3 https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2/multiverse amd64 mongodb-org-mongos amd64 3.2.6 [4,337 kB]
...
3. systemd 유닛 파일 생성하기
Ubuntu 16.04에서 MongoDB를 정상적인 시스템 서비스로 실행하려면, 해당 서비스를 정의하는 유닛(unit) 파일을 별도로 만들어 주어야 합니다. 유닛 파일은 시스템에 리소스를 어떻게 관리할지 알려주는 설정 파일로, 가장 일반적인 유형은 서비스(service)입니다. 서비스 유닛은 서비스를 시작하거나 중지하는 방법을 결정합니다.
아래 명령어로 mongodb.service라는 이름의 설정 파일을 생성합니다.
$ sudo nano /etc/systemd/system/mongodb.service
편집기가 열리면 다음 내용을 그대로 붙여넣습니다.
[Unit] Description=High-performance, schema-free document-oriented database After=network.target [Service] User=mongodb ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf [Install] WantedBy=multi-user.target
4. 서비스 시작 및 상태 확인
유닛 파일 작성이 완료되면 systemctl 명령어로 새로 만든 서비스를 시작합니다.
$ sudo systemctl start mongodb
이 명령어는 일반적으로 별도의 출력 없이 종료됩니다. 서비스가 제대로 시작되었는지 확인하려면 다음 명령어를 실행하세요.
$ sudo systemctl status mongodb
서비스가 정상적으로 구동 중이라면 아래와 같은 결과를 확인할 수 있습니다.
mongodb.service - High-performance, schema-free document-oriented database
Loaded: loaded (/etc/systemd/system/mongodb.service; disabled; vendor preset:
Active: active (running) since Fri 2016-05-13 10:33:52 IST; 1min 48s ago
Main PID: 7078 (mongod)
Tasks: 16 (limit: 512)
CGroup: /system.slice/mongodb.service
└─7078 /usr/bin/mongod --quiet --config /etc/mongod.conf
May 13 10:33:52 linux systemd[1]: Started High-performance, schema-free document
lines 1-9/9 (END)
5. 부팅 시 자동 시작 설정하기
시스템이 시작될 때 MongoDB가 자동으로 실행되도록 하려면, 다음 명령어로 서비스를 활성화합니다.
$ sudo systemctl enable mongodb
아래와 같은 심볼릭 링크 생성 메시지가 출력되면 정상적으로 설정된 것입니다.
Created symlink from /etc/systemd/system/multi-user.target.wants/mongodb.service to /etc/systemd/system/mongodb.service.
지금까지 Ubuntu 16.04에 MongoDB를 설치하고, systemd 서비스로 등록한 뒤, 부팅 시 자동 시작까지 설정하는 전체 과정을 살펴보았습니다. 참고로 Ubuntu 16.04는 표준 지원이 종료된 버전이므로, 실제 운영 환경에서는 최신 LTS 버전(Ubuntu 22.04, 24.04 등)과 MongoDB 최신 릴리스를 사용하는 것이 보안 측면에서 더욱 권장됩니다. 다음 글에서도 더욱 유용한 리눅스 팁과 노하우를 소개해 드리겠습니다.