MongoDB 설치 · 5 min read · Sep 15, 2025
우분투 24.04에 MongoDB 설치 및 보안 설정 방법

MongoDB는 오픈 소스, 크로스 플랫폼 및 분산 NoSQL(비관계형) 데이터베이스 시스템입니다. 전통적인 SQL 데이터베이스처럼 데이터를 테이블에 저장하는 대신, MongoDB는 다양한 데이터 형식을 저장하기 위해 유연한 문서를 사용합니다. MongoDB는 데이터를 저장하기 위해 이진 JSON 형식인 BSON을 사용합니다.
MongoDB는 내장된 고가용성, 자동 장애 조치 및 데이터 중복성, 분산 클러스터를 통한 수평 확장을 제공하는 분산 NoSQL 데이터베이스입니다. 다중 지역 지리적 배포를 지원하며 CRUD 작업(읽기 및 쓰기), 데이터 집계 파이프라인, 텍스트 검색 및 지리 공간 쿼리를 지원하는 쿼리 API를 제공합니다.
이 가이드에서는 우분투 24.04 서버에 MongoDB를 설치하는 방법을 보여줍니다. 우분투 서버를 준비하고, MongoDB 리포지토리를 추가하고, MongoDB 서버를 설치하고, MongoDB 관리자를 생성한 다음 MongoDB 인증을 활성화합니다. 마지막으로, ‘mongosh’ 셸을 사용하여 MongoDB에서 사용자 및 데이터베이스를 만드는 방법을 배웁니다.
필수 조건
시작하기 전에 다음 사항을 확인하세요:
- 우분투 24.04 서버
- 관리자 권한이 있는 비루트 사용자
시스템 준비
우분투 시스템에 MongoDB를 설치하기 전에 시스템을 구성했는지 확인하세요. 이 경우, 다음과 같이 우분투 서버를 구성할 것입니다:
- systemd를 통해 투명한 큰 페이지 비활성화
- 기본 MongoDB ‘mongod’ 사용자에 대한 한계 증가
- ‘ /etc/systctl.conf ‘ 파일을 통해 최대 fs.file-max 설정 및 swappiness 활성화
투명한 큰 페이지(THP) 비활성화
시스템에서 THP를 비활성화하려면 부팅 시 자동으로 실행될 새로운 systemd 서비스 파일을 생성해야 합니다.
‘nano’ 편집기를 사용하여 새로운 서비스 파일 ‘/ etc/systemd/system/disable-thp.service ‘를 생성합니다.
sudo nano /etc/systemd/system/disable-thp.service서비스를 통해 THP를 비활성화하기 위해 다음 구성을 삽입합니다.
[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 관리자를 다시 로드하고 ‘ disable-thp ‘ 서비스를 시작 및 활성화합니다. 이렇게 하면 시스템 시작 시 THP가 비활성화됩니다.
sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service유한 설정
THP를 비활성화한 후, ‘mongod’ 사용자에 대한 기본 최대 파일 및 프로세스를 최소한 ‘ 64000 ‘으로 증가시켜야 합니다.
다음 ‘nano’ 편집기 명령을 사용하여 새로운 파일 ‘ /etc/security/limits.d/mongodb.conf ‘를 생성합니다.
sudo nano /etc/security/limits.d/mongodb.conf최대 파일 열기 및 프로세스를 ‘ 64000 ‘으로 증가시키기 위해 다음 구성을 삽입합니다.
mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000파일을 저장하고 편집기를 종료합니다.
swappiness 및 fs.file-max 설정
마지막으로, 기본 ‘ fs.file-max ‘을 증가시키고 MongoDB에 대한 swappiness를 활성화해야 합니다. 이를 위해 ‘ /etc/sysctl.conf ‘ 파일을 편집합니다.
‘nano’ 편집기 명령을 사용하여 ‘ /etc/sysctl.conf ‘ 파일을 엽니다.
sudo nano /etc/sysctl.conffs.file-max을 설정하고 swappiness를 활성화하기 위해 다음 구성을 삽입합니다.
fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1작업이 끝나면 파일을 저장하고 편집기를 종료합니다.
이제 아래의 ‘ sysctl ‘ 명령을 실행하여 재부팅 없이 변경 사항을 적용합니다.
sudo sysctl -p
APT 패키지 관리자를 사용하여 MongoDB 설치
우분투 시스템을 구성했으므로 이제 MongoDB를 설치할 준비가 되었습니다. 이 섹션에서는 공식 MongoDB 리포지토리에서 MongoDB 8.0의 최신 버전을 설치합니다.
먼저 아래의 ‘ apt ‘ 명령을 실행하여 우분투 패키지 인덱스를 업데이트하고 ‘ gnupg ‘ 및 ‘ curl ‘ 패키지를 설치합니다. 설치를 확인하려면 ‘ Y ‘를 입력합니다.
sudo apt update && sudo apt install gnupg curl
이제 다음 명령을 실행하여 MongoDB에 대한 GPG 키 및 리포지토리를 추가합니다. 이 예제에서는 우분투 24.04 서버에 MongoDB 8을 설치합니다.
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmorecho "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
다음으로, 아래의 ‘ apt ‘ 명령을 실행하여 패키지 인덱스를 업데이트하고 ‘ mongodb-org ‘ 패키지를 시스템에 설치합니다. 설치를 진행하려면 ‘ Y ‘를 입력합니다.
sudo apt update && sudo apt install mongodb-org
설치가 완료되면 아래의 ‘ systemctl ‘ 명령을 실행하여 systemd 관리자를 다시 로드합니다. ‘ mongod ‘ 서비스가 우분투 시스템에 추가됩니다.
sudo systemctl daemon-reload마지막으로 아래의 명령을 실행하여 MongoDB ‘ mongod ‘ 서비스를 시작, 활성화 및 확인합니다. MongoDB가 시스템에서 실행되고 있는 것을 확인할 수 있습니다.
sudo systemctl enable --now mongod
sudo systemctl status mongod
MongoDB 서버 보안 설정
MongoDB를 설치한 후, 다음을 통해 MongoDB 서버 설치를 보안 설정합니다:
- ‘ mongosh ‘ 셸을 사용하여 MongoDB에 대한 새로운 관리자 사용자 생성
- ‘ /etc/mongod.conf ‘ 파일을 편집하여 MongoDB 인증 활성화
MongoDB 관리자 사용자 생성
이 섹션에서는 ‘mongosh’ 셸을 통해 새로운 MongoDB 관리자 사용자를 생성합니다. ‘mongosh’ 셸은 MongoDB 서버와 상호 작용하기 위한 클라이언트 명령줄로, MySQL/MariaDB의 ‘mysql’ 및 PostgreSQL의 ‘psql’과 유사합니다.
관리자 사용자를 생성하려면 아래의 ‘ mongosh ‘ 셸 명령으로 MongoDB 서버에 로그인합니다.
mongosh이제 MongoDB 텔레메트리를 비활성화하기 위해 다음 쿼리를 실행합니다.
disableTelemetry()
다음으로, 데이터베이스 ‘ admin ‘으로 이동하여 MongoDB에 대한 새로운 관리자 사용자를 생성하기 위해 다음 쿼리를 실행합니다. 이 예제에서는 새로운 사용자 ‘ myAdmin ‘을 생성하고, 프롬프트가 나타나면 새 비밀번호를 입력합니다.
use admindb.createUser(
{
user: "myAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)이제 ‘ quit() ‘를 입력하여 MongoDB 셸에서 종료합니다.

MongoDB 인증 활성화
이제 MongoDB 관리자 사용자를 생성했으므로, ‘ /etc/mongod.conf ‘ 파일을 통해 MongoDB 인증을 활성화할 준비가 되었습니다.
다음 ‘ nano ‘ 편집기 명령을 사용하여 기본 MongoDB 서버 구성 ‘ /etc/mongod.conf ‘를 엽니다.
sudo nano /etc/mongod.confMongoDB에서 인증을 활성화하기 위해 다음 줄을 추가합니다.
security:
authorization: enabled작업이 끝나면 파일을 저장하고 편집기를 종료합니다.
이제 아래의 ‘ systemctl ‘ 명령을 실행하여 MongoDB 서버를 재시작하고 변경 사항을 적용합니다. 이렇게 하면 MongoDB 인증이 활성화됩니다.
sudo systemctl restart mongodMongoDB 인증 테스트
MongoDB 서버 설치를 보안 설정했으므로, ‘mongosh’ 셸과 새로운 관리자 사용자 및 비밀번호로 MongoDB에 로그인하여 구성을 확인해 보겠습니다.
아래의 ‘ mongosh ‘ 명령으로 사용자 ‘ myAdmin ‘으로 MongoDB 서버에 로그인합니다. 프롬프트가 나타나면 비밀번호를 입력합니다.
mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAdmin" -p
로그인한 후, 아래의 쿼리를 실행하여 연결 상태를 확인합니다. ‘ myAdmin ‘ 사용자로 MongoDB 서버에 로그인했어야 합니다.
db.runCommand({connectionStatus : 1})이제 ‘ quit() ‘를 입력하여 MongoDB 서버에서 종료합니다.

MongoDB에서 데이터베이스 및 사용자 생성
이 섹션에서는 ‘mongosh’ 셸을 사용하여 MongoDB에서 새로운 데이터베이스 및 사용자를 생성하는 방법을 배웁니다. 따라서 MongoDB에 관리자 사용자로 로그인했는지 확인하세요.
먼저 아래의 쿼리를 실행하여 데이터베이스 ‘ mydb ‘로 이동합니다.
use mydb이제 다음 쿼리를 실행하여 새로운 사용자 ‘ myUser ‘를 생성하고 데이터베이스 ‘ mydb ‘에 대한 읽기 및 쓰기 액세스를 허용합니다. 요청 시 비밀번호를 입력합니다.
db.createUser(
{
user: "myUser",
pwd: passwordPrompt(), // 또는 일반 텍스트 비밀번호
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)‘ quit() ‘를 입력하여 MongoDB 서버에서 종료합니다.

이제 아래의 ‘mongosh’ 명령을 실행하여 ‘ myUser ‘로 데이터베이스 ‘ mydb ‘에 로그인합니다. 요청 시 비밀번호를 입력합니다.
mongosh --port 27017 --authenticationDatabase \
"mydb" -u "myUser" -p
로그인한 후, 아래의 쿼리를 사용하여 연결 상태를 확인합니다.
db.runCommand({connectionStatus : 1})아래에서 ‘myUser’ 사용자로 MongoDB 서버에 연결되었고 ‘ mydb ‘ 데이터베이스에 대한 권한이 있음을 확인할 수 있습니다.

결론
축하합니다! 우분투 24.04 서버에 MongoDB 서버 설치를 완료했습니다. 또한 관리자 사용자를 생성하고 MongoDB 설치를 보안 설정했습니다. 그런 다음 ‘mongosh’를 사용하여 MongoDB 서버에 연결하고 MongoDB에서 사용자 및 데이터베이스를 관리하기 위한 기본 쿼리를 사용하는 방법을 배웠습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.