개발블로그

install mongodb on EC2 본문

Mongodb

install mongodb on EC2

개발자수니 2019. 12. 3. 14:48

 

How to Install Mongodb With Authentication on EC2 AMI Linux 를 참고하여, EC2에 Mongodb를 설치했다.

이 포스트에서는 직접 실행했던 명령어와 설치&테스트를 하면서 겪었던 문제를 정리하려 한다.  


 

1. mongodb yum repository 등록

vi /etc/yum.repos.d/mongodb-org-3.0.repo
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1

 

2. yum으로 mongodb 설치

sudo yum install -y mongodb-org

 

3. mongodb 실행

sudo service mongod start

 

4. 시스템이 재부팅되도 mongodb가 자동으로 실행될 수 있도록 등록

sudo chkconfig mongod on

 

5. mongodb 접속 및 user 생성

#mongodb 접속
mongo

#이하 명령은 mongodb shell에서 실행하는 명령이다. 
#admin database 접속
#참고로, mongodb는 database를 create하지 않아도 바로 사용 가능하다. 
use admin

#user 생성
db.createUser(
{
user: "admin",
pwd: "admin#",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)

#air database 접속
use air

#권한이 제한적인 user생성
db.createUser(
{
user: "air",
pwd: "air#",
roles: [ { role: "readWrite", db: "air#" } ]
}
)

 

6. mongodb가 authentication을 수행하도록 설정 

vi /etc/mongod.conf
security:
  authorization: "enabled"

 

7. 설정을 변경했으니, mongodb를 재실행

sudo service mongod restart

 

8. 외부에서 접속 가능하도록 설정

vi /etc/mongod.conf
bindIp: 0.0.0.0

 

시행착오

- RoboMongo에서 테스트 했을 때, 무슨 바람이 불었는지.. Auth Mechanism을 변경했었다. 그랬더니 Authorization Fail 문제가 발생했다. 기본 값인 SCRAM-SHA-1로 세팅해야한다. 

- Springboot에서 테스트 했을 때, Connection은 정상적으로 되었지만 find/insert시에 not authorized for query (code:13) 에러가 발생했다. 이는 application.yml 설정을 바꿔줌으로써 해결했다. 

#비동작 코드
mongodb:
      #uri: mongodb://52.79.236.7:27017
      database: air
      username: air
      password: air#
      
#동작 코드
mongodb:
      host: 15.164.216.148
      port: 27017
      database: air
      username: air
      password: air#

 

'Mongodb' 카테고리의 다른 글

install mongodb using Docker(Standalone)  (0) 2019.12.03
Comments