본문 바로가기

AWS/spring

[AWS] Spring Boot 배포 (Jenkins 프로젝트 생성) - 4

1. Jenkins 프로젝트 생성 

   1-1. 새로운 프로젝트 Item 선택 

 

  1-2. Item 이름 입력 후 Frestyle project 선택

 

 

 1-3.Configuration에서 설정한 JDK 선택

 

  1-4.소스관리 Git 설정 

   Repository URL : Build 대상 Spring 프로젝트 Url 입력

    Credentials : Github 계정 선택 

Git 접속 정보 추가 

Credential 종류(kind)로는 Username with password 를 선택한 다음 username에는 Github Id를 Password에는 Github Password를 기입해 계정을 추가

 

 

 

   1-5.Build 설정

    Gradle Version : Configuration에서 설정한 gradle 선택

    Task : --no-daemon clean build -x test  (--no-daemon : 꼭 추가해줘야만 오류없이 빌드가 진행 참고 : https://www.codetd.com/article/9348244 ,-x test 테스트 코드는 빌드하지 않는다는 뜻)

 

   

1-6.빌드 후 조치

     Script 

 echo "PID Check..."

CURRENT_PID=$(ps -ef | grep java | grep jenkins_test_spring* | awk '{print $2}')

echo "Running PID: {$CURRENT_PID}"

if "$CURRENT_PID" [ -z CURRENT_PID ] ; then
     echo "Project is not running"
​else kill -9 $CURRENT_PID
       sleep 10
fi

echo "Deploy Project...."

nohup java -jar /var/lib/jenkins/{젠킨스 jar폴더 경로} >> /var/lib/jenkins/{젠킨스 로그 파일 경로 지정}/jenkins_test_spring.log &

echo "Done"

 간단하게 떠 있는 앱을 grep으로 찾아서 죽이고 새로운 앱을 배포한다. 출력은 logs폴더에 넣어서 nohup 에 해당하는 산출물을 저장한다. (logs 폴더는 사용자가 원하는 위치에 만들어준다.)

 

   

1-7.빌드 실행 

 

참고 : https://dev-overload.tistory.com/39
출처: https://pjh3749.tistory.com/261 [JayTech의 기술 블로그]

출처 :https://www.codetd.com/article/9348244 

 

 


AWS EC2 프리티어 환경에서는 SWAP을 통해 메모리를 늘려줘야 사용이 가능하다.

AWS에서 SWAP 할당

출처:https://sjh836.tistory.com/15

 

AWS에서 SWAP 할당

프리티어 t2.micro를 쓰면 기본메모리가 1메가이다. cent6.5 이런거는 메모리도 더 낮았던 거같다. 나의 경우 우분투 16.04를 설치했는데, 스프링프로젝트들을 AWS에 반영하는 것이 목적이었다. 그런데

sjh836.tistory.com


참고하면 좋은 정보

 1.Jenkins Port 변경

출처:https://jojoldu.tistory.com/354

 

Jenkins Port 변경하기

Jenkins의 기본 포트는 8080입니다. 사정상 한대의 서버에 이것저것 설치해서 쓸 경우 8080포트는 사용하기 어렵습니다. (Upsource, Tomcat 등 대부분의 소프트웨어는 8080 포트를 기본으로 쓰고 있습니다

jojoldu.tistory.com

 

 2.포트확인

sudo netstat -antup

 

특정 포트가 사용되고 있는지 확인할 때 다음 명령어를 사용합니다.

sudo netstat -nap | grep 42000

 

특정 포트를 사용하고 있는 프로그램(데몬)을 죽이고 싶을 때 다음 명령어를 사용합니다.

ps -ef | grep 프로그램 이름 명령어는 해당 프로세스가 실행되고 있는지 확인하는 명령어입니다.

sudo fuser -k -n tcp 42000

 

출처:https://wickies.tistory.com/102

 

[REST API 실습] 4. Springboot 프로젝트 AWS EC2 인스턴스에 배포

본 포스팅은 스터디 모임의 발표 참고자료로 사용하기 위해 작성되었습니다. 목차 1) Springboot 프로젝트 생성하고 RestController 작성 후 실행하기(Gradle) 2) AWS RDS로 MariaDB 생성해서 워크벤치에 연결

wickies.tistory.com