웹사이트 검색

Ubuntu 18.04의 기본 APT 리포지토리에서 MongoDB를 설치하는 방법


저자는 Write for DOnations 프로그램을 선택했습니다.

소개

Mongo라고도 하는 MongoDB는 최신 웹 애플리케이션에서 일반적으로 사용되는 무료 오픈 소스 NoSQL 문서 데이터베이스입니다.

이 튜토리얼에서는 MongoDB를 설치하고 서비스를 관리하며 선택적으로 원격 액세스를 활성화합니다.

참고: 이 글을 쓰는 시점에서 이 튜토리얼은 기본 Ubuntu 리포지토리에서 사용할 수 있는 버전인 MongoDB 3.6 버전을 설치합니다. 그러나 일반적으로 최신 버전의 MongoDB(이 글을 쓰는 시점의 버전 4.4)를 설치하는 것이 좋습니다. 최신 버전의 MongoDB를 설치하려면 소스에서 Ubuntu 18.04에 MongoDB를 설치하는 방법에 대한 이 가이드를 따르는 것이 좋습니다.

전제 조건

이 자습서를 따르려면 다음이 필요합니다.

  • 루트가 아닌 sudo 사용자 및 방화벽을 포함하여 이 초기 서버 설정 자습서에 따라 Ubuntu 18.04 서버 1개를 설정했습니다.

1단계 - MongoDB 설치

Ubuntu의 공식 패키지 저장소에는 MongoDB가 포함되어 있습니다. 즉, apt를 사용하여 필요한 패키지를 설치할 수 있습니다. 소개에서 언급했듯이 기본 리포지토리에서 사용할 수 있는 버전은 최신 버전이 아닙니다. 최신 버전의 Mongo를 설치하려면 대신 이 자습서를 따르십시오.

먼저 가장 최신 버전의 리포지토리 목록을 포함하도록 패키지 목록을 업데이트합니다.

  1. sudo apt update

이제 MongoDB 패키지 자체를 설치합니다.

  1. sudo apt install -y mongodb

이 명령은 MongoDB 서버에 유용한 관리 도구와 함께 안정적인 MongoDB 버전이 포함된 여러 패키지를 설치합니다. 데이터베이스 서버는 설치 후 자동으로 시작됩니다.

다음으로 서버가 실행 중이고 올바르게 작동하는지 확인하겠습니다.

2단계 - 서비스 및 데이터베이스 확인

설치 프로세스는 MongoDB를 자동으로 시작했지만 서비스가 시작되었고 데이터베이스가 작동하는지 확인하겠습니다.

먼저 서비스 상태를 확인합니다.

  1. sudo systemctl status mongodb

다음 출력이 표시됩니다.

Output
mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-05-26 07:48:04 UTC; 2min 17s ago Docs: man:mongod(1) Main PID: 2312 (mongod) Tasks: 23 (limit: 1153) CGroup: /system.slice/mongodb.service └─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

systemd에 따르면 MongoDB 서버가 실행 중입니다.

실제로 데이터베이스 서버에 연결하고 진단 명령을 실행하여 이를 추가로 확인할 수 있습니다.

다음 명령을 실행합니다.

  1. mongo --eval 'db.runCommand({ connectionStatus: 1 })'

그러면 현재 데이터베이스 버전, 서버 주소 및 포트, 상태 명령의 출력이 출력됩니다.

Output
MongoDB shell version v3.6.3 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.3 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

응답의 ok 필드에 대한 1 값은 서버가 제대로 작동하고 있음을 나타냅니다.

다음으로 서버 인스턴스를 관리하는 방법을 살펴보겠습니다.

3단계 - MongoDB 서비스 관리

MongoDB는 systemd 서비스로 설치됩니다. 즉, Ubuntu의 다른 모든 시스템 서비스와 함께 표준 systemd 명령을 사용하여 MongoDB를 관리할 수 있습니다.

서비스 상태를 확인하려면 다음을 입력하십시오.

  1. sudo systemctl status mongodb

다음을 입력하여 언제든지 서버를 중지할 수 있습니다.

  1. sudo systemctl stop mongodb

중지된 서버를 시작하려면 다음을 입력하십시오.

  1. sudo systemctl start mongodb

단일 명령으로 서버를 다시 시작할 수도 있습니다.

  1. sudo systemctl restart mongodb

기본적으로 MongoDB는 서버와 함께 자동으로 시작되도록 구성됩니다. 자동 시작을 비활성화하려면 다음을 입력하십시오.

  1. sudo systemctl disable mongodb

다시 활성화하는 것도 쉽습니다. 이렇게 하려면 다음을 사용하십시오.

  1. sudo systemctl enable mongodb

다음으로 MongoDB 설치를 위한 방화벽 설정을 조정하겠습니다.

4단계 - 방화벽 조정(선택 사항)

초기 서버 설정 자습서 지침에 따라 서버에서 방화벽을 활성화했다고 가정하면 인터넷에서 MongoDB 서버에 액세스할 수 없습니다.

동일한 서버에서 실행되는 애플리케이션과 함께 로컬로만 MongoDB 서버를 사용하려는 경우 권장되는 안전한 설정입니다. 그러나 인터넷에서 MongoDB 서버에 연결할 수 있으려면 ufw에서 들어오는 연결을 허용해야 합니다.

어디서나 기본 포트 27017에서 MongoDB에 대한 액세스를 허용하려면 sudo ufw allow 27017를 사용할 수 있습니다. 그러나 기본 설치에서 MongoDB 서버에 대한 인터넷 액세스를 활성화하면 누구에게나 데이터베이스 서버 및 해당 데이터에 대한 무제한 액세스가 제공됩니다.

대부분의 경우 MongoDB는 애플리케이션을 호스팅하는 다른 서버와 같이 신뢰할 수 있는 특정 위치에서만 액세스해야 합니다. 이 작업을 수행하기 위해 명시적으로 연결이 허용되는 다른 서버의 IP 주소를 지정하면서 MongoDB의 기본 포트에 대한 액세스를 허용할 수 있습니다.

  1. sudo ufw allow from your_other_server_ip/32 to any port 27017

ufw를 사용하여 방화벽 설정의 변경 사항을 확인할 수 있습니다.

  1. sudo ufw status

출력에 허용된 포트 27017에 대한 트래픽이 표시되어야 합니다.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
27017                      ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
27017 (v6)                 ALLOW       Anywhere (v6)

특정 IP 주소만 MongoDB 서버에 연결하도록 허용하기로 결정한 경우 출력에 Anywhere 대신 허용된 위치의 IP 주소가 나열됩니다.

UFW Essentials: Common Firewall Rules and Commands에서 서비스에 대한 액세스를 제한하기 위한 고급 방화벽 설정을 찾을 수 있습니다.

포트가 열려 있어도 MongoDB는 현재 로컬 주소 127.0.0.1에서만 수신 대기합니다. 원격 연결을 허용하려면 서버의 공개적으로 라우팅 가능한 IP 주소를 mongod.conf 파일에 추가하십시오.

편집기에서 MongoDB 구성 파일을 엽니다.

  1. sudo nano /etc/mongodb.conf

서버의 IP 주소를 bindIP 값에 추가합니다.

[label ]
...
logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

...

기존 IP 주소와 추가한 주소 사이에 쉼표를 입력해야 합니다.

파일을 저장하고 편집기를 종료한 다음 MongoDB를 다시 시작합니다.

  1. sudo systemctl restart mongodb

MongoDB는 이제 원격 연결을 수신하지만 누구나 액세스할 수 있습니다. Ubuntu 16.04에서 MongoDB를 설치하고 보호하는 방법의 파트 2를 따라 관리 사용자를 추가하고 항목을 추가로 잠급니다.

결론

MongoDB 설명서에서 MongoDB를 구성하고 사용하는 방법에 대한 자세한 자습서를 찾을 수 있습니다. 또한 MongoDB가 제공하는 가능성에 대한 훌륭한 리소스입니다.