[server] EC2 배포 파일 최신화

강신현·2022년 2월 28일
0

[프로젝트/UMC] INFRA

목록 보기
5/11

코드를 수정하여 git push 후 pull request로 main에 코드를 넣어주었다.
다음 ec2에서 잘 되는지 https 로 API test를 해본 결과 아직 파일이 최신화가 안된 것인지 바꾼 기능이 실행되지 않았다.

팀원에게 물어보니 ubuntu에서 git pull을 해준뒤 clean build를 해줘야 한다고 한다.

1. EC2 연결

1) terminal에서 keypair 위치로 이동

cd/desktop

참고로 keypair은 EC2을 처음 만들었을 때 발급받을 수 있으며 나는 팀원이 따로 공유해준 파일을 다운받아 내 mac -> desktop에 옮겨놓았다.

2) 연결

  1. 처음 keypair을 사용할 경우 보안상 에러가 발생할 수 있다. 에러가 발생한다면, 위 사진의 명령어를 통해 키를 공개적으로 볼 수 없도록 설정해주면 됨

chmod 400 infra_keypair.pem

  1. 인스턴스 연결

ssh -i "infra_keypair.pem" ubuntu@ec2-13-125-153-201.ap-northeast-2.compute.amazonaws.com

사진 맨 아래

sudo su

명령어는 앞으로 sudo 명령을 일일이 치지 않아도 되도록 sudo 권한 부여하는 명령어이다.

2. git pull

1) repo 위치로 이동

참고로 이동하고자 하는 경로는 ububtu가 아닌 root 위치에 있음

cd var/www/(INFRA-Server)

혹시 아직 github상의 repo를 가져오지 않은 경우 (초기)
아래 실습 과정을 참고하자
UMC 7주차 개발환경 구축 및 API 테스트

2) git pull

git pull

github 인증을 하라고 나온다. 입력하라는대로

Username : shinhn
Password : (Personal Access Token)

Personal Access Token 은 github - Settings - Developer settings에서 새로 생성할 수 있고 토큰 값은 생성시 한번만 발급되므로 메모장에 잘 적어두도록 하자.
(본인은 이전에 생성해둔 토큰값을 메모장에 적어두고 그대로 사용했음)

3. 기존 프로세스 종료

🔥 이미 돌아가고 있던 서버가 있는 경우

ps -ef | grep java

위 명령어로 조회했을 때 돌아가고 있는 프로세스를 아래 명령어로 전부 종료시킨다.

kill -9 {PID번호}

4. 무중단 배포

nginx 재시작

systemctl restart nginx

clean build

./gradlew clean build

만약
bash: ./gradlew: Permission denied 에러가 뜬다면
chmod +x gradlew
해주고 다시 clean build 해주면 됨

무중단 배포

nohup java -jar build/libs/demo-0.0.1-SNAPSHOT.jar &

nohup: ignoring input and appending output to ‘nohup.out’

요런 메세지 뜨면 정상적으로 완료된 것이므로

exit

로 나가준뒤 터미널 종료 -> 서버는 계속해서 돌아감

profile
땅콩의 모험 (server)

0개의 댓글