[88] 볼륨으로 MongoDB에 데이터 지속성 추가하기

    728x90
    반응형

    [88] 볼륨으로 MongoDB에 데이터 지속성 추가하기

    MongoDB 컨테이너에 데이터 지속성과 보안 추가하기

     

     

    문제 인식

    • MongoDB 컨테이너 중지/제거 시 모든 데이터 손실
    • 데이터베이스 접근에 보안 제한 없음

     

    데이터 지속성 추가

    볼륨 설정

    docker run --name mongodb -v data:/data/db --rm -d --network goals-net mongo
    • 명명된 볼륨 data 사용
    • MongoDB 내부 데이터 경로(/data/db)에 연결
    • 컨테이너가 제거되어도 데이터 유지

    작동 원리

    • 첫 실행: Docker가 볼륨 생성, 데이터 저장
    • 재실행: 기존 볼륨의 데이터 로드
    • 결과: 컨테이너 생명주기와 독립적인 데이터 유지

     

    접근 제한 설정

    환경변수를 통한 인증 설정

    docker run --name mongodb \
      -v data:/data/db \
      --rm -d \
      --network goals-net \
      -e MONGO_INITDB_ROOT_USERNAME=username \
      -e MONGO_INITDB_ROOT_PASSWORD=password \
      mongo

     

    백엔드 연결 문자열 수정

    • 기존: mongodb://mongodb:27017/course-goals
    • 변경: mongodb://username:password@mongodb:27017/course-goals?authSource=admin
    • 형식: mongodb://사용자명:비밀번호@호스트:포트/데이터베이스?authSource=admin

    주의사항

    • authSource=admin 쿼리 파라미터 필수
    • 사용자 인증 정보 변경 시 백엔드 코드도 함께 수정 필요
    • 인증 정보 변경 후 이미지 재빌드 필요

     

    적용 결과

    • 컨테이너 재시작 후에도 데이터 유지
    • 인증되지 않은 접근 차단
    • 보안이 강화된 데이터베이스 환경 구성

    이러한 설정으로 MongoDB 컨테이너는 데이터 지속성과 보안성을 모두 갖추게 됩니다.

     

     

     

     

     

    참고

    https://www.udemy.com/course/docker-kubernetes-2022

    728x90
    반응형

    댓글