고든램지가 운영하는 RAMSAY'S KITCHEN 를 방문했다. 에피타이저로 SHRIMP COCKTAIL 을 시키고 시그니처 메뉴인 BEEF WELLINGTON 를 시키고 스테이크 하나와 리조또 한 종류를 시켜 먹었다.

 

 

 

 

 

- TIL -

 

문제 발생)

 

분명히 배포가 성공되었고 제대로 통신이 되는지 테스트까지 마친 뒤 프론트 서버를 개발하는 지인에게 서버의 주소를 알려주고 통신이 가능한 상태라고

얘기했다.

 

그런데 프론트 개발자 분이 통신을 시도했을때 정상적으로 통신되지 않는 현상이 발생되었고 포스트맨 앱으로 확인해보니 다음과 같은 문제가 발생했다.

 

분명히 어제는 테스트시 정상 통신이 되었는데 오늘 확인해보니 통신이 되지 않는 모습

 

혹시 몰라 GCP 서버가 내려갔는지 확인해보았지만 정상적으로 살아있는 모습이다.

서버가 활성화 되어있는 모습

 

즉 서버 PC 는 켜져있는데 웹서버만 다운되었다는 소리인데...

이유를 검색해봐도 마땅한 해결책이 나오지 않았고 웹서버를 다시 CLI 환경에서 가동시키니 정상적으로 작동되는 것을 확인했다.

 

그렇다면 웹서버가 다운되는 이유를 알기 위해 웹서버가 켜지고 다운되는데 까지 시간을 한번 측정해보고자 했다.

( 각 테스트는 1분마다 주기적으로 연결이 되는지 확인을 통해 진행되었다 )

 

16:48 웹서버 실행 후 SSH 접속 종료 -> 16:58 웹서버 다운

17:04 웹서버 실행 후 SSH 접속 유지 -> 17:14 웹서버 정상 작동 확인 후 SSH 종료 -> 17:24 웹서버 다운

 

테스트 결과 10분 주기로 웹서버가 종료되는 것 확인....!

 

 

 

 

 

문제 해결 방법1)

 

나는 저 10분 단위가 뭔지 고민하던 와중에 혹시 절전모드 때문에 웹서버가 종료되는 것이 아닌가라는 생각을 하게 되었고 리눅스의 절전모드

해제 방법에 대해 구글링하여 절전 모드를 종료하고 테스트 해보기로 하였다.

 

1) Ubuntu(Linux) 절전 모드 해제하기

더보기

절전 모드를 해제하기 전에 절전모드가 설정되어 있는지 확인

( sudo systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target )

enabled 로 설정되어 있는 것으로 보아 모두 활성화 되어 있는 상태인가 보다

 

 

 

 절전 모드를 모두 비활성화

( sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target )

절전 모드를 비활성화

 

 

 

절전 모드 확인 

( sudo systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target ) 

아까완 달리 enabled 가 사라진 모습!

 

 

 

절전모드를 다시 설정해야하는 상황에는 아래 명령어를 입력하면 된다.

( sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target )

 

2) 서버 작동 테스트

 

17:41 웹서버 정상 작동 -> 17:50 웹서버 다운

 

테스트 결과 절전모드로 인한 문제는 아닌 것으로 보인다....

 

 

 

 

 

해결 방법2)

 

곰곰히 다른 문제를 생각해보던 와중 혹시 SSH 연결이 끊기면서 콘솔이 닫혀서 웹서버가 종료되는 것은 아닌지에 대한 의문이 생겼다.

 

그래서! 콘솔이 닫혀도 계속 서버가 작동되는 방법을 서치하던 와중에 nohup 이라는 명령어를 알게 되었고 이 방법으로 다시 테스트를 진행해보고자 한다!

 

1) nohup 명령어를 사용하여 웹서버 실행

더보기

기존 명령어와 동일하지만 앞에 nohup 을 붙여주어서 shell 창이 껴져도 백그라운드에서 서버가 작동할 수 있게 작동시켰다.

( sudo nohup java -jar [자바 프로젝트의 jar 파일] )

nohup 으로 실행

 

2) 서버 작동 테스트

18:00 웹서버 정상 작동 -> 18:10 웹서버 정상 작동 -> 18:20 웹서버 정상 작동 -> 18:30 웹서버 정상 작동

-> 23:02 웹서버 정상 작동

 

 

 

 

 

후기)

결론은 SSH 연결을 종료하면서 10분 정도 텀을 두고 서버의 쉘이 종료되기 때문에 발생된 일이었다.

nohup 명령어를 통해 백그라운드로 프로레스를 실행해 놓은 상태인데 이보다 좋은 방법은 nginx 를 사용하여 배포하는 방식이라고 하니 해당 방식을 구현해보도록 해야겠다.

 

그리고 무료 할당된 서버의 성능이 썩 좋은 편은 아니라서 조만간 미니PC 를 하나 할당해서 공인 IP 를 부여하고 DNS 와 매치하여 배포하는 과정을 진행해보려 한다.

728x90

+ Recent posts