aws 가입
AMI(Amozon Machine Image) 선택
AMI는 EC2 인스턴스를 시작하는데 필요한 정보?를 이미지로 만들어 놓은 것이라고 함.
보안그룹 설정
SSH 접속 키 잘 보관해두기(pem 키 = RSA 키인듯)
접근 허용 IP 설정.(난 걍 ssh에 대해 다 열어뒀음.)
고정 IP 할당, ec2에 연결
ec2 서버에 접속
ssh -i {pem key 위치} {ec2 ip address}
~/.ssh/config에 Host 등록하면
ssh {config 파일에 등록한 서비스명} 으로 접속 가능하다고 함.
ec2에 접속한 후
타임존 변경
RDS 설정
DB 클라이언트로 RDS 접속 테스트
mysql과 mariadb가 100% 호환 안된다는 경고는 뜨는데 접속은 됨.
(intellij에서 안되길래 mysql workbench로 접속해봄)
ec2에서 RDS 접근
ec2에 mysql 설치
// 접속
mysql -u {계정} -p -h {host 주소}
sudo yum install git
git clone {repo 주소}
배포란?
프로젝트 코드를 받아서
maven / gradle로 테스트 및 빌드
서버(ec2)에 해당 프로젝트를 실행(재실행)하는 것이라고 함.
빌드 스크립트 작성
#!/bin/bash
REPOSITORY=/home/ec2-user/app/step1
PROJECT_NAME=toy-blog-be
cd $REPOSITORY/$PROJECT_NAME/
echo "> Git Pull"
git pull
echo "> building project..."
./gradlew build
echo "> cd step1"
cd $REPOSITORY
echo "now directory = $PWD"
echo "> copy build file"
cp $REPOSITORY/$PROJECT_NAME/build/libs/*.jar $REPOSITORY/
echo "> checking running application's pid"
CURRENT_PID=$(pgrep -f ${PROJECT_NAME}.*.jar)
echo "running application's pid: $CURRENT_PID"
if [ -z "$CURRENT_PID" ]; then
echo "> no running application"
else
echo "> kill -15 $CURRENT_PID"
kill -15 $CURRENT_PID
sleep 5
fi
echo "> deploying new application..."
JAR_NAME=$(ls -tr $REPOSITORY/ | grep jar | tail -n 1)
echo "> JAR Name: $JAR_NAME"
nohup java -jar $REPOSITORY/$JAR_NAME 2>&1 &