[MongoDB] EC2 서버와 robo3T 연결하기

Hyunji·2022년 2월 17일
1

공부

목록 보기
3/35
post-thumbnail

EC2 서버와 robo3T를 연결 해보자

1. AWS에서 인스턴스에서 포트 개방을 먼저 해줘야한다.

  • 사용자 지정 TCP
  • 포트 범위: 27017
  • 사용자 지정: IPv4

2. EC2 서버에서 MongoDB 계정 생성

  • MongoDB 접속
$ mongo

터미널에서 명령어를 입력하면 긴 글과 마지막에
>
이 표시되면 정상적으로 MongoDB에 접속이 된 거라고 보면 된다.

  • admin으로 계정의 데이터베이스로 전환
$ use admin
  • admin 계정의 계정 이름과 비밀번호 설정하기
$ db.createUser({user: "test", pwd: "test", roles:["root"]});

입력 했을 때
Successfully added user: { "user" : "test", "roles" : [ "root" ] }
라고 뜨면 성공

  • 계정 생성 확인해보기
$ db.auth("아이디", "비밀번호")

$ db.getUsers();

: db.auth로 로그인 할 수 있다 (정상적인 로그인이라면 리턴 값은 1이다)
: 로그인 상태에서 getUsers() 를 입력하면 권한에 대한 정보가 나온다

3. MongoDB config 설정

  • MongoDB 설정 파일을 vi로 열어준다
$ sudo vi /etc/mongod.conf
  • 설정 파일 변경
    config 파일 안에 bindIp 부분과 security 부분을 수정해주면 된다
# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

security:
  authorization: "enabled"

수정 후, esc + :wq 로 저장해주기

  • MongoDB 재시작하기
$ sudo service mongod restart

4. robo3T에서 연결 해주기

save 버튼을 누르기 전에 왼쪽의 Test 를 눌러서 EC2 서버와 연결이 잘 됐는지 확인 해주자

이렇게 나오면 성공적으로 EC2 서버와 robo3T가 연결 되었다

5. Node.js에서 파일 수정

자신의 프로젝트에서 mongoose.connect 를 수정해주자

const connect = () => {
  mongoose
    .connect('mongodb://test:test@localhost:27017/admin', {
      dbName:'설정하고 싶은 db이름',
      ignoreUndefined: true,
    })
    .catch((error) => {
      console.error(error);
    });
};

다시 서버를 실행 시켜주면 잘 되는것을 확인 할 수 있다.


EC2 서버와 robo3T를 연결 하다보면 잘 되지 않을 때가 있는데, 그때 Mongo 를 입력 해보면 MongoDB가 잘 실행되지 않는 것을 볼 수 있다.

이 방법을 따라서 MongoDB를 재설치 해주면 된다
https://velog.io/@kjhxxxx/MongoDB-%EC%9A%B0%EB%B6%84%ED%88%AC-18.04-MongoDB-%EC%9E%AC%EC%84%A4%EC%B9%98


https://donologue.tistory.com/361

profile
성장중인 개발자

0개의 댓글