Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Value too long for column
- table not found
- JanusGateway
- preemption #
- 티스토리챌린지
- 자원부족
- mp4fpsmod
- PersistenceContext
- tolerated
- taint
- 개성국밥
- 코루틴 컨텍스트
- JanusWebRTCServer
- 겨울 부산
- 깡돼후
- 달인막창
- PytestPluginManager
- pytest
- JanusWebRTCGateway
- Spring Batch
- 코루틴 빌더
- vfr video
- JanusWebRTC
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- terminal
- k8s #kubernetes #쿠버네티스
- 오블완
- VARCHAR (1)
- kotlin
- python
Archives
너와 나의 스토리
[AWS] EC2에 서버 배포(spring) 본문
반응형
1. git에 작성한 spring 코드 업로드
2. EC2에서 위 git을 clone
- 방법 1: master branch에서 데이터 clone하기
- $git clone "git url"
- git url: "Clone or download" 버튼을 누르면 나오는 url을 복붙 하면 된다.
- 방법 2: 특정 branch를 지정하여 그곳에서만 데이터를 clone할 수 있다.
- $ git clone -b "branch 이름" --single-branch "git url"
- 현재 branch 알아보기: $ git branch -a
- 방법 3: 수정한 부분만 받아오기 (덮어쓰기)
git fetch --all
git reset --hard origin/"branch_name"
3. 잘 받아졌는지 테스트
- $ ./gradlew test
- [bash: ./gradlew: Permission denied] 오류가 뜬다.
- [$ chmod +x gradlew] 명령어로 permission을 변경해보자.
- 위 명령어는 root user인 상태로 진행해야 한다.
- 그리고 다시 [$ ./gradlew test] 명령어 치면 성공!!
- 성공인 듯 싶었으나 [Gradle 6.3 requires Java 8 or later to run. You are currently using Java 7.]라는 오류가 나온다.
- 그렇다면, java8로 버전업을 해보자.
- $ sudo yum install -y java-1.8.0-openjdk-devel.x86_64
- 설치한 후, 인스턴스의 Java 버전을 8로 변경한다.
- $ sudo /usr/sbin/alternatives --config java
- 이전 버전 삭제하려면,
- $ sudo yum remove java-1.7.0-openjdk
- 다시 테스트
- $ ./gradlew test
- [$ ./gradlew test]가 성공하면 build 디렉터리가 생긴다.
- 그리고 build/libs 디렉터리 아래에 jar 파일이 생긴 것을 확인할 수 있다.
4. deploy 스크립트 생성 (deploy.sh)
- 코드 생성하고
- [$ chmod +x deploy.sh]로 실행 권한을 준다.
- [$ ./deploy.sh] 명령어로 실행
- 하단의 코드는 "jojoldu"님이 올려주신 코드에서 일부만 수정한 것입니다.
#!/bin/bash
REPOSITORY=/home/ec2-user/app/git
cd $REPOSITORY/spring-webservice/
echo "> Git Pull"
git pull
echo "> 프로젝트 Build 시작"
./gradlew build
echo "> Build 파일 복사"
cp ./build/libs/*.jar $REPOSITORY/
echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(pgrep -f spring-webservice)
echo "$CURRENT_PID"
if [ -z $CURRENT_PID ]; then
echo "> 현재 구동중인 애플리케이션이 없으므로 종료하지 않습니다."
else
echo "> kill -2 $CURRENT_PID"
kill -2 $CURRENT_PID
sleep 5
fi
echo "> 새 어플리케이션 배포"
JAR_NAME=$(ls $REPOSITORY/ |grep 'spring-webservice' | tail -n 1)
echo "> JAR Name: $JAR_NAME"
nohup java -jar $REPOSITORY/$JAR_NAME &
- 서버 실행:
- $ java -jar /home/ec2-user/app/git/spring-webservice/build/libs/spring-webservice-0.0.1-SNAPSHOT.jar \$
- $ vim nohup.out
- $ tail -f /home/ec2-user/app/git/spring-webservice/build/libs/nohup.out
5. 인바운드 규칙 추가
참고:
- 서버 배포:
- java 버전 변경:
반응형
'개발' 카테고리의 다른 글
[AWS] "There is insufficient memory for the Java Runtime Environment to continue." 문제 해결 (2) | 2020.05.14 |
---|---|
[AWS] Spring "Web server failed to start. Port 8080 was already in use" 문제 해결 (2) | 2020.05.13 |
[AWS] root 권한 얻어서 디렉터리 삭제 (0) | 2020.05.11 |
Git Bash로 local file을 GitHub에 업로드 (0) | 2020.05.05 |
[AWS] RDS 연동 및 php로 테스트 (0) | 2020.04.21 |
Comments