Ubuntu 20.04에 MongoDB를 설치하는 방법

Ubuntu 20.04에 MongoDB를 설치하는 방법

2022-06-01 last update

11 minutes reading Ubuntu 20.04 Databases Ubuntu MongoDB NoSQL
이 강좌의 초기 버전은 Melissa Anderson으로 작성되었다.

소개


MongoDB은 많은 현대 웹 응용 프로그램에서 사용하는 문서 데이터베이스이다.그것은 전통적인 표 기반 관계 데이터베이스 구조에 의존하지 않기 때문에 NoSQL database으로 분류된다.
반대로 JSON과 유사한 문서와 동적 모드를 사용합니다. 이것은 관계 데이터베이스와 달리 MongoDB가 데이터베이스에 데이터를 추가하기 전에 미리 정의된 모드가 필요하지 않다는 것을 의미합니다.언제든지 필요에 따라 모드를 변경할 수 있으며, 업데이트된 모드를 사용하지 않고 새 데이터베이스를 설정할 수 있습니다.
이 강좌에서는 Ubuntu 20.04 서버에 MongoDB를 설치하여 테스트를 실시하고 이를 systemd 서비스로 관리하는 방법을 배울 것입니다.

선결 조건


본 강좌를 배우려면 다음이 필요합니다.
  • Ubuntu 20.04 서버 1대.이 서버에는 루트가 아닌 사용자 관리 및 UFW가 구성된 방화벽이 있어야 합니다.우리의 initial server setup guide for Ubuntu 20.04에 따라 설정합니다.
  • 1단계 - MongoDB 설치


    Ubuntu의 공식 패키지 저장소에는 안정적인 버전의 MongoDB가 포함되어 있습니다.그러나 본문을 작성할 때 기본 Ubuntu 저장소에서 제공하는 MongoDB 버전은 3.6이고 최신 안정적인 버전은 4.4입니다.
    이 소프트웨어의 최신 버전을 가져오려면 MongoDB의 전용 패키지 저장소를 APT 소스에 포함해야 합니다.그리고 mongodb-org을 설치할 수 있습니다. 이것은 항상 최신 버전의 MongoDB를 가리키는 패키지입니다.
    먼저 다음 명령을 실행하여 MongoDB의 최신 안정적인 버전의 공용 GPG 키를 가져옵니다.4.4 이외의 MongoDB 버전을 사용하려면 설치할 버전에 맞게 이 명령 URL 섹션의 4.4을 변경해야 합니다.
    1. 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 명령은 옵션 -fsSL을 사용합니다. 이 옵션들은 기본적으로 cURL에 침묵으로 실패했음을 알려 줍니다.이것은 cURL이 어떤 이유로 GPG 서버나 GPG 서버에 연결할 수 없는 경우 생성된 오류 코드를 신뢰할 수 있는 키 목록에 추가하지 않는다는 것을 의미합니다.
    키를 추가하면 이 명령은 OK으로 돌아갑니다.
    Output
    OK
    키가 올바르게 추가되었는지 다시 확인하려면 다음 명령을 사용하여 이 작업을 수행할 수 있습니다.
    1. apt-key list
    그러면 출력의 어느 위치에서 MongoDB 키를 반환합니다.
    Output
    /etc/apt/trusted.gpg -------------------- pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26] 2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5 uid [ unknown] MongoDB 4.4 Release Signing Key <[email protected]> . . .
    현재 APT 설치는 최신 버전의 MongoDB를 설치하는 데 필요한 mongodb-org 패키지를 어디에서 찾을 수 있는지 알 수 없습니다.
    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을 읽는 줄입니다.
    1. 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 데이터를 다운로드할 아키텍처를 지정합니다.이 예에서는 amd64arm64의 아키텍처를 지정합니다.
  • https://repo.mongodb.org/apt/ubuntu: APT 데이터의 위치를 찾을 수 있는 URI입니다.이 예에서 URI는 공식 MongoDB 저장소가 있는 HTTPS 주소를 가리킨다.
  • focal/mongodb-org/4.4: Ubuntu 저장소는 몇 가지 다른 버전을 포함할 수 있습니다.이것은 4.4 패키지의 mongodb-org 버전만 focal 버전의 Ubuntu에 사용할 수 있도록 지정합니다. (Focal Fossa는 Ubuntu 20.04의 코드 이름입니다.)
  • multiverse: 이 부분은 네 개의 주요 Ubuntu 저장소 중 하나를 가리킨다.이 예에서 그것은 multiverse repository을 가리킨다.
  • 이 명령을 실행하면 서버의 로컬 패키지 인덱스를 업데이트하여 APT가 mongodb-org 패키지를 어디서 찾을 수 있는지 알 수 있도록 합니다.
    1. sudo apt update
    이제 MongoDB를 설치할 수 있습니다.
    1. sudo apt install mongodb-org
    프롬프트가 나타나면 Y을 누르고 ENTER을 누르면 소프트웨어 패키지를 설치할 것을 확인합니다.
    명령이 완료되면 MongoDB가 시스템에 설치됩니다.그러나 아직 사용할 준비가 되지 않았다.이제 MongoDB를 시작하고 제대로 작동하는지 확인합니다.

    2단계 - MongoDB 서비스 시작 및 데이터베이스 테스트


    이전 단계에서 설명한 설치 프로세스는 MongoDB를 systemd이 제어하는 수호 프로그램으로 자동으로 설정합니다. 이것은 각종 systemctl 명령을 사용하여 MongoDB를 관리할 수 있음을 의미합니다.그러나 이 설치 프로세스는 자동으로 서비스를 시작하지 않습니다.
    다음 systemctl 명령을 실행하여 MongoDB 서비스를 시작합니다.
    1. sudo systemctl start mongod.service
    그리고 서비스의 상태를 검사합니다.이 명령은 서비스 파일 정의에 .service을 포함하지 않습니다.systemctl은 자동으로 전달되는 모든 매개 변수에 이 접미사를 첨부하므로 포함할 필요가 없습니다.
    1. 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 서비스를 시작합니다.
    1. sudo systemctl enable mongod
    데이터베이스 서버에 연결하고 진단 명령을 실행하면 데이터베이스가 실행될 수 있는지 확인할 수 있습니다.다음 명령은 데이터베이스에 연결되어 현재 버전, 서버 주소, 포트를 출력합니다.또한 MongoDB의 내부 connectionStatus 명령 결과를 반환합니다.
    1. 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 }
    또한 데이터베이스 27017의 포트 127.0.0.1에서 실행 중입니다. 이 포트는localhost의 로컬 링 주소를 표시합니다.이것은 MongoDB의 기본 포트 번호입니다.
    다음은 systemd을 사용하여 MongoDB 서버를 관리하는 방법에 대해 알아보겠습니다.

    3단계 - MongoDB 서비스 관리


    앞서 설명한 대로 1단계에서 설명한 설치 프로세스는 MongoDB를 systemd 서비스로 구성합니다.이것은 다른 Ubuntu 시스템 서비스를 사용하는 것처럼 표준 systemctl 명령을 사용하여 관리할 수 있음을 의미합니다.
    앞에서 설명한 대로 systemctl status 명령은 MongoDB 서비스의 상태를 확인합니다.
    1. sudo systemctl status mongod
    다음 내용을 입력하여 언제든지 서비스를 중지할 수 있습니다.
    1. sudo systemctl stop mongod
    서비스가 중지될 때 서비스를 시작하려면 다음을 실행하십시오.
    1. sudo systemctl start mongod
    서버가 이미 실행 중일 때 서버를 다시 시작할 수도 있습니다.
    1. sudo systemctl restart mongod
    2단계에서는 MongoDB 자동 시작 서버를 활성화합니다.이 자동 시작을 비활성화하려면 다음을 입력합니다.
    1. sudo systemctl disable mongod
    그런 다음 부트할 때 다시 활성화하려면 enable 명령을 다시 실행합니다.
    1. sudo systemctl enable mongod
    systemd 서비스를 관리하는 방법에 대한 자세한 내용은 Systemd Essentials: Working with Services, Units, and the Journal을 참조하십시오.

    결론


    이 강좌에서는 공식 MongoDB 저장소를 APT 인스턴스에 추가하고 최신 버전의 MongoDB를 설치합니다.그리고 Mongo의 기능을 테스트하고 systemctl 명령을 연습했습니다.
    다음 단계는 저희 안내서 How To Secure MongoDB on Ubuntu 20.04에 따라 MongoDB 설치의 안전성을 강화하는 것을 강력히 건의합니다.일단 안전하면, 당신은 configure MongoDB to accept remote connections을 사용할 수 있습니다.
    these DigitalOcean community articles에서 MongoDB를 구성하고 사용하는 방법에 대한 더 많은 강좌를 찾을 수 있습니다.또한 MongoDB가 제공하는 가능성에 대한 좋은 자원이기 때문에 공식적인 MongoDB documentation을 보십시오.