작성
·
55
·
수정됨
0
강의 파트 : 섹션2. 백엔드 API 서버 배포하기 (EC2)
강의명 : [실습] 7. Express 서버를 EC2에 배포하기(영상시간 4:52~5:13)
문의 내용 : EC2에서 "sudo pm2 start app.js"으로 배포를 실시하는데, publicIP로 접속시 연결거부가 발생하고 있습니다.
강의문서 : https://jscode.notion.site/7-Express-EC2-5f90f0ece37943f99dffbf29a21bdd93
(강의 내용의 코드를 복사&붙여넣기 하여 진행하였습니다)
권한 상태 : IAM 통해 별도의 사용자를 생성, 해당 사용자 계정에 권한을 부여하여 실습을 진행하고 있습니다.
부여 권한 1) AmazonEC2FullAccess
부여 권한 2) AmazonRDSFullAccess
부여 권한 3) AWSCloudShellFullAccess
부여 권한 4) EC2InstanceConnect
(이하 현 상황에 대한 스크린샷 및 간단한 첨언입니다)
안녕하세요.
sudo pm2 start app.js명령까지 실시하여 배포를 실시하였습니다만, 아래의 화면처럼 연결이 거부되고 있습니다.
혹시 제가 인지못한 에러가 있을까 싶어서
sudo npx pm2 monit 명령등으로 에러를 체크하였습니다만 특별한 에러는 찾지 못하였습니다.
제가 설정을 하는 중에 빠뜨리거나 잘못된 부분이 있는 거 같은데 찾지 못하고 있습니다.
조언을 부탁 드립니다.
답변 2
1
안녕하세요, 인프런 AI 인턴입니다. 김보성님.
Express 서버를 EC2에 배포했을 때 발생하는 ERR_CONNECTION_REFUSED
오류는 주로 다음과 같은 이유로 발생할 수 있습니다.
보안 그룹 설정 확인: 인바운드 규칙에서 HTTP 또는 사용 중인 포트가 열려 있어야 합니다. 기본적으로 EC2 인스턴스의 보안 그룹에서 80번 포트(HTTP)를 열었는지 확인하세요. 만약 다른 포트를 사용하고 있다면 해당 포트도 열어야 합니다.
포트 설정 확인: Express 앱이 다른 포트에서 실행되고 있는지 확인해 보세요. app.js
파일에서 설정한 포트와 실제로 접속할 때 사용하는 포트가 일치해야 합니다.
방화벽 설정 확인: 서버 내에서의 방화벽 설정이 특정 포트를 차단하고 있는지도 확인해 보셔야 합니다.
애플리케이션 로그 확인: pm2 logs
명령어를 이용해 애플리케이션에서 발생하고 있는 에러를 확인하세요. 애플리케이션 또는 네트워크 관련 오류가 발생할 수 있습니다.
프로세스 상태 확인: pm2 list
를 통해 어플리케이션이 각각 올바르게 실행 중인지 확인하십시오. 실행 중이지 않을 경우, 포트나 경로 설정 문제일 가능성을 염두에 두세요.
아래는 유사한 문제를 해결하거나 참고할 수 있는 링크입니다. 추가적인 설정 방법 등을 확인해보세요.
위의 내용을 참고하시어 Express 서버의 네트워크 관련 설정 및 AWS 보안 그룹 설정을 수정해 보시기를 권장드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
안녕하세요 보성님!! 잘 해결하신 것 같네요😊
학습하시다가 또 궁금하신 점이나 막히시는 점 생기시면
언제든 질문 남겨주세요~~
해결방법도 공유해주셔서 감사합니다ㅎㅎㅎ
to. 인프런 AI 인턴
답변 감사합니다.
[1.보안 그룹 설정 확인] 에서 제가 80번 포트 설정을 하지 않았네요.
([실습]5. EC2 접속 강의의 3:10 참조)
[실습]5. EC2 접속 강의의 3:10을 보면 2번째 줄이 포트범위가 80인데 443으로 하고 가버렸네요;;
위처럼 80포트 추가해준 다음 다시 접속을 시도하니 잘 됩니다.
7번의 배포전에 이전강의의 다른 설정부분에서 제가 실수가 있었습니다.
동일한 오류 겪으시는 분들께 도움이 되길 바랍니다.