데이터베이스 연결

서버 환경 설정

프도의길 2022. 5. 14. 04:35

EC2 인스턴스에서 실행되고 있는 서버는, 그 자체로는 작동하고 있지만, 아직 데이터베이스에 연결하지는 않았습니다.

서버의 환경 설정을 통해 지난 실습에서 생성한 RDS 인스턴스에 접속하고, 클라우드 데이터베이스를 사용할 수 있게 해봅시다.

1. 서버 코드에 저장된 .env 파일에 환경 변수 설정하기

EC2 인스턴스에서 실행하고 있는 서버를 종료합니다.

  • PM2를 이용해 프로세스로 실행 중인 경우 pm2 stop <id>
  • node나 npm 명령을 통해 서버를 실행한 경우 Ctrl + C

이제 환경 설정 파일을 수정해 봅시다. 먼저 .env.example의 파일명을 .env로 바꿔줘야 합니다.

mv .env.example .env

터미널에서 스프린트 코드의 server 디렉토리로 이동한 뒤, nano를 통해 .env파일을 열어봅니다.

nano .env

.env 파일에는 아래와 같이 4개의 환경변수가 저장되어 있습니다. 각 환경 변수에 특정 값을 저장해주어야 합니다.

 

  1. DATABASE_HOST 변수에는 생성한 DB 인스턴스의 엔드포인트 주소를 넣습니다.
  2. DATABASE_USER 변수에는 마스터 사용자 이름을 넣습니다.
  3. DATABASE_PASSWORD 변수에는 마스터 암호를 넣습니다.
  4. DATABASE_PORT 에는 DB 인스턴스의 port 번호를 넣습니다.

위 스크린샷에 보이는 것처럼 환경 변수를 할당하는 과정이 끝나면, Ctrl + X 키를 입력하여 변경 내용을 저장합니다.

 

위와 같은 화면이 보이면 y를 입력하고 Enter 키를 통해 파일을 저장합니다.

 

.env 파일을 통한 환경 설정이 완료되면, 서버를 재실행합니다.

 

2. 서버 실행

  • sudo npm start 명령어를 입력하여 서버를 재실행합니다.
  • PM2를 이용해서 프로세스로 실행할 수도 있습니다.
    • authbind --deep pm2 stop app.js 명령어를 이용하여 프로세스를 정지합니다.
    • authbind --deep pm2 start app.js 명령어를 이용하여 프로세스를 시작합니다.

서버를 실행하고 다시 s3 버킷의 엔드 포인트 주소로 접속해서 연결 테스트를 진행합니다. 이름에 김코딩 을, 비밀번호에 1234 를 입력합니다.

 

아래와 같은 메시지가 화면에 보인다면 데이터베이스 연결에 성공한 것입니다.

 

뭔가 제대로 되고 있지 않아요!

위 메시지가 보이지 않고 다른 메시지가 화면에 출력된다면 아래 사항을 체크해보세요.

  1. DB 인스턴스가 정상적으로 실행되고 있나요?
  2. 환경 변수에 제대로 된 값을 할당하지 않았는지(DB 인스턴스의 엔드 포인트 값을 환경 변수에 넣을 때, 앞에 http://를 붙이면 안 됩니다. 위 스크린샷의 예시를 참고해 주세요)
  3. .env.example 파일명이 .env로 정상적으로 변경되었는지 확인합니다.
  4. 크롬 개발자 도구의 Network 탭에 들어가서 요청, 응답 과정에서 어떤 오류가 발생하는지 확인합니다.

'데이터베이스 연결' 카테고리의 다른 글

RDS 인스턴스 생성/연결  (0) 2022.05.14