Ubuntu 24.04에 MongoDB NoSQL 문서 데이터베이스 배포
Source: Dev.to
개요
MongoDB는 유연한 BSON 문서 형태로 데이터를 저장하고 샤딩을 통해 수평 확장이 가능한 오픈소스 NoSQL 문서 데이터베이스입니다. 이 가이드는 Docker Compose와 영구 볼륨 스토리지를 사용해 Ubuntu 24.04에 MongoDB를 배포하고, 루트 사용자로 설정한 뒤 mongosh 셸을 이용해 배포가 정상적인지 확인하는 과정을 보여줍니다.
1. 프로젝트 디렉터리 구조 만들기
mkdir -p ~/mongodb-logging/mongodb-data
cd ~/mongodb-logging
2. 환경 파일 만들기
nano .env
다음 내용을 추가합니다(배포하기 전에 비밀번호는 강력한 것으로 교체하세요).
MONGO_ROOT_USERNAME=admin
MONGO_ROOT_PASSWORD=changeme
3. Docker Compose 매니페스트 만들기
nano docker-compose.yaml
아래 내용을 붙여넣습니다.
services:
mongodb:
image: mongo:latest
container_name: mongodb
hostname: mongodb
ports:
- "27017:27017"
volumes:
- "./mongodb-data:/data/db"
environment:
- MONGO_INITDB_ROOT_USERNAME=${MONGO_ROOT_USERNAME}
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD}
restart: unless-stopped
4. 서비스 시작
docker compose up -d
5. 서비스 실행 확인
docker compose ps
6. 로그 확인 (선택)
docker compose logs
7. mongosh 로 MongoDB 접속
컨테이너 내부에서 셸을 엽니다.
docker exec -it mongodb mongosh -u admin -p changeme
7.1 애플리케이션 데이터베이스로 전환하고 문서 삽입
use logs
db.application_logs.insertOne({
level: "info",
message: "first entry",
timestamp: new Date()
})
7.2 컬렉션 조회 및 인덱스 생성
db.application_logs.find()
db.application_logs.createIndex({ timestamp: -1 })
show collections
exit
8. 다음 단계
- 루트 계정 대신
db.createUser()를 사용해 애플리케이션 전용 사용자를 생성합니다. - TLS 활성화: 인증서를 마운트하고 컨테이너 명령에
--tlsMode requireTLS옵션을 추가합니다. - 네트워크 접근 제한: 포트를
127.0.0.1에 바인딩하고 원격 접속을 위해 VPN을 앞단에 두어 MongoDB에 접근하도록 합니다.
MongoDB가 이제 영구 스토리지와 인증된 접근을 갖춘 상태로 실행 중이며, 애플리케이션에서 바로 사용할 수 있습니다.
전체 가이드와 추가 팁은 원문 기사인 Vultr Docs를 참고하세요.