본문 바로가기
Infra System

mongodb install on ec2

by kellis 2020. 10. 13.

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.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가 authorization check를 수행하도록 설정

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#

'Infra System' 카테고리의 다른 글

mongodb install on kubernetes  (0) 2020.10.13
mongodb install using docker(standalone)  (0) 2020.10.13
mariadb cluster install on kubernetes  (0) 2020.10.13
kafka cluster installation on kubernetes  (0) 2020.10.13
jenkins install on kubernetes  (0) 2020.10.13

댓글