개발

Connection timed out 문제 해결

오늘 할 일을 내일로 2024. 1. 16. 18:24

AWS ec2 로 Django 서버를 외부에서도 접속 할 수 있도록 배포하여 API를 사용 할 수 있게 하였다. 

 

vue 프로젝트도 Django 서버와 같은 ip 주소로 열고 싶어서 배포를 시도 하던 중 vue 프로젝트가 제대로 실행이 되지 않고 엄청나게 렉이 걸리기 시작했다. 심지어 이 전까지는 제대로 실행되던 Django 서버까지 먹통이 되어버렸다. 

 

일단 vue 프로젝트를 실행 중이던 process를 찾아 kill을 시키니 Django 서버는 제대로 작동하였다. 

 

제대로 고쳐진 줄 알았으나.. 서버가 제대로 작동하지 않는다는 연락을 받았다. (최종 발표 당일 새벽이라 정신나갈 뻔..

 

 

어떤 문제인지 알아보기 위해 서버에 접속하려 하는데

분명 5분 전까지만 해도 접속이 되던 서버에 연결이 되지 않는다는 오류 메세지를 받았다. 

 

찾아보니 이유는

1. 방화벽에서 막힘

2. 서버가 너무 바빠서 연결할 수 없음

3. connection pool에서 connection을 모두 사용 중임

 

이렇게 3가지 였는데, 이 전까지는 제대로 서버에 연결이 가능했으므로 방화벽 문제는 아니었다. 

 

어디서 문제가 생긴 건지 알 수 없어 AWS에 들어가서 instance 상태를 확인해 보았다. 

 

위 사진은 문제가 해결된 뒤라 문제가 없다고 표시됨

 

현재 실행 중인 Instance의 정보 아래 탭 중 Statuse 탭을 들어가니 

Instance status checks 부분이 Failure ~~~ 이라고 되어있었다. 

 

옆에 문제 해결 방법이 나와있었는데 그걸 따라서 해당 Instance를 reboot 시켜 주었다. 

instance를 선택하고 Instance state에서 Reboot instance를 하면 된다.

 

다행히 Instance를 Reboot 해주었더니 문제가 해결 되었다. 

 

 

instance를 reboot한 후에는 전에 백그라운드로 열어 두었던 서버가 다 종료되니 다시 접속하여 Django 서버를 백그라운드로 실행해 주면 된다. 

 

 

 

<참고>

https://romainefabula.tistory.com/87

 

네트워크 프로그램 오류의 이해

네트워크 프로그램은 자주 만들 일도 없고, 문제도 아주 가끔 발생하기 때문에 매번 새로운 느낌이다. 그래서, 네트워크 프로그램이 작동하는 방식과 오류가 발생하는 원인에 대해서 설명하려

romainefabula.tistory.com