1. 빌드하여 배포파일 만들기
*로컬에서 빌드하여 배포파일 만들기
1
PS D:\codestates\project\section3-week4-build> .\gradlew bootJar
1
2
MINGW64 /d/codestates/project/kdt/for-ese/section3-week4-build (main)
$ ./gradlew build
빌드가 정상적으로 종료되면 IntelliJ에서 빌드를 진행 할 때와 마찬가지로 build/libs 디렉토리에 Jar 파일 하나가 생성된다.
생성된 파일을 파일질라 or scp명령어를 통해 ec2로 옮긴다.
* EC2에서 빌드하여 배포파일 만들기
1. java 설치
$ sudo apt update
어느 정도 시간이 지나고 업데이트 과정이 끝나면 java를 설치
$ sudo apt install openjdk-11-jre-headless
아래와 같은 확인창이 나올경우 "Y"를 입력
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libasound2 libasound2-data libgraphite2-3 libharfbuzz0b
Suggested packages:
libasound2-plugins alsa-utils libnss-mdns fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei
| fonts-wqy-zenhei fonts-indic
The following NEW packages will be installed:
libasound2 libasound2-data libgraphite2-3 libharfbuzz0b openjdk-11-jre-headless
0 upgraded, 5 newly installed, 0 to remove and 70 not upgraded.
Need to get 37.9 MB of archives.
After this operation, 173 MB of additional disk space will be used.
Do you want to continue? [Y/n]
설치 과정이 마무리되면, java -version 명령어를 입력하여 java 라이브러리가 설치가 완료되었는지 확인
2. 깃에서 배포할 서버 클론받기
먼저 EC2상에서 SSH키를 깃허브 레파지토리에 등록해야한다.
등록방법은 이곳에서 확인할 수 있다.
SSH 등록을 마쳤다면 인스턴스 시작시 기본 경로가 아닌 홈 경로(~)로 이동하여 clone
ssm-user@ip-172-31-41-164:/var/snap/amazon-ssm-agent/1234 $ cd ~
ssm-user@ip-172-31-41-164:~$ git clone git@github.com.git
Cloning into 'git'...
Username for 'https://jinsu.com': jinsu
Password for 'https://jinsu@github.com:
...
클론 진행 여부에 대한 질문이 나올 경우 yes를 입력해 실습 코드를 클론하고
ls명령어를 통해 클론받은 디렉터리명을 확인
cd명령어를 통해 해당 디렉터리로 이동
cd [클론받은 디렉터리명]
이후 빌드작업을 진행합니다.
./gradlew build
정상적으로 빌드가 완료되었으면 터미널에 ls명령어를 입력하면, build폴더를 확인할 수 있습니다.
2. EC2에서 서버 실행하기
로컬이나 EC2환경 둘중의 한가지 방식을 선택하여 jar형식의 배포파일을 EC2에 생성했다면
EC2에서 서버 실행 : java -jar [파일명.jar]
이방식을 사용하면 ctrl + c를 사용하거나 쉘을 닫으면 서버도 종료된다.
* 그렇기 때문에 사용할 방법은 백그라운드에서 서버 돌리기
1. nohup java -jar [파일명].jar &
을 입력하면 백그라운드 상황에서 서버가 실행된다.
& 은 백그라운드로 돌아가게 해주고
nohup은 서버 구동 시 기본적으로 쌓이는 로그들을 파일로 만들어준다.
2. cat nohup.out 으로 쌓인 로그들을 볼 수 있다.
3. 종료를 위해서는 PID가 필요하다.
grep으로 걸러서 쓰자
ps -ef | grep '[원하는 단어]'
예를 들면 ps -ef | grep 'java'
4. PID를 찾았으면
kill [PID 번호]
== kill -15 [PID 번호]
kill -9 는 강제 종료이니 -15로 일반 종료임을 알려주자.
물론 kill이랑 똑같다.
이렇게 하면 프로세스가 죽는다.