AWS

만든 프로젝트 aws배포

lby132 2022. 12. 20. 01:06

간단한 프로젝트를 만들어서 배포하려는데 처음엔 Could not find com.github.gavlyukovskiy:p6spy-spring-boot-starter:.에러가나서 디펜던시되어있는 p6spy를 지웠더니 실행이 되나 싶었는데 test오류가 자꾸 떴다..

* What went wrong:

Execution failed for task ':test'. 

이런 오류였다. 찾아보니 단위 테스트가 작성되지 않았는데 빌드가 되면서 난 에러라고 해서 gradle에

tasks.named('test') {
   useJUnitPlatform()
}

이부분을 지워주고 빌드해보니 성공했다.

이렇게 하면 어플리케이션이 빌드가 되고 jar파일이 생성이 된다. 나중에 이 jar파일을 가지고 원격에 올리고 원격서버에서 그 jar파일을 실행을 하면 원격서버가 된다.

 

터미널에서 테스트를 돌려보고 싶으면 ./gradlew clean test --info 를 적어주면 된다.

 

빌드를 하면 프로젝트 파일 경로에 build안에 libs가 생기는데 들어가보면 jpaboard-0.0.1-SNAPSHOT.jar파일이 생성되어있다.

터미널에서 java -jar jpaboard-0.0.1-SNAPSHOT.jar 로 실행해보면 잘 나온다. 이제 이 생성된 jar파일을 ec2서버로 옮겨서 띄워보려고 한다.  

 

ec2를 생성해서 ec2에 접속을 한 상태이고 만들었던 jar파일을 ec2로 옮겨야한다.

파일을 옮기는 명령어중에 scp, rsync가 있는데 scp를 사용한다.

scp -i lby-key.pem ~/Downloads/project/jpaboard/build/libs/jpaboard-0.0.1-SNAPSHOT.jar ec2-user@인스턴스 퍼블릭 IPv4 주소:/home/ec2-user(ec2에서 현재 경로 확인후 넣어주면 됨pwd명령어가 현재 경로)

 

생각못하고 이상한곳에서 scp명령어 넣다가 삽질..pem파일이 있는곳에서 해줘야함..암튼 파일 옮기는데 성공

ec2가서 확인해보니 빌드한 jar파일이 들어가 있다.

현재 ec2서버에는 java가 깔려있지 않으니까 실행이 되지 않는다.

sudo amazon-linux-extras install java-openjdk11 로 다운받아준다.

amazon-linux-extras 대신 yum을 써도 된다. yum install java-openjdk11 

우분투는 apt였던거 같음

이제 여기서 java -jar jpaboard-0.0.1-SNAPSHOT.jar 로 띄워주면 된다.

 

ec2서버에서 db는 mysql 받으려고 엄청 해맸는데 자꾸 패키지가 없다고하고 안되길래 그냥 maria db를 받았다.

sudo yum install mariadb-server mariadb

mysql --version

sudo systemctl enable mariadb // 아마존 리눅스가 부팅될때 mariadb가 자동으로 실행되도록.

sudo systemctl start mariadb //마리아db 실행

mysql -u root

use mysql

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NEW_PASSWORD');

이렇게 mariadb를 다운받고 루트 패스워드를 설정해주고 데이터베이스와 유저를 생성해주고 ec2서버에서 다시 jar파일을 실행시키고 aws에서 생성한 인스턴스의 퍼블릭 ip주소와 어플리케이션의 8080포트를 주소창에 입력해주면 

잘뜬다.

그런데 이 방법으로는 계속 서버를 띄워놓고 있어야해서 어플리케이션 프로세스를 유지하는 걸 해보려고 한다. 

ec2창을 두개 띄워서 nohup java -jar jpaboard-0.0.1-SNAPSHOT.jar

이 명령어를 실행시켜주면 

nohup.out이 생성된걸 볼 수 있다.

그리고 한쪽 터미널에서 tail -f nohup.out 을 하면 파일의 내용이 실행될때마다 실시간으로 계속 갱신해서 보여준다.

그리고 nohup java -jar jpaboard-0.0.1-SNAPSHOT.jar를 실행시킨 터미널에서 control+c로 종료시키고 다시

nohup java -jar jpaboard-0.0.1-SNAPSHOT.jar를 실행시켜주면 tail -f nohup.out 를 실행한 터미널에서 어플리케이션이 올라가는 로그들이 찍히는걸 볼수있다. 그리고 jar를 실행시킨 터미널을 닫아도 어플리케이션이 종료되지 않는다.

'AWS' 카테고리의 다른 글

Elastic beanstalk  (0) 2023.01.03
Code Deploy Life Cycle Event Hooks  (0) 2023.01.01
Elasticbeanstalk로 생성된 S3 버킷 삭제 실패  (0) 2022.12.23
IAM  (0) 2022.12.18
EC2  (1) 2022.12.13