Ubuntu 24.04에 MongoDB NoSQL 문서 데이터베이스 배포

발행: (2026년 5월 27일 AM 12:21 GMT+9)
3 분 소요
원문: Dev.to

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를 참고하세요.

0 조회
Back to Blog

관련 글

더 보기 »