본문 바로가기
오류

[오류] AWS EC2 인스턴스 종료, 재시작 이후 스프링부트(SpringBoot) 프로젝트 배포 실행 오류 [ EC2에서 연결을 거부했습니다. ]

by 개발하는 지토 2020. 7. 16.

이번에 실습하면서 배포를 진행했었던 '프로젝트' 의 인스턴스에서 요금이 과금이 되는 것 같아서(1달러?ㅋㅋ) 일주일 정도 인스턴스를 꺼놨었다.

 

중지가 아닌 종료로!!

 

그리고 어제 자기 전에 다시 인스턴스를 실행하고 코드를 수정하여 깃허브에 푸시를 진행했다.

 

CodeDeploy에 배포 상태에 녹색불이 켜진 것을 분명히 보고...

잠을 청하고 오늘 아침에 출근을 하면서 나의 인스턴스 DNS로 접속을 해봤는데...

 

이게 왠걸?? 'ec2에서 연결을 거부했습니다.'라는 메시지가 뜨고 접속이 되지 않았다.

 

퇴근하고 집에와서 바로 접속 확인을 해보니 역시 되지 않았고...

 

배포 & 빌드, 그리고 EC2에서 jar파일도 확인해보고 로그도 확인했는데 실행이 제대로 되어있었다.

 

 

아니 근데 대체 왜 안되는가!!!!!!!!

 

EC2 인스턴스에서 'netstat -ntl' 명령어로 

 

 

8080, 80번 포트 LISTEN 상태인 것도 확인을 했다.

 

보안 그룹의 인바운드 규칙도 이상이 없고..

 

그래 일단 생각을 좀 해보자...

 

 

흠... 그리고 'curl @localhost:port' 명령어를 통해서 80,8080,8081,8082 포트를 전부다 체크를 해봤다.

 

그런데 이중에서 프로젝트가 실행되고 있는 8081 포트만 제대로 동작을 했다.

 

잠깐?!EC2 퍼블릭 DNS로 접속을 하면 80 포트로 실행이 되고 엔진엑스로 8081,8082 포트 중에 현재 실행을 시킨 포트로 연결을 시켜줬었는데....

 

여기에 대해 설명을 하자면...


Nginx(엔진엑스)로 무중단 배포를 구현한다고 프로젝트가 8081,8082 포트를 실행하도록 설정을 했었다.

 

하지만 DNS로 접속한 사용자는 80 포트로 접속을 하고 nginx reload 명령어를 통해 서버 내부에서 8081 포트나 8082포를 바라보도록 설정했었던 게 떠올랐다.


 

그렇다는 건?? 엔진엑스.. 엔진엑스.. Nginx... nginx..?!?????????????????????????

 

 

생각해보니 EC2 인스턴스를 종료했다가 다시 실행한 후에 Nginx를 실행시켜준 적이 없었다는 게 떠올랐다.

 

'sudo service nginx start' 명령어로 Nginx를 실행시켜주고 'Starting nginx: [ OK ]'라는 메시지를 확인했다.

 

두 근 세근 설레는 마음으로 DNS로 접속을 해봤더니!! (링크)

 

Springboot로 구현한 웹서비스(실습용)

 

이렇게 접속이 완료되었다 ㅎㅎ [ 글 제목은 무시.. 실습용 홈페이지랍니다 :) ]

 

 

 

어쨌든 이 거창한 듯 보였던 오류(?)는 나의 실수...로 생긴 해프닝으로 끝이 났다.

 

아직 AWS 환경에 대해 많은 걸 알지 못했고 빌드, 배포도 이번에 처음 진행했었던 거라 아직은 모르는 게 정말 많다.

 

작은 실수들이 정말 많았고 그래도 직접 해보면서 여러 가지 상황, 오류들을 해결하면서 배우는 부분이 많다.

 

앞으로도 해야 할게 산더미 같지만 지금처럼 즐기면서 하면 금방금방 하지 않을까 싶다.

댓글