Aws Ec2 환경에서 코드 재배포 및 업데이트하기

심주흔·2023년 10월 25일
0
post-thumbnail

내가 배포한 웹사이트를 수정하고 다시 재배포를 하는 과정이다.

ec2 ubuntu 환경에서 진행한다.

💡 1. 코드를 변경하고 git에 push한다.

💡 2. ec2 인스턴스를 연결해서 리눅스 환경을 열어준다.

💡 3. 재clone하기

mv <루트파일>

기존에 클론 되어 있던 루트 파일을 지워준다. 무턱대고 클론을 할 경우 아래와 같은 오류가 발생하는데 이는 이미 중복되어 있기때문에 클론을 할 수 없다는 것이다. 그렇기에 기존에 있던 파일을 삭제하고 진행한다.

fatal: destination path '당신의 루트파일이름' already exists and is not an empty directory.

혹시모르니 백업도 진행해준다. 사실 나는 아래와 같은 코드로 진행함.(선택사항)

mv springboot3.2 springboot3.2_backup

이후 초기에 인스턴스 클론을 한 것처럼 배포할 파일을 올려준 깃허브 주소를 clone한다.

git clone ~~~.git

💡 4. build하기

sudo su를 통해 관리자 권한으로 접근하고 sh gradlew build를 통하여 .jar 파일을 빌드해주는 과정이다. 기존에 있는 .jar 파일을 알아서 업데이트 된다. .jar 파일이 수정되어야 서버에서 그 파일을 읽고 웹사이트를 배포한다. 일부러 굳이 수정하지 않아도 된다. (이 부분에서 시간을 많이 낭비함...)

배포를 함에 있어서 .jar 파일은 중요한 역할을 한다. docker을 사용하지 않고 그냥 ubuntu 서버에서 배포 실습을 하는 경우에도 java -jar springboot3-2-0.0.1-SNAPSHOT.jar 라는 명령어를 사용한다. 코드를 수정해도 .jar 파일이 변경되어있지 않으면(빌드를 하지 않으면) 서버에 변경사항이 적용되지 않는다.

💡 5. docker 실행

이후 docker 실행은 이전 post를 참고 한다. 만약 docker가 실행중이라면 중지하고 재시작한다.

🔦 docker 재실행

먼저 아래 명령어로 실행중인 docker를 확인한다.

docker ps

실행중인 docker를 중지하고 삭제한다.

docker stop <container_name_or_id>
docker rm <container_name_or_id>

이후 다시 실행해주면 된다.
ex.)

docker run -p 8080:8080 springboot3.2
profile
이봐... 해보기는 했어?

0개의 댓글