EC2 인스턴스

seongmin·2022년 12월 2일
0

AWS

목록 보기
2/4
post-thumbnail

EC2 인스턴스 연결

  1. AWS 인스턴스 탭에서 연결하고자 하는 인스턴스를 선택한 후 연결 버튼을 클릭하면 인스턴스에 연결하는 방법을 확인할 수 있다.

  1. Session Manager를 통해 연결해보겠다.

  1. 인터넷의 새로운 탭에 아래 이미지와 같은 터미널이 열린다.

  1. bash 쉘로 변경하여 진행한다.

EC2 인스턴스에서 서버 실행

  1. 패키지 매니저가 관리하는 패키지의 정보를 최신 상태로 업데이트하기 위해서 아래 명령어를 사용한다.
sudo apt update
  1. java를 설치한다.
sudo apt install openjdk-11-jre-headless
  1. java -version 명령어를 입력하여 설치가 잘 되었는지 확인한다.

  1. SSH를 등록한다.

https://velog.io/@bimilless/SSH-%EB%93%B1%EB%A1%9D

  1. git clone 으로 repository를 클론한다.
ubuntu@ip-172-31-41-164:~$ git clone git@github.com:bimilless/be-sprint-deployment.git
Cloning into 'im-sprint-practice-deploy'...
Username for 'https://github.com': kimcoding
Password for 'https://kimcoding@github.com:
...
  • ls 를 입력하여 정상적으로 클론이 되었는지 확인한다.

  1. 터미널을 통해 스프린트 코드 안의 DeployServer 디렉토리로 이동한다.
cd be-sprint-deployment/DeployServer
  • 이후 빌드작업을 진행한다.
./gradlew build

빌드 진행이 완료되었으면, ls 명령어를 사용하여 build 폴더 확인이 가능하다.

  1. 해당 명령어를 이용하여, 빌드된 파일을 실행한다.
java -jar build/libs/DeployServer-0.0.1-SNAPSHOT.jar

  • EC2 인스턴스의 퍼블릭 IPv4 DNS 주소를 이용하여 접속 테스트를 한다.

Spring Boot 백 그라운드 실행

$ nano restart.sh // 에디터로 파일을 생성한 후 아래 내용을 붙여넣기 한다.
================================================================================
#!/bin/bash

# DeployServer-0.0.1-SNAPSHOT.jar가 실행중이라면 프로세스를 종료합니다.
ps -ef | grep "DeployServer-0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}' | xargs kill -9 2> /dev/null

# 종료 이력을 파악하여 적절한 문구를 출력합니다.
if [ $? -eq 0 ];then
    echo "my-application Stop Success"
else
    echo "my-application Not Running"
fi

# DeployServer-0.0.1-SNAPSHOT.jar를 다시 실행하기 위한 과정을 진행합니다.
echo "my-application Restart!"
echo $1

# nohup 명령어를 통해 백그라운드에서 DeployServer-0.0.1-SNAPSHOT.jar를 실행합니다.
nohup java -jar build/libs/DeployServer-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev > /dev/null 2>&1 &

리눅스에 위와 같이 파일을 저장하고 아래 명령어를 통해 실행 권한을 부여한다.

chmod 755 restart.sh

위와 같이 명령어를 수행하였으면 아래 명령어를 통해 실행이 가능하다.

./restart.sh

경우에 따라 권한 이슈로 실행이 되지 않는 경우가 있는데, 이 경우 sudo를 붙여 실행하면 오류없이 실행이 된다.

ps -ef | grep 검색어 명령어를 활용하여 실행이 되었는지 확인한다.

  • 예시)
ps -ef | grep DeployServer-0.0.1-SNAPSHOT.jar

  • Postman을 통해서도 확인이 가능하다


  • 참고로, 작성한 셸 스크립트 파일은 실행하고자 하는 배포 파일 안에 있어야한다.
    (build 파일이 있는 장소)

이걸 몰라서 실행이 되는지 확인을 못하고 생고생을 했다..

우여곡절 끝에 성공했는데, 혹시나 이게 된건지 모르겠어서

ps 명령어를 통해 실행중인 프로세스를 확인하고 kill -9 PID 명령어를 이용해서
실행중인 자바 파일을 kill 했다. 그러고 난 후, 다시 실행했을 때에도 정상적으로 확인이 가능했다.

0개의 댓글