Study/Project

나만무 슬레이어즈 11

에린_1 2024. 5. 8. 00:10
728x90

나만무

EC2 서버와 RDS DB 연결하기

  1. EC2는 public / RDS는 private 인스턴스로 생성했다. - 보안 상의 이유
  2. 단순히 EC2 터미널에 접속해서 mysql 서버를 여는 건 성공했다.
    1. mysql -u [계정] -p -h [DB엔드포인트] → 이 명령어 쓰면 연결된다.
  3. 문제 : 우리는 로컬에서 작업을 해야한다. 로컬 작성 → 깃허브 업로드 → EC2 실행
  4. 1차 해결 : vs code에서 ssh 연결로 vs code에서 제공하는 UI로 테이블 작성 등이 가능해졌다.
  5. 문제 발생 : 결국 node.js 코드에서 CRUD를 하려면 mysql.connection에 성공해야한다. 이걸 어떻게 하냐
  6. 2차 해결 : 결국 RDS가 private에 있기 때문에 로컬 서버에서 연결하기는 불가능하다. gitHub Action이 다른 서버와 연결되어 있기 때문에 repo를 하나를 사용하는 지금은 함부로 건들 수가 없어서 EC2 터미널에서 git clone을 받아 서버를 실행했다. 이 단계에서 DB 연결 성공 로그 확인했다.
    1. 설치한 모듈 → sudo apt nodsjs, npm, mysql-server 등
    2. → npm i express, socket.io, mysql 등
  7. 문제 : 보안 상의 이유로 git에 올라가는 코드에 우리 endpoint나 pw 등을 직접 작성하면 안 됐다.
  8. 3차 해결 : EC2 터미널에서 nano [auth.sh](<http://auth.sh>) 라는 명령어로 환경변수로 endpoint, user, pw 등의 정보를 작성하고, 서버 코드에서 host: process.env.MYSQL_HOST 처럼 접근, 사용하면 됐다.
  9. 문제 : .sh 가 문제였는지 서버가 localhost로 DB에 연결을 시도했다. .sh가 있는 bin 폴더를 여기저기 옮겨봤지만 해결되지 않았다.
  10. 4차 해결 : EC2 터미널에서 touch .env 라는 명령어를 통해 .env 파일을 생성했다. nano .env 를 통해 중요한 정보를 파일에 작성해 주었다. 아래의 서버 코드와 같이 작성하여 dotenv 패키지를 불러오고 . env 파일을 로드해서 .env에 작성한 정보를 사용해서 서버를 실행했다.
    1. 설치한 모듈 → npm install dotenv
  11. const dotenv = require('dotenv'); dotenv.config();
  12. 문제 : 서버가 시작되고, DB연결이 성공했지만, 곧바로 연결을 닫는 문제가 생겼다.
  13. 5차 해결 : 현재 코드에서 모듈 로딩 시점에 데이터베이스 연결을 생성하고, 모듈 내보내기 직전에 연결을 종료하고 있는 코드를 수정했다.

pm2 사용

  1. PM2 : Node.js 애플리케이션을 관리하고 모니터링하기 위한 프로세스 관리도구
    1. 프로세스 관리
      1. node.js 애플리케이션을 백그라운드에서 실행하고, 재부팅 후에도 자동으로 실행할 수 있도록 관리
      2. 프로세스를 시작, 중지 재시작, 재로드, 삭제 등의 작업을 쉽게 수행할 수 있다.
    2. 모니터링 및 로깅
      1. 애플리케이션의 CPU, 메모리 사용량 등 시스템 리소스를 실시간으로 모니터링 한다.
    3. 자동 재시작
      1. 애플리케이션이 예기치 않게 종료되거나 오류가 발생한 경우 자동으로 재시작 한다.
  2. npm을 설치하고 시작한다.
    1. 접속 콘솔을 끄더라도 서버가 돌아갈 수 있도록 한다.
    2. sudo apt-get install npm
    3. npm start
  3. pm2를 설치한다.
    1. sudo npm install pm2 -g
  4. 설치가 완료되면 pm2를 이용해 서버 코드를 구동한다.
    1. pm2 start ./server/server.js
728x90

'Study > Project' 카테고리의 다른 글

나만무 슬레이어즈 13  (0) 2024.05.10
나만무 슬레이어즈 12  (0) 2024.05.09
나만무 슬레이어즈 10  (0) 2024.05.08
나만무 슬레이어즈 9  (0) 2024.05.04
나만무 슬레이어즈 8  (0) 2024.05.04