[TIL] about .env file

Cherry Jin·2023년 11월 20일
0

sparta_내배캠

목록 보기
25/53
post-thumbnail

보안 유지를 위해 env 파일에 환경변수를 정의해놓고 사용할 수 있다. 때문에 env는 github에 올리지 않는다.

개발단계에서는 vs code등에서 env파일을 만들어 그 안에 환경변수들을 넣는다.
지금 나의 레벨에서 env의 내용은 다음과 같았다.

  • DB_HOST
  • DB_USER
  • DB_PASS
  • DB_NAME
  • DB_PORT
  • JWT_SECREAT_KEY

해당 내용은 프로젝트 폴더 내의 파일에서 프로젝트 타입에 따라(commonJS/module-ES6) import/require 하여 불러와서 쓴다. 프로젝트 폴더에 dorenv 라이브러리를 설치하고 사용한다. - 후에 EC2등에 배포할때에도 설치해야한다.

npm install dotenv  //dotenv설치

//commonJS
require("dotenv").config();
//commonJS 키 불러올때
process.env.DB_HOST
  • CommonJs 예시
//config.js - json파일이 기본으로 되어있다. 확장자명을 js로 바꾸고 내용도 js에 맞게 수정이 필요하다.

require('dotenv').config();

const env = process.env;
const development = {
	username: env.DB_USER,
	password: env.DB_PASS,
	database: env.DB_NAME,
	host: env.DB_HOST,
	dialect: 'mysql',
};
  • ES6 module 예시 -
//ES6 module도 마찬가지로 json->js 로 확장자 변경이 필요하다.
import dotenv from "dotenv";
dotenv.config();

const env = process.env;
const development = {
	username: env.DB_USER,
	password: env.DB_PASS,
	database: env.DB_NAME,
	host: env.DB_HOST,
	dialect: 'mysql',
};

작성한 env 파일은 깃허브 레포지토리에 절대 올리지 않는다....따라서 gitignore 파일을 생성해서 아래 내용을 쓴다.

.env
.env.local

env 파일 EC2에 만들기 (Mac os-ubuntu기준)

env 파일을 만들어서 깃허브에 올리고 배포단계를 하려는데 문제가 있다. 내 깃허브 레포지토리에는 env 파일이 올라가지 않았다. 하지만 배포하려면 저 환경변수가 있어야한다. EC2에 따로 생성하거나 복사를 해와야하는데 복사는 할줄 모르기때문에 :).. 생성한다.

터미널에서 인스턴스로 접속한다

ssh -i 키페어파일 ubuntu@인스턴스에 있는 퍼블릭IP
//다음과같이 써야한다.
ssh -i keypair.pem ubuntu@00.000.00.00

그 다음엔 node.js가 설치되어야한다.

//18.최신버전을 설치한다. 
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

sudo apt-get install -y nodejs

//다 설치되면 버전을 확인한다.
node -v
npm -v

npm 버전이 확인되면 dotenv를 설치한다.

npm install dotenv

env 파일을 생성한다. (프로젝트 폴더 안에 들어가 있는지 꼭 확인)

vim .env

아래는 이해를 위해 캡쳐했다.
아래와 같은 ~ ~ ~ 표시가 있으면 env 파일 내부에 쓸 준비가 된 것이다.

vscode 등 사용중이던 env 파일에서 환경변수 내용을 복사해와서 붙여넣는다.

DB_HOST="RDS엔드포인트"
DB_USER="유저네임"
DB_PASS="비번"
DB_NAME="데이터베이스 이름"
DB_PORT= 포트
JWT_SECREAT_KEY="JWT비밀키"


:wq  //작성한것 저장 후 나가기

이제 env 파일이 생성되었다.

ls -la  // 폴더 안에 env 파일이 잘 만들어졌는지 확인한다.

서버가 잘 돌아가는지 확인하고 잘 되었다면 pm2를 설치해서 꺼지지 않는 서버를 만든다.

//env 적용 테스트
node app.js

//터미널이 종료되어도 서버가 살아있도록 pm2설치 -관리자모드에서 설치한다.
sudo -s
npm install pm2 -g
//pm2가 설치된 것을 확인한 후 실행하려는 app.js파일 시작
pm2 start app.js
profile
풀스택이 되버린 주니어 개발자

0개의 댓글