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 |
댓글