본문 바로가기
MongoDB/MongoDB 설치&세팅방법

[MongoDB 기본세팅] 11. AWS EC2의 Linux 환경에서 MongoDB 설치&세팅(7) - MongoDB 외부 접속하기②

by Fletcher 2024. 8. 12.

 

반갑습니다!

MongoDB 기본세팅 마지막 포스트입니다 ^^

 

AWS EC2 인스턴스 생성부터 MongoDB 설치 및 Studio 3T 세팅까지

기본세팅에 관련된 거의 모든 내용을 마무리했습니다 ^^

 

이제 남은건,

EC2에 설치한 MongoDB에 원격으로 접근하여 제어하는 내용인데요

포트도 열어놓고, 편의상 모든 IP에서 접근 가능하도록 설정까지 해놓았습니다

이제 약간의 보안을 위해 User를 생성하는 내용까지 살펴보고

기본 세팅에 관련한 내용을 완전히 마무리하도록 하겠습니다 ^^

 

 

 

 

 

 

우선

기존에 생성해둔 EC2 인스턴스의 퍼블릭 IP 주소가 필요합니다 ^^

 

굳이 퍼블릭 IP 주소를 외우고 다니는 분은 안 계실테니

AWS EC2 서비스 인스턴스 탭에 들어가서

해당 인스턴스의 상세 정보를 조회하여 해당 IP 주소를 복사해주세요 ^^

 

 

 

New Connection에서

Connection name 부분에 여러분 임의의 이름을 지정해주시면 되겠고,

Server 부분에

본인이 생성한 EC2 인스턴스의 퍼블릭 IP주소를 입력해주시면 되겠습니다 ^^

 

 

 

Test Connection에 이상 없이

모두 OK 표시가 출력되는걸 확인할 수 있겠습니다 ^^

연결이 정상적으로 이루어졌으니 Save를 눌러서 해당 Connection을 저장해주세요 !

 

 

 

해당 Connection에 연결을 해주시면 되겠습니다 ^^

 

 

 

Open Connections 탭을 눌러보니

로컬호스트, EC2 인스턴스의 데이터베이스 정보가 잘 조회되는 것을 확인할 수 있겠습니다 ^^

 

 

 

여기서 잠깐 !

기본적으로 MongoDB는 User가 생성되어 있지 않습니다

그렇기 때문에 우리가 현재 지정해놓은 설정상,

리소스의 IP주소와 포트번호만 알면 내가 아니라

언제 어디서든 누구나 해당 데이터베이스로 접근할 수 있는 상태입니다

 

이제 User를 만들어서 약간의 보안을 더해보겠습니다 ^^

 

 

 

해당 방법에 대한 공식 문서입니다

편의를 위해 링크 첨부하겠습니다 ^^

https://www.mongodb.com/ko-kr/docs/v6.0/tutorial/configure-scram-client-authentication/

 

 

 

 

 

설정 작업을 위해

먼저 PuTTY를 이용해서 EC2 인스턴스에 원격 접속해주세요 ^^

 

 

 

 

mongod 명령어를 이용해서 MongoDB 사용모드로 전환해주세요 ^^

 

 

 

사용자 생성을 위해 admin 권한이 필요합니다

use admin 명령어를 입력해주세요 ^^

 

편의상 텍스트 파일 첨부하겠습니다!

MongoDB 유저 생성.txt
0.00MB

 

포스트 본문에 코드를 붙여넣을 경우 줄바꿈 관련해서

에러가 생기는 경우가 종종 있어서 텍스트 파일로 첨부합니다 ^^

 

 

 

 

이제 createUser 명령어를 입력해주시면 되는데요 ^^

user와 pwd를 설정해주시면 되겠습니다

둘 다 문자열로 지정을 해주시고, 원하시는 이름과 패스워드로 설정해주시면 되겠습니다 ^^

 

작업이 성공하면 이미지와 같이

명령라인 하단에 { ok:1 }라는 메세지가 출력됩니다 ^^

 

 

 

이제 exit 명령어를 사용해서 MongoDB 사용모드를 종료해주시고

다시 돌아오시면 되겠습니다 ^^

 

 

 

이제 파일 하나늘 설정해주면 되는데요

vi 편집기를 이용해서 /etc/mongod.conf 파일로 접근해주세요 ^^

 

 

 

이전에 한 번 살펴봤었던 파일입니다

그 때는 bindIp 부분을 127.0.0.1에서 0.0.0.0으로 수정해줬었죠 ^^

 

 

 

security 부분이 주석 처리가 되어 있을겁니다

이 주석을 해제해주시고

그 다음 라인에 authorization: enabled를 추가해주시면 되겠습니다 ^^!

 

※ 참고 ※

vi 편집기는 일반모드, 편집모드, 명령모드 세 가지가 있는데

문서에 들어왔을 때에는 기본적으로 일반모드입니다

i 를 누르면 일반모드 → 편집모드

ESC를 누르면 편집모드 → 일반모드

: 을 누르면 일반모드 → 명령모드 입니다 ^^

 

: wq를 눌러서 편집 작업을 마무리해주시면 되겠습니다 !

 

 

 

그리고 변경사항이 적용되도록

sudo systemctl restart mongod를 입력해주시면 되겠습니다 ^^

 

 

 

 

 

 

 

 

 

그럼 보안 설정이 잘 적용 되었는지 한 번 확인해봐야겠죠?

아까 Connection을 저장해뒀었는데 해당 연결에는 authorization 정보를 입력하지 않았습니다

authorization 정보 없이 연결이 되는지 안 되는지 테스트 해보겠습니다 ^^

 

 

해당 연결이 정상적이지 않으면

위와 같이 해당 Connection에 관련된 데이터베이스 목록 정보가 조회되지 않습니다

 

 

 

Connection Manager로 들어가서 아까의 설정을 수정하도록 하겠습니다 ^^

 

 

 

Authentization 탭으로 오셔서 Mode가 None으로 되어있을겁니다 ^^

이 모드를 Basic (SCRAM-SHA-256)으로 변경해주세요 !

 

 

 

그러면 상기 이미지와 같이 User name과 Password를 입력할 수 있는 탭이 생깁니다

아까 원격 접속 했을 때 명령어를 이용해서 생성한 name과 password를 입력해주시면 되겠습니다 ^^

그리고 정상적으로 연결이 되는지 Test Connection으로 확인해볼까요?

 

 

 

정상적으로 연결이 되는 것을 확인할 수 있겠습니다 ^^!

 

 

 

Save 버튼을 누르면 해당 변경사항이 적용된 새 정보를 저장할거냐고 묻는데요

Save as new connection을 클릭해주시면 되겠습니다 ^^

 

그럼 기존 정보의 Connection과 더불어서

중복된 이름의 새로운 Connection이 새로 저장됩니다 ^^

기존의 것은 지워주시면 되겠습니다!

 

 

 

새로운 Connection이 잘 적용되어서

다시 EC2 인스턴스의 데이터베이스 정보가 목록으로 조회됩니다 ^^

 

 

 

 

이번 포스트까지 해서 MongoDB 기본세팅과 관련된 내용을 완전히 마무리하겠습니다 ^^

내용이 참 길어졌는데요

어떤걸 다루건 IT쪽에선 기본 설치&세팅이 제일 번거롭고 긴 과정이 아닌가 싶습니다

뭐 하나만 잘못 설정하고, 작은 오타 하나만 있어도 정상적으로 구동이 안 되고 하니까요 ^^;;;

이제 다음 포스트부터는 본격적으로 MongoDB를 다루는데에 있어서

GUI툴인 Studio 3T를 이용하기도 하고,

전용 라이브러리를 이용해서 Python 코드로도 제어를 해보겠습니다 ^^!

 

긴 글 읽어주셔서 감사드리고 다음 포스트로 찾아뵙겠습니다 !