최근에 제가 다루는 데이터가 NoSQL이 더 잘 어울릴 것 같다고 생각하여 요즘 많이 쓰고 있는 MongoDB를 사용하고 있는데요, 흔한 RDMS 데이터 베이스들은 GUI로 데이터 베이스를 컨트롤 할 수 있는 방법이 존재하는데 MongoDB는 그런게 없을까 생각을 하다가 MongoDB Compass 라는 어플리케이션을 찾게 되었습니다. 이번 포스트에는 MongoDB Compass를 자신의 컴퓨터로 실행하여 외부 컴퓨터에 있는 MongoDB를 Connect하는 법을 정리해 보려고 합니다.
0. 환경
로컬 컴퓨터(Compass가 깔려있는 나의 컴퓨터) OS: Mac OS Mojave 10.14.4
외부 컴퓨터(MongoDB가 깔려있는 외부 컴퓨터) OS: Ubuntu 18.04 LTS
연결 방식: SSH
1. https://www.mongodb.com/download-center/compass?jmp=hero 여기에 접속하셔서
Version, Platforms를 자신의 환경에 맞게 설치해주세요. 저는 Mac을 사용중이니 저대로 Download를 받았습니다. Version은 원하시는 것을 받으면 되지만, Stable 버전을 받는 것이 일반적입니다.
2. 설치를 잘 받고 나면 아래와 같은 화면이 나옵니다.
이렇게 화면이 나오면 성공이에요! 왼쪽 메뉴에 RECENTS 밑에 있는건 제가 먼저 연결해놓은 것들이니 없으셔도 괜찮습니다. 이제 외부 컴퓨터에 있는 mongodb가 외부 접속을 가능하게끔 설정해주어야 연결할 수 있습니다.
3. ssh를 통해 외부 컴퓨터에 접속한 뒤, mongodb의 설정파일을 수정해줍시다. 각자의 외부 컴퓨터에 접속한 뒤,
$ sudo vi /etc/mongod.conf
를 입력하여 bindIp 를 수정해줄겁니다. 보통의 경우 로컬호스트 주소인 127.0.0.1이 입력이 되어 있을건데요, 이 경우에 로컬호스트로만 접속할 수 있기 때문에 이 부분을 수정해주어야 합니다. 두 가지 방법이 있는데요,
아래와 같이, 자신이 쓰는 아이피(123.123.123.123)만 추가하여 자신만 접속을 허용하는 방법이 있고,
bindIp: 127.0.0.1, 123.123.123.123
아래와 같이, 모든 접속 주소를 의미하는 0.0.0.0으로 대체 하는 방법이 있습니다. 저는 노트북을 사용하고 있고 연결하는 와이파이가 자주 바뀌어서 귀찮으니 이걸로 했습니다.
bindIp: 0.0.0.0
이렇게 수정해주시고 저장 후 빠져나와 줍니다.
4. Compass 앱에서 아래와 같이 연결해줄겁니다.
Hostname: 외부 컴퓨터 입장에선 mongoDB가 localhost이니, localhost로 입력해줍니다. 혹은 개인 설정에 따라 바꿔주시면 됩니다.
Port: 역시 기본 포트인 27017을 입력해주시면 됩니다만, 외부 컴퓨터에서 mongoDB 포트를 변경했다면 그에 맞게 적어주시면 됩니다.
Athentication, Read Preference, SSL은 정확히 잘 모르겠지만, 외부 DB를 연결하여 보는 입장에서는 딱히 필요는 없어보입니다. 일단 Default로 둡니다.
SSH Turnel: 여기 중요합니다. Use Password 를 선택해주시면 그 아래에 4가지 입력칸이 나오는데요,
SSH Hostname: 외부 컴퓨터의 Public IP를 입력합니다.
SSH Port: 외부 컴퓨터에 접속할 포트를 입력합니다. 외부 컴퓨터에 특별한 설정을 하지 않으셨으면 22 입력하시면 됩니다.
SSH Username: 외부 컴퓨터에 접속할 때 쓰는 Username을 입력합니다. 예를 들어 기본 EC2 사용유저이시고, 특별히 유저를 생성하신게 없이 사용중이시라면 ubuntu 입력하시면 됩니다.
SSH Password: 해당 Username으로 외부 컴퓨터에 로그인시 사용하는 비밀번호를 입력합니다. 설정하지 않으셨다면 빈칸으로 두시면 될겁니다.
다 입력하셨으면 Connect 버튼을 누릅니다.
5. 아래와 같은 화면이 나오면 성공입니다.
이제 GUI로 MongoDB를 컨트롤하고 확인할 수 있습니다! 제가 외부 컴퓨터를 CLI로만 다루고 있어서 이 어플이 Forklift 처럼 간편하게 느껴지네요. https://docs.mongodb.com/compass/master/ 여기에 Manual이 소개되어 있으니 참고하시고 즐거운 개발 되시길 바랍니다!