AWS 서버 배포(EC2) & RDS연결

Jiyoung·2021년 4월 20일
0

AWS의 EC2를 통해 서버를 배포하고, 로컬DB와 RDS를 연결하는 방법은 다음과 같다.
(프로젝트 때의 배포 경험을 토대로 작성하였다.)

1. EC2 인스턴스 생성

2. EC2 인스턴스 접속 및 초기설정

EC2 인스턴스에 접속하여 local의 git repository 주소를 clone한다.

3. RDS 인스턴스 생성

엔진옵션은 로컬DB와 같은 종류인 MySQL로 선택하였다.

4. 로컬 MySQL을 통해 RDS의 DB 인스턴스 연결

mysql -u [마스터 이름] --host [엔드포인트 주소] -P 13306(포트번호) -p

5. 로컬 코드 중 index.js파일에 DB 연결 코드 작성

const models = require("./models/index.js");

models.sequelize.sync().then(() => {
    console.log("DB 연결 성공");
}).catch(err => {
    console.log("연결 실패");
    console.log(err);
})

6. 로컬 코드 중 Config.js코드를 RDS에 맞게 수정

RDS 정보 입력시에는 Port 번호를 추가로 설정해줘야 한다.

const dotenv = require("dotenv");
dotenv.config();

module.exports = {
  development: {
    username: "root",
    password: process.env.DATABASE_PASSWORD,
    database: "bemo_development",
    host: "127.0.0.1",
    dialect: "mysql"
  }, // 로컬 DB 정보 

  production: {
    username: "admin",
    password: process.env.DATABASE_PASSWORD,
    database: "bemo",
    host: "first-project-bemo.ckcoqv8wgkzy.ap-northeast-2.rds.amazonaws.com",
    dialect: "mysql",
    port: '13306'
  } // RDS 정보
}

7. 마이그레이션 실행

Sequelize Migration을 실행하여 RDS에 DB와 테이블이 생성되도록 한다.

npx sequelize-cli db:migrate

8. Git 설정

git add ., git commit -m '메세지', git push origin dev 후, PR 및 merge

9. EC2 인스턴스에서 pull받아오기

이 때 remote 연결되어 있는 git주소를 잘 확인해야 한다.(대소문자 구분)

git remote add upstream 프로젝트주소
git pull upstream dev

10. .env파일 생성 및 수정

EC2 인스턴스에서 해당 프로젝트 폴더 내에 env파일을 생성하고 RDS인스턴스 생성시 설정하였던 정보로 수정해준다.

touch .env //.env파일 생성 및 ls -a로 해당 파일 생성 확인
vim .env // .env파일 수정, i(수정), :wq!(저장), :q!(종료)
DATABASE_PASSWORD='RDS인스턴스_비밀번호'
DATABASE_USERNAME= RDS인스턴스_사용자이름
DATABASE_NAME='RDS_DB이름'

11. index.js파일 확인

EC2 인스턴스의 해당 프로젝트 폴더 내 index.js파일이 잘 설정되었는지 확인한다.

12. 서버 실행

npm start로 서버를 실행하여 'DB연결 성공'이 콘솔창에 뜨고 EC2 인스턴스의 퍼블릭 IPv4 주소로 접속하여 화면이 정상적으로 로딩되면 성공!

profile
경계를 넘는 삶

0개의 댓글