JUINTINATION

EC2 서버 타임존 변경 및 종료 스크립트 작성 본문

Amazon Web Services

EC2 서버 타임존 변경 및 종료 스크립트 작성

DEOKJAE KWON 2024. 7. 9. 21:55
반응형

이 글은 지난 Amazon EC2 시작하기에서 이어지는 내용이며, 지난번에 설명하지 않고 넘어간 mobaXterm 설정부터 시작하려고 한다.

 

Amazon EC2 시작하기

드디어 미루고 미루던.. 배포에 도전해보려고 한다. 지금까지 로컬로 많은 프로젝트를 돌려봤지만 실제로 배포를 해본 경험은 없기도 했고, 관련 지식도 아예 없다시피하니 계속 나중으로 미뤄

juintination.tistory.com

mobaXterm 설정

1. Session 클릭

mobaXterm을 실행하고 처음 화면에서 좌상단의 Session을 클릭한다.

2. SSH 설정

위와 같이 Remote host는 인스턴스의 IPv4 주소를 입력하고, Specify username은 ubuntu로 고정하고, Port는 22, 그리고 Use private key를 선택하여 키 페어를 생성할 때 받은 키를 선택하고 OK 버튼을 누르면 끝이다.

timezone 세팅

EC2 서버는 미국 시간 기준으로 타임존이 설정되어 있다. 미국 시간은 우리나라 시간보다 9시간이 늦기 때문에 다음과 같이 타임존을 변경해야 한다.

먼저 $ sudo timedatectl set-timezone Asia/Seoul 명령어로 타임존을 변경한 후에 $ timedatectl 명령어로 변경이 잘 되었는지 확인해보면 잘 적용된 것을 확인할 수 있다.

종료 스크립트 작성

타임존 세팅이 완료되면 서버를 재시작해야 한다. 매번 $ ps -ef 명령어로 PID를 찾고 직접 kill하면 번거롭기 때문에 이제 EC2에서 실행 중인 서버를 종료하는 스크립트를 작성해볼 것이다.

먼저 위와 같이 원하는 jar 파일이 있는 디렉터리로 이동한 후 $ vi spring-stop.sh 명령어로 스크립트 파일을 생성합니다.

이후에 위와 같이 스크립트를 작성하고 ESC 를 누른 후에 :wq 를 입력하고 엔터하여 스크립트를 저장하고 종료한다.

echo "Springboot Stop....."

echo 명령어로 서버가 종료된다는 것을 알린다.

Spring_PID=$(pgrep -f .jar)
echo $Spring_PID

Spring_PID라는 변수를 서버의 PID 값으로 초기화하고 화면에 출력한다. 사실 .jar 파일이 지금은 하나밖에 없어서 문제가 없지만 전체 파일명을 적어주는 것이 안전하긴 하다.

더보기
더보기

참고로 스프링부트에서 plain.jar 파일이 생성되지 않게 하려면 build.gradle에 다음과 같은 내용을 추가해야 한다.

jar {
    enabled = false
}
kill -9 $Spring_PID

$를 붙이지 않으면 변수가 아닌 문자열로 인식하기 때문에 Spring_PID 앞에 $를 붙여서 찾아낸 PID의 프로세스를 종료시킨다.

이후에 위와 같이 $ chmod u+x spring-stop.sh 명령어로 실행 권한을 부여한 후 $ ls -l 명령어로 확인했다.

 

그리고 위와 같이 $ ./spring-stop.sh 명령어로 실행중인 서버가 제대로 종료되는 것을 확인했다.


결론

특별히 어려운 부분은 없었다. vi도 예전에 사용해본 기억이 있었고 스크립트도 이해하기에 어려운 내용이 아니었다.

다음은 아마 nohup과 tail을 이용한 실시간 로그 모니터링과 cron에 대해서 작성할 것 같다.

728x90
Comments