[Nestjs] docker , Ec2 , 배포 에러 기록

쫀구·2022년 12월 19일
1

Ec2-nodejs 배포

목록 보기
1/1

nestjs, docker , ec2 , rds, mysql, nginx 서버 구축 후 배포
깊은 삽질을 통해 깨달음, Aws 인스턴스 보안그룹 설정을 반드시 확인하자!

결론 부터 말하자면 RDS 보안그룹 인바운드 규칙 설정을 하지 않았다.

-빌드 , 배포 과정은 생략-
내 pc 로컬에서 nestjs 프로젝트 도커로 빌드 후 이미지 파일을 허브에다 push 하고,
ec2 인스턴스에 pull 로 받아와 무중단 배포를 하려고 했다.

계속 연결을 하지 못했고, Ec2 보안그룹 부터 확인했다.

계속해서 빌드하고 괜한 도커파일내 명령어도 바꿔보고 , 했으나 원인을 찾지 못했고 깃허브에 직접 받아와 돌려 보았다.

[Nest] 9030  - 0/0/0, 0:0:0 PM  
ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)...
Error: connect ETIMEDOUT
    at PoolConnection._handleTimeoutError
    (/home/ubuntu/Server/api/node_modules/mysql2/lib/connection.js:189:17)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7)

db 에 연결이 되어 있지 않은것 같다? RDS 보안그룹을 확인보니 ec2 ip가 등록이 되어 있지 않았다.


vpc 보안 그룹 -> 인바운드 규칙 편집 에서 MYSQL/AURORA , 사용자지정, EC2 IP 주소를 등록 해줬다.
ip 주소만 입력하니 CIDR 블록, 보안 그룹 ID 또는 접두사 목록을 지정해야 합니다.
경고 문이 나와서 ip주소/32 서브넷 마스크를 입력하니 정상 등록되었다. 서브넷 마스크가 무엇인지도 찾아보게 되었군

드디어 서버가 열렸다..

profile
Run Start 🔥

0개의 댓글