[TIL] (230830) AWS 원격서버를 종료했는데 내부에서 프로그램이 돌아간다?

Noh Jihyeon·2023년 8월 30일
0

TIL

목록 보기
15/49
post-thumbnail

이번주 과제를 진행하기 위해 파일을 build 하여 jar를 원격 서버에 배포했다.
원래는 nohub을 사용하지만 과제제출이 완료되면 3~4시간 뒤에 종료할 생각으로 nohub을 사용하지 않았다.
실행됐던 cmd창은 꺼져있고 이미 EC2와 RDS는 삭제된 상태였다.
기존에 사용하던 SQL 3306 포트는 사용중으로 나오고 있다. 정상적으로 종료 및 기존 SQL로 실행되는 상태로 변경해보자!


🔸문제점

과제제출 확인완료 후 jar를 실행종료하려고 켜둔 cmd창을 열었는데 자동종료가 된 건지 창이 모두 닫혀있었다.

$ java -jar Spring_Lv1-0.0.1-SNAPSHOT.jar

이 명령어로 실행했기 때문에 터미널 세션을 종료하거나 원격 서버를 종료하면 프로그램 실행도 자동으로 종료되는 걸로 알고 있어서 대수롭지 않게 생각하고 그냥 AWS에서 EC2, RDS를 제거했다.

그런데 그 이후로 컴퓨터의 발열이 심하고 프로그램이 돌아가는듯한 소리가 마치 원격서버에 jar파일을 실행시켰을 때와 비슷해서 프로그램이 실행되고 있는 건지 의심이 갔다.



🔸시도해 본 것들

나는 이미 원격서버를 제거했는데 이걸 어떻게 확인하나 싶었다.

죽은 서버를 살리는 방법은 없고 새로 생성해도 다른 주소의 서버가 생성되기 때문에 난감했다.

내가 서버삭제를 잘못해서 서버가 살아있는 건가 싶어서 원격서버의 주소로 접속해 보니 없는 페이지로 나오는 걸 보니 다행히 그건 아니었다.

어떤 식으로 접근해야 되나 고민하다가 우선 접근이 가능한 것부터 생각해 봤다.

서버는 제거했고 제공되었던 서버주소는 없는 것으로 확인했으니 서버의 문제는 아닐 것이다.

그럼 남은 건 RDS이다.

생각해 보니 RDS의 포트도 3306이고 기존 포트도 3306이었다.

https://velog.io/@yes_jihyeon/TIL-780jibph

이 상황이 생각나서 3306 포트에서 실행되고 있는 프로그램이 존재하는지 알아보았다.

1. PID 확인하기

netstat -ano

이 명령어를 통해 확인하려 했는데 화면이 로딩되다가 자동종료가 되었다.
이전에는 현재 활성화된 PID가 모두 출력되고 창이 닫히진 않았는데 지금은 자동종료가 되어 PID를 확인할 수가 없었다.

이 cmd에서 이전과는 다른 문제가 발생했으니 아마 내가 해결하려는 문제와 연관되어 있지 않을까?

나는 이 화면을 어떻게든 봐야겠다는 생각이 들었고 일단 구분이 편하도록 기존 MySQL의 포트를 3307로 바꿔놨다.

몇 번의 시도 끝에 화면이 빠르게 로딩될 때 마우스로 드래그를 시도하니 드래그를 한 시점에서 화면이 멈춘다는 걸 알아냈고 타이밍을 잘 봐서 화면을 멈춘 후 3306 포트가 있는지 확인했다.

존재하지 않아야 할 3306 포트의 PID가 있었고

resmon을 통해 해당 PID가 동작중인 것을 확실히 확인 후

taskkill /PID <PID번호>

를 진행했다.


🔸해결


RDS가 차지하고 있던 3306 포트의 PID를 이용하여 강제종료를 시켰다.


🔸알게 된 점

이전에도 그랬지만 데이터베이스 프로그램을 지운다고 해서 그 DB가 차지하고 있던 포트까지 삭제되는 것은 아닐 수 있다.

또한 원격서버를 삭제할 때는 서버를 지우기 전에 해당 서버에서 실행되고 있는 작업이나 환경을 확인한 후, 가장 마지막에 서버를 삭제하는 것이 좋을 것 같다.

profile
꼭꼭 씹어서 소화시키는 맛있는 코딩

0개의 댓글