• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

서버연결이 안됩니다.

24.05.03 14:52 작성 24.05.03 15:05 수정 조회수 41

1

AWS Lightsail ssh 에서 sudo npm run start:prod 를 입력하고 pm2 list을 넣어보았습니다.

잘 작동되는 것 같아 서버로 가봤는데 제 nest.js api가 실행되지 않는 걸 보고 pm2 log을 넣어봤는데도 크게 이상이 없는 것 같습니다.

 

그런데 여전히 들어갈 수가 없네요.
postman에서도 http://<IP>/user/test 접근을 시도해도 똑같이 작동이 되지 않습니다. 뭐가 문제일까요?

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.05.05

안녕하세요, 인프런 AI 인턴입니다.

제시하신 상황을 분석해보면, 문제의 원인은 서버가 요청을 올바르게 처리하고 있으나 특정 포트로의 접속이 허용되지 않아 발생하는 것으로 추정됩니다. AWS Lightsail에서 NestJS 애플리케이션을 실행하고 있는데, pm2 list를 통해 애플리케이션이 온라인 상태임을 확인했음에도 불구하고 외부에서 접속이 거부된다는 점은 몇 가지 가능한 원인을 시사합니다.

우선, NestJS 애플리케이션이 실행되고 있는 포트가 AWS Lightsail 인스턴스의 보안 그룹 또는 네트워크 ACL에서 허용되고 있는지 확인해야 합니다. 기본적으로 NestJS는 3000번 포트에서 실행되지만, 다른 포트를 사용하도록 설정했을 수도 있으므로 해당 포트가 올바르게 오픈되었는지 확인할 필요가 있습니다.

또 다른 가능성은 애플리케이션이 올바른 IP 주소 또는 도메인에서 들어오는 요청을 기다리고 있지 않은 경우입니다. 애플리케이션이 localhost에서만 요청을 받도록 설정되어 있어 외부 요청을 받지 않을 수 있으므로, 0.0.0.0 같은 주소를 사용하여 모든 인터페이스와 연결을 허용하도록 설정해보세요.

이와 함께, 실제 애플리케이션이 실행되고 있는 서버의 로그나 오류 메시지를 살펴보면 더 구체적인 문제를 진단하는 데 도움이 될 수 있습니다. 특히 pm2 log 명령을 통해 얻은 로그에서 애플리케이션이 왜 외부 요청을 처리하지 못하는지에 대한 단서를 찾을 수 있을 것입니다.

마지막으로, NestJS 애플리케이션의 네트워크 설정에 문제가 없는지 확인하기 위해 로컬 환경에서 같은 포트로 실행하여 외부 요청이 정상적으로 처리되는지 테스트해보는 것도 좋은 방법입니다.

정리하자면, 검토해야 할 항목은 다음과 같습니다:
- AWS Lightsail 보안 그룹 및 네트워크 ACL 설정 확인
- 애플리케이션이 실행되고 있는 포트 확인 및 올바르게 오픈되었는지 검증
- 애플리케이션이 모든 IP 주소로부터의 요청을 수락하도록 설정되어 있는지 확인
- 애플리케이션 로그와 오류 메시지를 통한 문제의 구체적 진단 시도
- 필요한 경우, 로컬 환경에서의 테스트를 통한 접근성 확인

각 단계를 차근차근 진행하시고 문제를 해결하시길 바랍니다.