728x90
반응형

얼마전 새로운 언어에 대한 맛보기로 node.js 기초를 학습하고 배포까지 해보게 되었다.

이 경험을 토대로 현재 고도화 단계인 스프링부트 개인 프로젝트를 RDS 연결부터 진행해보았다.

연결 시 에러가 발생했는데 URL부분 작성 착오로 발생한 것이었고 해결하게 되었다.

 

처음에 에러 원인을 검색해보면서 다양한 원인들이 있다는 내용을 보았고

주 원인들인 퍼블릭 엑세스 설정, 보안 인바운드 규칙은 이미 알맞게 설정이 된 상태였다.

 

처음부터 여러 에러 메세지 중에서 link failure에 초점을 맞추지 못했지만

계속 시도하다보니 url문제인 것을 파악하게 되었다.

 

 

에러 내용 :

java.lang.RuntimeException: Driver cohttp://m.mysql.cj.jdbc.Driver claims to not accept jdbcUrl,...

 

 

해결 :

url 부분에서 jdbc:mysql:// 부분과 :포트 그리고 데이터베이스명 부분을 제대로 작성해주니

RDS 연결에 정상적으로 성공하여 Entity 테이블들이 생성되는 것을 확인했다.

spring:
  # Database 설정
  datasource:
    url: jdbc:mysql://엔드포인트:포트/데이터베이스명
    username: 사용자이름
    password: 비밀번호
    driver-class-name: com.mysql.cj.jdbc.Driver

 

 

프로젝트를 서버에 배포한 후에는 다시 이 url을 배포 주소로 바꿔줘야하니 잊지 않고 기억해두어야겠다.

728x90
반응형
728x90
반응형

AWS로 배포하기 생각보다 쉽지 않아..

 

Node.js 프로젝트를 배포하기 위해서 우분투로 EC2 접속하고

열심히 npm i, ls, node ... 투닥투닥

낯설지만 많이 봐왔던 명령어들이 있어서 어렵지 않게 잘 진행하고 있는데

서버가 가동되다가 몇 초가 지나면 아래와 같은 커넥션 타임아웃 에러가 무한 발생...

하지만 언젠가 마주해야 할 업무이지 않을까 해서 끝까지 도전해서 해결 완료.


에러 :

events.js:291
      throw er; // Unhandled 'error' event
      ^

Error: connect ETIMEDOUT

...


해결 :

- 연동할 EC2 정보 확인- RDS(DB) 보안그룹 생성- RDS(DB) 서브넷 그룹 생성

 

RDS의 보안규칙을 새로 생성해 주고, 사용하는 EC2에 맞게 설정하고 연결해 주었다.

 

프로젝트 실행 화면

 

이게 또 다른 누군가에게 일어난 동일한 에러에 대한 정답이 아닐 수도 있기에

검색을 통해 이 글을 보고 있다면, 더 다양하게 키워드를 잡고 검색해서

여러 방식으로 해결을 시도해 보면 좋을 것 같다.

한 번에 해결하는 것도 좋지만, 이런저런 시도를 통해 다양한 정보를 얻을 수 있을 것이다.

 

수시간동안 삽질을 하면서 검색하면서 나온 수많은 내용들을 시도해 보면서

방화벽 설정, timeout이 짧아서 그런 것인가? 하고 timeout도 변경을 시도해보고 했다.

추후에 보안 그룹 설정이 원이이었던 것을 어느 정도 인지하고

분명 RDS와 EC2를 동일하게 설정해 주어도 안 됐는데

새로운 규칙을 생성해서 설정해 준 뒤에 RDS에 연결을 해주니까

드.디.어. 정상적으로 서버도 가동되고 RDS도 정상적으로 작동했다.

 

이번 에러에 대한 해결은 살짝 시간이 걸렸지만

다양한 에러에 대해서도 알게 되었고, 이렇게 해결하게 되어 내심 뿌듯한 마음이 들었다.

Netlify로 프런트 프로젝트는 2회 배포해 본 경험이 있는데
백엔드 프로젝트, 그것도 3일만에 속성 학습한 Node.js 프로젝트를 배포해 보니

이건 내심이 아니라 정~~말 뿌듯하다고 생각했고

스프링부트 프로젝트도 얼른 배포해 봐야겠다는 의욕이 생겼다.

 

근데 과금 안되겠지?! 두근두근

팀프로젝트 했을 때 배포 담당한 팀원 2명이

이용중일 때 1주일마다 1달러씩 빠져나갔다는 얘기를 들었어서

내 AWS도 과금될까..하는 약간의 걱정 :)

 

ps. 백엔드 위주 작업이다보니 디자인은 코드펜에서 가져와서 작업해보았는데

기능부분에 집중할 수 있어서 굉장히 만족스러웠다!

부트스트랩은 틀 위주로 있고 직접 수정해야하는 부분이 많았는데

마음에 드는 페이지 디자인 코드를 통으로 가져올 수 있어서 꽤 유용하게 쓸 수 있겠다.

 

 

참고 사이트
 

아마존 RDS의 개념과 RDS와 EC2 연동하기

안녕하세요. 오늘은 RDS와 EC2를 연동해보도록 하겠습니다. RDS와 EC2를 연동하는 목적은 서버 인스턴스와 DB 인스턴스를 분리하여 사용하기 위한 목적으로 AWS를 사용하는 핵심 이유이기도 할 것입

developer111.tistory.com

 

728x90
반응형

+ Recent posts