1. EC2 에 프로젝트 클론 받기
1) EC2에 접속해서 git 설치
sudo apt install git
git --version
2) git clone으로 프로젝트 저장할 디렉토리 생성mkdir ~/app && mkdir ~/app/step1
생성된 디렉토리로 이동 : cd ~/app/step1
3) 본인 깃헙 레포 https 주소 복사하기
4) git clone 하기
git clone https주소
방식은 깃헙 비밀번호를 입력해야 하는데 이 방식은 removed되었다고 한다.
SSH 방식으로 클론해보자.
- 이미 만들어진 키가 있는지 확인한다.
~/.ssh 디렉터리로 이동해서 id_ed25519, id_ed25519.pub 혹은 id_rsa와 id_rsa.pub 파일쌍이 있는지 확인한다.$ cd ~/.ssh
$ ls
- 생성한 키가 없다면, 키를 생성한다.
$ ssh-keygen -t ed25519 -C “본인이메일”
- Enter file in which to save the key (/home/ec2-user/.ssh/id_ed25519):* 엔터치면 기본값으로 저장된다.
- Enter passphrase (empty for no passphrase):*
- 터미널에 공개키를 출력한다.출력된 내용을 복사하여 보관한다.
cat id_ed25519.pub
- 공개키를 github 계정에 등록하기
깃헙 홈페이지 - settings - SSH and GPG keys 에서 등록한다
- ~/.ssh/config 파일에 아래 내용을 추가한다.
vim ~/.ssh/config
Host github.com IdentityFile ~/.ssh/id_ed25519 User git
- GitHub 접속을 테스트하기.
$ ssh -T git@github.com
- 설정에 사용자 정보를 등록한다.
$ git config -–global user.name 본인깃헙네임
$ git config –-global user.email 본인깃헙이메일
다시 프로젝트 폴더로 돌아와서 `cd ~/app/step1` `git clone 복사한것` 으로 클론한다.
5) git clone 확인하기
`./gradlew test` 로 테스트해본다.
Permission denied 가 발생하면 chmod +x gradlew 를 터미널에 입력 한 후, 다시 시도해본다.
2. 배포 스크립트 만들기
배포 :
- 작성한 코드를 실제 서버에 반영하는 것
- 1) git clone / git pull 통해서 새 버전의 프로젝트를 받음
- 2) gradle이나 Maven 통해 프로젝트 테스트 하고 빌드
- 3) EC2 서버에서 프로젝트 실행 /재실행
1) deploy.sh 파일 만들기
`vim ~/app/step1/deploy.sh`
#!/bin/bash
REPOSITORY=~/app/step1
PROJECT_NAME=myShop
cd $REPOSITORY/$PROJECT_NAME/
echo "> Git Pull"
git pull
echo "> 프로젝트 Build 시작"
./gradlew build
echo "> step1 디렉토리로 이동"
cd $REPOSITORY
echo "> Build 파일 복사"
cp $REPOSITORY/$PROJECT_NAME/build/libs/*.jar $REPOSITORY/
echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(pgrep -fl sample-webservice | grep jar | awk '{print $1}')
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/*.jar | tail -n 1)
echo "> JAR_NAME: $JAR_NAME"
nohup java -jar $REPOSITORY/$JAR_NAME 2>&1 &
2) 스크립트에 실행 권한을 추가한다.
chmod +x ./deploy.sh
3) 스크립트 실행하기
./deploy.sh
4) 로그 확인하기
vim nohup.out
3. 브라우저로 접속하기
AWS 콘솔 창에서 퍼블릭 DNS 혹은 IP 주소로 된 값 중 아무것이나 복사후 뒤에 :8080을 붙여서 브라우저로 접속한다.
172.31.36.186:8080
'사이트에 연결할 수 없음' 오류가 뜨면 aws 인바운드 보안 규칙을 확인해본다.