[AWS] 05. EC2 Docker MongoDB 설치

나도 가보자·2024년 7월 20일
post-thumbnail

💡 MongoDB란?

MongoDB는 오픈소스 비관계형 데이터베이스 관리 시스템(DMBS)으로, 테이블과 행 대신 유연한 문서를 활용해 다양한 데이터 형식을 처리하고 저장한다.

NoSQL 데이터베이스 솔루션인 MongoDB는 관계형 데이터베이스 관리 시스템(RDBMS)을 필요로 하지 않으므로, 사용자가 다변량 데이터 유형을 손쉽게 저장하고 쿼리할 수 있는 탄력적인 데이터 저장 모델을 제공한다.


💻 EC2 Docker-Compose MongoDB 설치

1) 프로젝트 초기 환경 설정

$ mkdir {프로젝트명}
$ cd {프로젝트명}
$ mkdir docker
$ cd docker
$ mkdir data_for_mongodb

2) MongoDB for docker-compose.yml 작성

version: '3.9' # Docker Compose 파일의 버전을 지정

services:
  dev-mongo:
    image: mongo:7.0.12 # MongoDB 버전 7.0.12 이미지를 사용한다.
    container_name: mongo # 컨테이너 이름을 'mongo'로 설정
    ports: # 호스트와 컨테이너 포트 매핑 
      - "27017:27017" 
    environment: # 환경 변수 설정 및 몽고DB 관리자 및 시간대 설정
      MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} # MongoDB 관리자 계정 사용자 이름을 환경 변수로 설정
      MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} # MongoDB 관리자 계정 비밀번호를 환경 변수로 설정
      TZ: Asia/Seoul # 타임존을 'Asia/Seoul'로 설정
    volumes: # 호스트의 디렉토리를 컨테이너의 디렉토리에 매핑
      - ./data_for_mongodb:/data/db 
    networks: # 네트워크 설정
      - backend # 'backend'라는 사용자 정의 네트워크에 연결

  dev-mongo-express:
    image: mongo-express:1.0.2-20 # Mongo Express 버전 1.0.2-20 이미지를 사용한다.
    container_name: mongo-express # 컨테이너 이름을 'mongo-express'로 설정
    ports: # 호스트와 컨테이너 포트 매핑 
      - "8081:8081" 
    environment: # 환경 변수 설정 및 몽고DB 웹 서비스 관리자 계정 및 시간대 설정
      ME_CONFIG_MONGODB_SERVER: mongo # MongoDB 서버의 호스트 이름을 'mongo'로 설정
      ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGO_INITDB_ROOT_USERNAME} # MongoDB 관리자 계정 사용자 이름을 환경 변수로 설정
      ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} # MongoDB 관리자 계정 비밀번호를 환경 변수로 설정
      ME_CONFIG_OPTIONS_EDITORTHEME: monokai # Mongo Express 웹 인터페이스의 편집기 테마를 'Monokai'로 설정
      ME_CONFIG_BASICAUTH_USERNAME: ${ME_CONFIG_BASICAUTH_USERNAME} # Mongo Express 기본 인증 사용자 이름을 환경 변수로 설정
      ME_CONFIG_BASICAUTH_PASSWORD: ${ME_CONFIG_BASICAUTH_PASSWORD} # Mongo Express 기본 인증 비밀번호를 환경 변수로 설정
      TZ: Asia/Seoul # 타임존을 'Asia/Seoul'로 설정
    depends_on:
      - dev-mongo # 'dev-mongo' 서비스가 시작된 후에 'mongo-express' 서비스를 시작하도록 설정
    networks: # 네트워크 설정
      - dev # 'dev'라는 사용자 정의 네트워크 연결

networks: # 네트워크 정의
  dev:
    external: true # 이미 생성된 `dev` 네트워크에 종속

3) MongoDB for .env file 작성

  • 파일 경로는 docker-compose.yml과 같은 경로에 위치한다.
$ MONGO_INITDB_ROOT_USERNAME={관리자 계정명}
$ MONGO_INITDB_ROOT_PASSWORD={관리자 비밀번호}
$ ME_CONFIG_BASICAUTH_USERNAME={관리자 계정명}
$ ME_CONFIG_BASICAUTH_PASSWORD={관리자 비밀번호}

4) MongoDB for docker-compose build

  • 빌드 및 백그라운드 실행
$ sudo docker-compose up -d --build
  • 실행 상태 확인
sudo docker-compose ps


5) EC2 보안 그룹 인바운드 규칙

  • 기본 보압 그룹 혹은 커스텀 보안 그룹 선택
  • 인바운드 규칙 편집 선택
  • 인바운드 규칙 추가

6) Data Source and Drivers dialog Test

  • Data Source for MongoDB
  • Data Source and Drivers Connection
profile
Developer CodeJesterND

0개의 댓글