[TIL_2023.11.05] Node.js, MongoDB Atlas 연동하여 서버배포하기 (우분투 내에서 env파일 설정)

김효진·2023년 11월 5일
1
post-thumbnail

MongoDB Atlas 연동하여 서버배포를 했는데 데이터 조회가 잘 되지 않았다.

[Error: Cannot find module 'dotenv'] 에러메세지가 출력되었다.

  1. 해당 env 읽어오려는 파일에서 require 을 해봤다.
const dotenv = require('dotenv');

그런데 생각해보니 아래 코드 까지만 입력했어도 로컬환경에서는 문제가 없어서 이 이유는 아닌듯 하였다.

require('dotenv').config();
  1. ec2 내에서 env 파일 만들기를 시도해봤다. (dotenv를 찾을수 없다? 생각해보면 깃에 .env 파일을 .gitignore을 통해 제외하고 올리니 읽어올 수 없는게 당연했다. )

1) 터미널을 통해 AWS EC2에 접속해서 서버를 열 깃 폴더 안에 들어간다.
2) 아래 명령어를 입력해 환경변수 파일을 연다.

$vim .env

3) 기존에 로컬에서 만들었던 .env 파일 안에 작성했던 코드들을 복사한 후 입력모드로 붙여넣었다.
4) 다 작성했으면 !wq -> enter (저장 후 나오기)

그 후 실행했더니 적용은 잘 된 듯 하였다. 이 문제는 해결! 그런데 새로운 에러메세지가 출력되었다.
[MongoNetworkError: C0D7BF032C7F0000:error:0A000438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error:../deps/openssl/openssl/ssl/record/rec_layer_s3.c:1586:SSL alert number 80 ......]

  1. network 에러라는 부분을 보면 db와의 연결이 잘 안되는 듯 하였다. 구글링을 해보았더니 mongodb ip 설정을 하라는 내용이 있길래 mongodb atlas 에 접속하여 ip 설정을 해주었다.

1) mongodb atlas -> projects (해당하는 프로젝트 선택) -> 좌측 하단의 Netword Access 클릭 -> 우측의 +ADD IP ADDRESS 클릭

2) Access List Entry: 0.0.0.0/0 입력 후 confirm 버튼 클릭!
( 모든 ip 접속을 허용한다는 의미이다.)

그 후 다시 서버를 실행해보니 정상적으로 데이터를 읽어올 수 있게 되었다.

profile
더 많은 사람들이 더 좋은 정보와 서비스를 누릴 수 있게!!

0개의 댓글