MongoDB 외부 접속 설정하기

1. *.conf 파일 수정

- /etc/[mongod/mongodb].conf

# bind_ip = 127.0.0.1
# port = 27017

bind_ip=0.0.0.0 # 모든 IP 주소에서의 연결을 허용
port=* #원하는 포트 설정

# transparent_hugepage=always # 리눅스 운영체제의 Transparent Huge Pages 기능을 활성화

# 보안 설정 둘 중 한가지 활성화
#noauth = true # 보안상 위험 존재
auth = true

sudo service mongodb restart - 저장 완료 후 mongodb 재시작

  • 주의: bindIp를 모든 IP 주소로 설정하면 보안상의 위험을 초래할 수 있으므로 필요한 경우에만 사용

  • transparent_hugepage: 메모리 관리 기술로, 프로세스의 가상 주소 공간을 대형 페이지라는 큰 단위로 관리하는 방식

    MongoDB의 경우, transparent_hugepage=always 설정이 권장되지 않습니다. MongoDB는 메모리 관리 및 액세스 패턴과 관련하여 작은 페이지를 사용하는 것이 더 효율적이라고 판단되기 때문입니다. 따라서 MongoDB를 사용할 때는 transparent_hugepage 설정을 never로 변경하는 것이 좋습니다

2. mongodb 보안 설정

mongo
> use admin
> db.createUser(
    {
      user: "adminUser",
      pwd: "adminPassword",
      roles: [ { role: "root", db: "admin" } ]
    }
)

3. mongodb admin 접속

- shell [mongo]

mongo --host yourServerIP --port yourServerPort -u remoteUser -p remotePassword --authenticationDatabase admin

- python[pymongo]

import urllib.parse
from pymongo import MongoClient

password = urllib.parse.quote_plus('*')
client = MongoClient('mongodb://{id}:{pwd}@{ip}:{port}'.format(id='*', pwd=password, ip='*', port=*))

- MongoDB Compass (GUI)

mongodb를 GUI로 편하게 관리 가능
link - https://www.mongodb.com/try/download/compass

mongodb_compass

댓글남기기