[AWS] 서버에 프로젝트 배포하기 - 무중단 배포 3
[AWS EC2] 서버 환경 만들기 - 무중단 배포 1
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스테치, 스프링 시큐리티를 활용한 소셜 로그인 등으로 애플리케이션을
jinny-1st.tistory.com
[AWS RDS] 데이터베이스 환경 만들기 - 무중단 배포 2
[AWS EC2] 서버 환경 만들기 - 무중단 배포 1 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스테치, 스프링 시큐리티를 활
jinny-1st.tistory.com
putty 를 통해 ec2에 접속한 후 진행한다.
sudo yum install -y git
- git 설치
git --version
- git 버전 확인
mkdir ~/app && mkdir ~/app/step1
- git clone 으로 프로젝트를 저장할 디렉토리 생성
cd ~/app/step1
- step1 폴더로 이동
git clone 프로젝트깃헙주소
- 프로젝트 clone
cd 프로젝트명
ll
- 내려받은 프로젝트명으로 폴더가 생겼을 것이니, 그 폴더로 이동해서
폴더 안의 파일 목록들을 확인한다. (소문자 엘 두개)
1. Maven
[Spring] 메이븐(Maven) 설치하기 (Windows) | Jiwon Blog
jiwondh.github.io
위 사이트를 통해 먼저 컴퓨터에 maven 을 설치한다.
! 여기는 mvnw 파일이 없을 때 하면 된다.
cd 프로젝트가 존재하고 있는 폴더 경로
- 프로젝트가 있는 폴더경로로 들어가서 maven wrapper를 설치해줄 계획이다.
mvn -N io.takari:maven:0.7.7:wrapper
- maven wrapper 설치
프로젝트 ide 에서 github에 commit & push
다시 ec2로 돌아와서 실행
git pull
- github에 변경된 사항 다시 내려받기
chmod +x mvnw
- mvnw 파일 접근 권한 변경
./mvnw clean package
- maven 컴파일 + 빌드
- package 통해서 빌드할때 pom.xml에 아래 코드 들어가있는가 확인,,,
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>[버전]</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>[메인 클래스]</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
ls -al
- target 이라고 새로 생긴 폴더가 생겼는지 확인
cd target
ll
*.jar 파일 또는 *.war 파일이 만들어 졌는지 확인
java -jar jar또는war파일
- 실행
2. Gradle
./gradlew test
- 코드들이 잘 수행되는지 테스트하기
vim ~/app/step1/deploy.sh
- 쉘 스크립트 통해 명령어 한줄로 프로젝트 빌드 해결하기
#!/bin/bash
REPOSITORY=/home/ec2-user/app/step1
PROJECT_NAME=프로젝트이름
cd $REPOSIROTY/$PROJECT_NAME/
echo "> Git Pull"
git pull
echo "> 프로젝트 build 시작"
./gradlew build --exclude-task test
echo "> step1 디렉토리로 이동"
cd $REPOSITORY
echo "> Build 파일 복사"
cp $REPOSITORY/$PROJECT_NAME/build/libs/*.jar $REPOSITORY/
echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(pgrep -f ${PROJECT_NAME}.*.jar)
echo "현재 구동중인 애플리케이션 pid: $CURRENT_PID"
if [ -z "$CURRENT_PID" ]; then
echo "> 현재 구동중인 애플리케이션이 없으므로 종료하지 않습니다."
else
echo "> kill -15 $CURRENT_PID"
kill -15 $CURRENT_PID
sleep 5
fi
echo "> 새 애플리케이션 배포"
JAR_NAME=$(ls -tr $REPOSITORY/ | grep jar | tail -n 1)
echo "> JAR name: $JAR_NAME"
nohup java -jar $REPOSITORY/$JAR_NAME 2>&1 &
chmod +x ./deploy.sh
- 스크립트에 실행 권한 추가
./deploy.sh
- 스크립트 실행
vim nohup.out
- 애플리케이션에서 출력되는 모든 내용 갖고 있음
배포완료 ㅠㅠ
혹시 JDK 버전이 11이라 안된다면 밑의 포스팅을 참고하면 된다.
[Linux] JDK 11 Install
먼저, JDK 8 버전이 깔려 있어야 합니다. JDK 8 Install 더보기 sudo yum install -y java-1.8.0-openjdk-devel.x86_64 - JDK 8 설치 sudo /usr/sbin/alternatives --config java - Java 버전 선택 sudo yum updat..
jinny-1st.tistory.com