소개
MongoDB 는 많은 최신 웹 애플리케이션에서 사용되는 문서 데이터베이스입니다. 기존의 테이블 기반 관계형 데이터베이스 구조에 의존하지 않기 때문에 NoSQL 데이터베이스 로 분류됩니다 .
대신 동적 스키마가 있는 JSON과 유사한 문서를 사용합니다. 즉, 관계형 데이터베이스와 달리 MongoDB는 데이터베이스에 데이터를 추가하기 전에 미리 정의된 스키마가 필요하지 않습니다. 업데이트된 스키마로 새 데이터베이스를 설정하지 않고도 필요할 때마다 언제든지 스키마를 변경할 수 있습니다.
이 자습서에서는 Ubuntu 20.04 서버에 MongoDB를 설치하고 테스트하고 서비스로 관리하는 방법을 알아봅니다 systemd
.
전제 조건
이 자습서를 따르려면 다음이 필요합니다.
- 하나의 Ubuntu 20.04 서버. 이 서버에는 루트가 아닌 관리 사용자와 UFW로 구성된 방화벽이 있어야 합니다. Ubuntu 20.04용 초기 서버 설정 가이드 에 따라 이를 설정합니다 .
1단계 - MongoDB 설치
Ubuntu의 공식 패키지 저장소에는 안정적인 버전의 MongoDB가 포함되어 있습니다. 그러나이 글을 쓰는 시점에서 기본 Ubuntu 리포지토리에서 사용할 수 있는 MongoDB 버전은 3.6이며 최신 안정 릴리스는 4.4입니다.
이 소프트웨어의 최신 버전을 얻으려면 MongoDB의 전용 패키지 리포지토리를 APT 소스에 포함해야 합니다. mongodb-org
그런 다음 항상 최신 버전의 MongoDB를 가리키는 메타 패키지인 를 설치할 수 있습니다 .
시작하려면 다음 명령을 실행하여 안정적인 최신 버전의 MongoDB에 대한 공개 GPG 키를 가져옵니다. 4.4
4.4 이외의 MongoDB 버전을 사용하려는 경우 설치하려는 버전에 맞게 이 명령의 URL 부분을 변경해야 합니다 .
curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
cURL은 데이터 전송에 사용되는 많은 운영 체제에서 사용할 수 있는 명령줄 도구입니다. 전달된 URL에 저장된 모든 데이터를 읽고 내용을 시스템 출력에 인쇄합니다. 다음 예에서 cURL은 GPG 키 파일의 내용을 인쇄한 다음 이를 다음 sudo apt-key add -
명령으로 파이프하여 신뢰할 수 있는 키 목록에 GPG 키를 추가합니다.
또한 이 curl
명령은 기본적으로 cURL에 자동으로 실패하도록 지시하는 옵션을 -fsSL
함께 사용합니다. 즉, 어떤 이유로 cURL이 GPG 서버에 연결할 수 없거나 GPG 서버가 다운된 경우 실수로 결과 오류 코드를 신뢰할 수 있는 키 목록에 추가하지 않습니다.
OK
키가 성공적으로 추가된 경우 이 명령이 반환됩니다 .
산출
좋아요
키가 올바르게 추가되었는지 다시 확인하려면 다음 명령을 사용하면 됩니다.
apt-key list
이렇게 하면 출력 어딘가에 MongoDB 키가 반환됩니다.
mongodb-org
이 시점에서 APT 설치는 최신 버전의 MongoDB를 설치하는 데 필요한 패키지를 찾을 위치를 여전히 알지 못합니다 .
APT가 다운로드하고 설치할 패키지의 온라인 소스를 찾는 서버에는 파일 sources.list
과 sources.list.d
디렉터리 두 곳이 있습니다. sources.list
APT 데이터의 활성 소스를 나열하는 파일로, 한 줄에 하나의 소스가 있고 가장 선호하는 소스가 먼저 나열됩니다. 디렉토리 sources.list.d
를 사용하면 이러한 항목을 별도의 파일로 추가할 수 있습니다 sources.list
.
다음 명령을 실행하여 sources.list.d
이라는 디렉터리 에 파일을 만듭니다 mongodb-org-4.4.list
. 이 파일의 유일한 내용은 다음과 같은 한 줄입니다 deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse
.
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
이 한 줄은 APT에게 소스가 무엇이고 어디에서 찾을 수 있는지에 대해 알아야 할 모든 것을 알려줍니다.
deb
: 이는 소스 항목이 일반 데비안 아키텍처를 참조함을 의미합니다. 다른 경우에는 라인의 이 부분이 로 표시될 수 있습니다deb-src
. 이는 소스 항목이 데비안 배포판의 소스 코드를 나타냄을 의미합니다.[ arch=amd64,arm64 ]
: APT 데이터를 다운로드해야 하는 아키텍처를 지정합니다. 이 경우amd64
및arm64
아키텍처를 지정합니다.https://repo.mongodb.org/apt/ubuntu
: APT 데이터를 찾을 수 있는 위치를 나타내는 URI입니다. 이 경우 URI는 공식 MongoDB 리포지토리가 있는 HTTPS 주소를 가리킵니다.focal/mongodb-org/4.4
: Ubuntu 리포지토리에는 여러 릴리스가 포함될 수 있습니다. 이는 Ubuntu 릴리스 에 사용할 수 있는 패키지4.4
버전 만 원한다는 것을 지정합니다 ("Focal Fossa"는 Ubuntu 20.04의 코드 이름임).mongodb-org
focal
multiverse
: 이 부분은 APT가 4개의 주요 Ubuntu 리포지토리 중 하나를 가리킵니다. 이 경우 multiverse 저장소를 가리키고 있습니다 .
이 명령을 실행한 후 APT가 패키지를 찾을 위치를 알 수 있도록 서버의 로컬 패키지 인덱스를 업데이트합니다 mongodb-org
.
sudo apt update
그런 다음 MongoDB를 설치할 수 있습니다.sudo apt install mongodb-org
메시지가 표시되면 을 누른 Y
다음 ENTER
패키지 설치를 확인합니다.
명령이 완료되면 시스템에 MongoDB가 설치됩니다. 그러나 아직 사용할 준비가 되지 않았습니다. 다음으로 MongoDB를 시작하고 제대로 작동하는지 확인합니다.
2단계 - MongoDB 서비스 시작 및 데이터베이스 테스트
이전 단계에서 설명한 설치 프로세스는 에서 제어하는 데몬으로 실행되도록 MongoDB를 자동으로 구성합니다 systemd
. 즉, 다양한 systemctl
명령을 사용하여 MongoDB를 관리할 수 있습니다. 그러나 이 설치 절차는 서비스를 자동으로 시작하지 않습니다.
다음 systemctl
명령을 실행하여 MongoDB 서비스를 시작합니다.
sudo systemctl start mongod.service
그런 다음 서비스 상태를 확인합니다. .service
이 명령은 서비스 파일 정의에 포함되지 않습니다 . systemctl
이 접미사가 아직 존재하지 않는 경우 자동으로 전달하는 인수에 이 접미사를 추가하므로 포함할 필요가 없습니다.
sudo systemctl status mongod
이 명령은 서비스가 실행 중임을 나타내는 다음과 같은 출력을 반환합니다.
Output
● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2020-06-09 12:57:06 UTC; 2s ago Docs: https://docs.mongodb.org/manual Main PID: 37128 (mongod) Memory: 64.8M CGroup: /system.slice/mongod.service └─37128 /usr/bin/mongod --config /etc/mongod.conf
서비스가 예상대로 실행되고 있는지 확인한 후 MongoDB 서비스가 부팅 시 시작되도록 활성화합니다.
sudo systemctl enable mongod
데이터베이스 서버에 연결하고 진단 명령을 실행하여 데이터베이스가 작동하는지 추가로 확인할 수 있습니다. 다음 명령은 데이터베이스에 연결하고 현재 버전, 서버 주소 및 포트를 출력합니다. 또한 MongoDB 내부 connectionStatus
명령의 결과도 반환합니다.
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
connectionStatus
데이터베이스 연결 상태를 확인하고 반환합니다. 응답의 필드 1
에 대한 값은 서버가 예상대로 작동하고 있음을 나타냅니다.ok
Output
MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("1dc7d67a-0af5-4394-b9c4-8a6db3ff7e64") } MongoDB server version: 4.4.0 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
또한 데이터베이스는 localhost 를 나타내는 로컬 루프백 주소 27017
인 포트에서 실행 중입니다 . 이것은 MongoDB의 기본 포트 번호입니다.127.0.0.1
다음으로 MongoDB 서버 인스턴스를 systemd
.
3단계 - MongoDB 서비스 관리
앞서 언급했듯이 1단계에서 설명한 설치 프로세스는 systemd
서비스로 실행되도록 MongoDB를 구성합니다. 즉, systemctl
다른 Ubuntu 시스템 서비스와 마찬가지로 표준 명령을 사용하여 관리할 수 있습니다.
이전에 언급한 대로 이 systemctl status
명령은 MongoDB 서비스의 상태를 확인합니다.
sudo systemctl status mongod
다음을 입력하여 언제든지 서비스를 중지할 수 있습니다.sudo systemctl stop mongod
중지된 서비스를 시작하려면 다음을 실행합니다.sudo systemctl start mongod
이미 실행 중인 서버를 다시 시작할 수도 있습니다.sudo systemctl restart mongod
2단계에서 MongoDB가 서버와 함께 자동으로 시작되도록 설정했습니다. 이 자동 시작을 비활성화하려면 다음을 입력합니다.sudo systemctl disable mongod
그런 다음 부팅 시 시작되도록 다시 활성화하려면 enable 명령을 다시 실행합니다.sudo systemctl enable mongod
서비스 관리 방법에 대한 자세한 내용은 Systemd Essentials: Working with Services, Units, and the Journal을systemd
확인하십시오 .
결론
이 자습서에서는 공식 MongoDB 리포지토리를 APT 인스턴스에 추가하고 최신 버전의 MongoDB를 설치했습니다. 그런 다음 Mongo의 기능을 테스트하고 몇 가지 systemctl
명령을 연습했습니다.
즉각적인 다음 단계로 Ubuntu 20.04에서 MongoDB를 보호하는 방법 가이드에 따라 MongoDB 설치의 보안을 강화하는 것이 좋습니다 . 보안이 설정되면 원격 연결을 허용하도록 MongoDB를 구성 할 수 있습니다 .
이 DigitalOcean 커뮤니티 기사 에서 MongoDB를 구성하고 사용하는 방법에 대한 더 많은 자습서를 찾을 수 있습니다 . 또한 MongoDB가 제공하는 가능성에 대한 훌륭한 리소스인 공식 MongoDB 문서를 확인하는 것이 좋습니다 .
refer_link: Ubuntu 20.04에 MongoDB를 설치하는 방법