이번 포스팅에서는 EC2에 내가 작성한 코드를 올려 배포하는 방법에 대해 알아보겠다.
cd {key pair 위치}
ssh -i {key pair} {사용자 이름}@{퍼블릭 IPv4 DNS}
IntelliJ 우측에 있는 Gradle
을 클릭하고, build
폴더 내 build
를 더블클릭
빌드를 완료하였으면 IntelliJ 좌측에 있는 build
폴더의 하위 폴더 libs
에 있는 .jar
파일 확인
* 해당 파일이 빌드된 배포파일인데, EC2에 올려서 실행시키면 서버가 돌아가는 것이다.
# 동기화하기
sudo yum update
# 본인 프로젝트에 맞는 Java 설치
# Java 1.8.0
sudo yum install java-1.8.0-openjdk
# Java 17
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
sudo rpm -ivh jdk-17_linux-x64_bin.rpm
sudo alternatives --config java
# 버전 확인 (잘 설치되었는지 확인)
java -version
* SSH로 접속한 상태에서 명령어를 쳐서 설치.
FileZilla
프로그램으로 EC2에 배포 파일 전송하기* 다 작성하고 연결 버튼을 누르자
* 왼쪽이 내 컴퓨터, 우측이 EC2이다.
* 위와 같이 directory 하나 생성 후
* build/libs
경로에 있는 .jar
파일을 drag and drop 방식을 이용하여 EC2에 파일을 복사해준다.
cd {.jar파일 위치}
java -jar {파일이름}.jar
추가) 2022. 08. 19.
java -jar {파일이름}.jar
명령어를 사용하면 SSH 접속이 끊겼을 경우 프로젝트가 작동하지 않는다.
하여 SSH가 끊겨도 작동하게 하고 싶다면 아래의 명령어를 실행시키면 된다.
nohup java -jar {파일이름}.jar &
* nohup
은 "no hang up"(끊지 마!)의 약자로, 내가 세션과 연결을 종료해도 지금 실행시킨 프로그램을 종료하지 않겠다는 것을 의미
* &
는 해당 프로그램을 백그라운드로 실행시킨다는 의미
프로그램을 종료시키고 싶은 경우에는 아래의 명령어를 통해 종료시킬 수 있다.
# pid 값(프로세스 번호) 찾기
ps -ef | grep java
# 특정 프로세스를 죽이기
kill -9 {pid값}
참고)
https://velog.io/@dohaeng0/AWS에-Spring-Boot-프로젝트-배포-2-EC2-세팅&배포-도메인-연결
https://programming119.tistory.com/203
https://kitty-geno.tistory.com/25
https://velog.io/@namsh1125/EC2-Java-재설치
https://doing7.tistory.com/108