MongoDB 설치 · 4 min read · Sep 18, 2025

AlmaLinux 9에 MongoDB 설치하는 방법

MongoDB는 오픈 소스, 크로스 플랫폼 및 분산 NoSQL(비관계형) 데이터베이스 시스템입니다. 전통적인 SQL 데이터베이스처럼 데이터를 테이블에 저장하는 대신, MongoDB는 다양한 데이터 형식을 저장하기 위해 유연한 문서를 사용합니다. MongoDB는 데이터를 저장하기 위해 이진 JSON 형식인 BSON을 사용합니다.

MongoDB는 내장된 고가용성, 자동 장애 조치 및 데이터 중복성, 그리고 분산 클러스터를 통한 수평 확장을 지원하는 분산 NoSQL 데이터베이스입니다. 다중 지역 지리적 배포를 지원하며 CRUD 작업(읽기 및 쓰기), 데이터 집계 파이프라인, 텍스트 검색 및 지리 공간 쿼리를 지원하는 쿼리 API를 제공합니다.

이 가이드는 Alma Linux 9 서버에 MongoDB를 설치하는 방법을 보여줍니다. 또한 MongoDB 인증을 활성화하고, MongoDB의 관리자 사용자를 설정하며, 애플리케이션을 위한 새로운 데이터베이스와 사용자를 생성하는 방법도 안내합니다.

전제 조건

이 가이드를 시작하기 전에 다음 사항을 확인하세요:

  • Alma Linux 9 서버
  • 관리자 권한이 있는 비루트 사용자

시스템 준비 (thp 비활성화, ulimit 설정 및 sysctl.conf 설정)

이 섹션에서는 MongoDB 설치를 위해 Alma Linux 서버를 준비하고 설정합니다. 아래는 반드시 수행해야 할 세 가지 주요 작업입니다:

  • systemd 서비스를 통해 투명한 큰 페이지(THP) 비활성화
  • ‘mongod’ 사용자에 대한 최대 프로세스 및 열린 파일 수 증가
  • ‘/etc/sysctl.conf’ 파일을 통해 vm-max fs 설정

먼저, 다음 ‘dnf’ 명령을 실행하여 Alma Linux 시스템에 ‘nano’ 텍스트 편집기를 설치합니다.

sudo dnf install nano -y

투명한 큰 페이지(THP) 비활성화

이제 투명한 큰 페이지(THP)를 비활성화하기 위해 새로운 서비스 파일 ‘/etc/systemd/system/disable-thp.service‘를 생성합니다. 이 서비스는 시스템 부팅 시마다 실행됩니다.

sudo nano /etc/systemd/system/disable-thp.service

파일에 다음 구성을 삽입합니다.

[Unit]  
Description=투명한 큰 페이지(THP) 비활성화  
  
[Service]  
Type=simple  
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"  
  
[Install]  
WantedBy=multi-user.target

작업이 완료되면 파일을 저장하고 종료합니다.

다음으로, 아래의 ‘systemctl‘ 명령을 실행하여 systemd 관리자를 다시 로드하고 변경 사항을 적용합니다.

sudo systemctl daemon-reload

마지막으로, 아래 명령을 사용하여 ‘disable-thp.service‘를 시작하고 활성화합니다. 이렇게 하면 THP가 시작 시 자동으로 비활성화됩니다.

sudo systemctl enable --now disable-thp.service

disable thp

ulimits 설정

다음으로, ‘nano‘ 편집기를 사용하여 새로운 구성 ‘/etc/security/limits.d/mongodb.conf‘를 생성합니다.

sudo nano /etc/security/limits.d/mongodb.conf

파일에 아래 구성을 삽입합니다. 이는 ‘mongod’ 사용자가 최대 프로세스 및 최대 파일 설명자를 ‘64000‘으로 실행할 수 있도록 허용합니다.

mongod soft nproc 64000  
mongod hard nproc 64000  
mongod soft nofile 64000  
mongod hard nofile 64000

파일을 저장하고 편집기를 종료합니다.

sysctl.conf 설정

nano‘ 편집기를 사용하여 ‘/etc/sysctl.conf‘ 파일을 엽니다.

sudo nano /etc/sysctl.conf

다음 줄을 추가하여 fs.file-max, max map count를 설정하고 swappiness를 활성화합니다.

fs.file-max = 2097152  
vm.max_map_count = 262144  
vm.swappiness = 1

파일을 저장하고 편집기를 종료합니다.

이제 아래의 ‘sysctl‘ 명령을 실행하여 변경 사항을 적용합니다.

sudo sysctl -p

setup ulimit and sysctl

선택적으로, 변경 사항을 적용하기 위해 서버를 재부팅할 수도 있습니다.

sudo reboot

MongoDB 설치

이제 Alma Linux 서버를 구성한 후, 다음을 사용하여 MongoDB 서버 설치를 시작합니다. 이 경우, Alma Linux 9 서버에 MongoDB 7.0을 설치합니다.

먼저, ‘nano‘ 편집기를 사용하여 새로운 MongoDB 저장소 파일 ‘/etc/yum.repos.d/mongodb-org-7.0.repo‘를 생성합니다.

sudo nano /etc/yum.repos.d/mongodb-org-7.0.repo

파일에 아래 구성을 삽입합니다.

[mongodb-org-7.0]  
name=MongoDB 저장소  
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/  
gpgcheck=1  
enabled=1  
gpgkey=https://pgp.mongodb.com/server-7.0.asc

파일을 저장하고 편집기를 종료합니다.

이제 아래의 ‘dnf‘ 명령을 실행하여 Alma Linux 서버에서 사용 가능한 저장소를 나열합니다. MongoDB 저장소가 추가된 것을 확인할 수 있습니다.

sudo dnf repolist

setup repo

다음으로, 아래의 ‘dnf install‘ 명령을 실행하여 MongoDB 및 MongoDB 셸을 시스템에 설치합니다. 설치를 확인하기 위해 ‘Y‘를 입력합니다.

sudo dnf install mongodb-org mongodb-mongosh

install mongodb

설치가 완료되면 MongoDB ‘mongod‘ 서비스를 시작하고 활성화하며, ‘mongod‘ 서비스 상태를 확인하여 실행 중인지 확인합니다.

sudo systemctl enable --now mongod  
sudo systemctl status mongod

아래에서 MongoDB가 Alma Linux 서버에서 실행 중임을 확인할 수 있습니다.

start verify mongodb

MongoDB 인증 활성화

이 시점에서 MongoDB 서버가 Alma Linux 서버에서 실행되고 있습니다. 이제 비밀번호 인증을 활성화하고 새로운 MongoDB 관리자 사용자를 설정하여 MongoDB 설치를 안전하게 보호합니다. 또한 MongoDB 서버를 관리하기 위한 기본 ‘mongosh’ 또는 MongoDB 셸을 배우게 됩니다.

먼저, 아래의 ‘mongosh‘ 명령을 사용하여 MongoDB 서버에 로그인합니다.

mongosh

MongoDB에 로그인한 후, 아래 쿼리를 실행하여 MongoDB 텔레메트리를 비활성화합니다.

disableTelemetry()

이제 데이터베이스 ‘admin‘으로 전환하고 아래 쿼리를 실행하여 MongoDB의 관리자 사용자를 설정합니다. 이 예제에서는 새로운 사용자 ‘myAliceAdmin‘을 MongoDB의 관리자 사용자로 생성합니다. 또한, 프롬프트가 나타나면 비밀번호를 입력합니다.

use admin  
db.createUser(  
{  
user: "myAliceAdmin",  
pwd: passwordPrompt(),  
roles: [  
{ role: "userAdminAnyDatabase", db: "admin" },  
{ role: "readWriteAnyDatabase", db: "admin" }  
]  
}  
)

새 사용자가 생성되면 출력에 ‘{ ok: 1 }‘이 표시됩니다.

quit()‘를 입력하여 MongoDB 서버에서 로그아웃합니다.

create admin

다음으로, ‘nano‘ 편집기를 사용하여 ‘/etc/mongod.conf‘ 파일을 엽니다.

sudo nano /etc/mongod.conf

security ‘ 옵션의 주석을 제거하고 ‘ authorization: enabled ‘를 추가하여 MongoDB에서 비밀번호 인증을 활성화합니다.

security:  
 authorization: enabled

파일을 저장하고 편집기를 종료합니다.

이제 아래의 ‘systemctl‘ 명령을 실행하여 ‘ mongod ‘ 서비스를 재시작하고 변경 사항을 적용합니다. 이렇게 하면 MongoDB 서버가 인증이 활성화된 상태로 실행됩니다.

sudo systemctl restart mongod

다음으로, 아래의 ‘mongosh‘ 명령을 실행하여 MongoDB에 로그인합니다.

mongosh

connect to mongodb

데이터베이스 ‘admin‘으로 전환하고 아래 쿼리를 사용하여 사용자 ‘myAliceAdmin‘으로 인증합니다. 요청 시 비밀번호를 입력합니다.

use admin  
db.auth("myAliceAdmin", passwordPrompt())

인증이 성공하면 출력에 ‘{ ok: 1 }‘이 표시됩니다.

test auth

추가로, 아래의 ‘mongosh‘ 명령을 사용하여 사용자 ‘myAliceAdmin‘으로 데이터베이스 ‘admin‘에 로그인할 수도 있습니다.

mongosh --port 27017 --authenticationDatabase \  
"admin" -u "myAliceAdmin" -p

MongoDB에서 사용자 생성

이 섹션에서는 ‘ mongosh ‘ MongoDB 클라이언트를 통해 MongoDB에서 새로운 데이터베이스와 사용자를 생성합니다.

MongoDB에서 새로운 데이터베이스와 사용자를 생성하려면 다음 쿼리를 실행합니다. 이 예제에서는 새로운 데이터베이스 ‘mydb‘와 새로운 사용자 ‘myUser‘를 생성합니다. 요청 시 비밀번호를 입력합니다.

use mydb  
db.createUser(  
{  
user: "myUser",  
pwd: passwordPrompt(), // 또는 일반 텍스트 비밀번호  
roles: [ { role: "readWrite", db: "mydb" },  
{ role: "read", db: "reporting" } ]  
}  
)

새 데이터베이스와 사용자가 생성되면 출력에 ‘{ ok: 1 }‘이 표시되며, 그 후 ‘ quit() ‘를 입력하여 종료합니다.

create new user and database

다음으로, 아래의 ‘mongosh‘ 명령을 사용하여 MongoDB 서버에 로그인합니다. 요청 시 ‘myUser‘의 비밀번호를 입력합니다.

mongosh --port 27017 --authenticationDatabase \  
"mydb" -u "myUser" -p

성공하면 MongoDB 셸의 프롬프트가 표시됩니다.

connect to database

결론

축하합니다! Alma Linux 9 서버에 MongoDB 설치를 완료했습니다. 또한 관리자 사용자를 생성하고 비밀번호 인증을 활성화하여 MongoDB를 안전하게 보호했습니다. 마지막으로, MongoDB에서 데이터베이스와 사용자를 생성하는 방법과 명령줄을 통해 MongoDB 서버에 연결하기 위한 기본 ‘mongosh’ 명령을 배웠습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.