작성
·
81
답변 4
0
안녕하세요 진형박님! 질문 잘 주셨습니다:D
우선 localhost:8080으로 접속하셔서 hello가 뜬 이유는
진형박님이 가지고 계신 컴퓨터에서 Spring Boot가 실행되고 있기 때문입니다.
하지만 EC2 인스턴스의 컴퓨터에서는 Spring Boot가 실행되고 있지 않거나
보안그룹 설정이 잘못되어서 말씀해주신 대로 제대로 된 페이지가 뜨지 않았을 수 있습니다.
우선 EC2에서 Spring Boot 서버가 정상적으로 실행될 수 있도록 먼저 해결해보면 좋을 것 같습니다.
EC2에 설정하신 보안그룹을 캡쳐해서 한 번 올려주실 수 있을까요?
그리고 EC2에서 Spring Boot 서버를 실행시키신 명령어를 어떻게 입력하셨는 지
순서대로 보여주시기 바랍니다.
또한 EC2에서 Spring Boot 서버가 실행되고 있는 지를 확인하기 위해
EC2 서버에서 sudo lsof -i:80
이라는 명령어를 입력하신 뒤에
출력값을 캡쳐해서 올려주시기 바랍니다!
0
server.port=80은 그대로 두고 인바운드 규칙에 8080을 추가하고 나서 그냥 포트번호를 입력하면 ERR_CONNECTION_REFUSED이 뜨고 :8080을 붙이면 Whitelabel Error Page가 뜹니다. 하지만 "/"에 대한 화면은 hello가 뜨도록 따로 설정해놔서 http://localhost:8080/ 을 들어가면 hello가 뜨고 IP주소에서는 Whitelabel Error Page가 뜨는 문제가 생깁니다.
0
EC2 인스턴스에서 보안그룹 인바운드 규칙에 사용자 지정 TCP 8080을 추가하게 된다면 차후 진행되는 ELB 보안규칙에도 8080을 추가해야되나요? 리스너에서도 포트 범위를 작성하는 부분이 있는것같아서 질문 드립니다!
0
안녕하세요, 인프런 AI 인턴입니다. 진형박님.
Spring Boot 애플리케이션을 EC2 인스턴스에서 실행 중이신 것 같은데, ERR_CONNECTION_REFUSED
오류가 발생하면서 AWS 퍼블릭 IP나 도메인 주소로 접속되지 않는 문제를 겪고 계시는군요. 주로 이러한 문제는 다음과 같은 이유로 발생할 수 있습니다.
보안 그룹 설정: 인바운드 규칙에 HTTP(80 포트)뿐만 아니라 어떤 경우에는 애플리케이션이 사용하는 포트 (예: 8080)도 추가로 열어야 할 수 있습니다. 올바르게 설정했다면 HTTP(80 포트)로 접속 시 문제가 없어야 합니다.
네트워크 인터페이스와의 연결 문제: AWS에서는 로컬 환경에서 모든 인터페이스(0.0.0.0
)로 애플리케이션을 진행해야 외부에서 접근이 가능합니다. Spring Boot 애플리케이션의 application.properties
에 다음과 같은 설정이 필요할 수 있습니다:
server.address=0.0.0.0
방화벽 설정 확인: 서버 내에서의 방화벽 설정이 포트를 차단하고 있을 수 있습니다. 이 경우에는 AWS EC2 보안 그룹 외에도 서버 자체의 방화벽을 확인해봐야 합니다.
애플리케이션 로그 확인: Spring Boot의 로그를 확인하여 애플리케이션 수준에서 발생하는 오류가 있는지 체크해보세요.
유사한 문제 해결을 위한 참고 URL은 아래와 같습니다:
- Express 서버를 EC2에 배포시 publicIP로 접속시 연결거부가 발생하고 있습니다: 관련 설정 및 보안 그룹 설명을 제공합니다.
- 인바운드 규칙 설정 문제: 인바운드 규칙 관리 관련 조언을 제공합니다.
위의 조언을 기반으로 접속 문제가 해결되길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.