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




