본문 바로가기
DataBase/NoSQL

[NoSQL] Docker로 EC2에 MongoDB 설치해서 NoSQL booster for mongodb에 연결하기

by 스파이디웹 2024. 2. 25.
728x90

이번 포스트에는 AWS EC2 ubuntu 20.04 lts에 Docker를 설치하고, mongodb를 설치 및 연결해보겠습니다.

 

NoSQL Booster for MongoDB가 없으신 분은 아래 링크를 통해 다운로드 받아주세요.

https://nosqlbooster.com/downloads

 

NoSQLBooster - The Smartest GUI Tool and IDE for MongoDB

 

nosqlbooster.com

1. EC2 생성

EC2 에서 20.04 LTS ubuntu 생성해줍니다.

공식 홈페이지를 찾아보면 MongoDB docker로 띄우기위해 최소로 필요한 서버의 크기는 2vCore 와 4GB mem정도로 나옵니다.

2. Docker 설치

// apt 인덱스 업데이트
$ sudo apt-get update

// repository over HTTPS를 사용하기 위한 패키지 설치
$ sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

// GPG Key를 추가하고 확인
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88

pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

// 저장소 추가하고 apt 인덱스 업데이트
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update

// Docker 설치
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

// Docker 서비스 시작
$ sudo systemctl start docker
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service

// Docker 확인
$ sudo docker run hello-world

 

docker 설치 확인

sudo systemctl status docker

 

3. Docker를 이용해 MongoDB Container 띄우기

# mongodb 이미지 가져오기
sudo docker pull mongodb/mongodb-community-server:5.0.19-ubuntu2004

 

  1. Container 이름은 mongo
  2. -d 를 통해 백그라운드(daemon)으로 실행
  3. -p 로 ec2에서의 포트:컨테이너에서의 포트 지정
  4. -e로 환경변수 MONGODB_INITDB_ROOT_USERNAME, MONGO_INITDB_ROOT_PASSWORD 지정하기(connection 시 계정/비밀번호 인증 수단 추가하기)
  5. mongodb/mongodb-community-server:5.0.19-ubuntu2004 이미지 지정하기
# 도커 볼륨 생성
sudo docker volume create volume_name
# 도커 실행시키기(컨테이너 띄우기)
sudo docker run --name mongo -d -p 17017:27017 -e MONGO_INITDB_ROOT_USERNAME=test -e MONGO_INITDB_ROOT_PASSWORD='test!!' -v volume_name:/data/db mongodb/mongodb-community-server:5.0.19-ubuntu2004
# container 실행 확인
sudo docker ps

 

-e MONGO_INITDB_ROOT_PASSWORD='test!!' 지정한 부분 앞의 ID는 ''로 감싸주지 않고 비밀번호만 ''로 감싸준 이유
→ !!는 마지막으로 입력한 명령어를 다시 사용하는 단축 명령어이므로, 원하는 형태의 command를 날릴 수 없기 때문에 !!를 password에 사용하고 싶은 경우, ''로 감싸주어야 함

또한, 비밀번호에 @가 들어가는경우, mongodb 연결을위해 host string을 입력할 때,
mongodb://username:password@hostname:port/database 의 형태에서 @가 password, hostname부분을 구분지어주는데, @@로 인해 패스워드 구분이 잘 안되는 문제가 발생함

 

4. SG(Security Group) 설정

AWS SG(Security Group)에서 모든 IP와 포트를 허용해줍니다.(테스트니까)

5. NoSQL Booster 연결하기

EC2서버와 같은 VPC에 있다면, private IP를 이용해도 되고, 현재는 테스트이기 때문에 public ip를 통해 접속해보겠습니다. 현재 할당 받은 public ip로 접속 string을 가져옵니다.

잘 연결되는 것을 확인할 수 있습니다.

 

참조:

https://doc.skill.or.kr/docker

 

시스템 별 도커(docker) 설치 방법 - NHN Cloud

Mac 용 Docker Desktop은 Mac에서 Dockerized 앱을 빌드, 디버깅 및 테스트하기위한 설치가 쉬운 데스크톱 앱입니다. Mac 용 Docker Desktop은 Mac OS Hypervisor 프레임 워크, 네트워킹 및 파일 시스템과 긴밀하게

doc.skill.or.kr

https://www.mongodb.com/docs/manual/tutorial/install-mongodb-community-with-docker/

 

Install MongoDB Community with Docker — MongoDB Manual

Docs Home → MongoDB Manual You can run MongoDB community Edition as a Docker container using the official MongoDB Community image. Using a Docker image for running your MongoDB deployment is useful to:Stand up a deployment quickly.Help manage configurati

www.mongodb.com

https://stackoverflow.com/questions/34559557/how-to-enable-authentication-on-mongodb-through-docker

 

How to enable authentication on MongoDB through Docker?

I want to spin-up a docker for mongodb:latest but allow only certain user(s) to access certain db(s) (i.e. enable --auth). No one else should access mongodb whatsoever! How should I do this as part...

stackoverflow.com

 

728x90

댓글