오늘은 하루종일 Github actions EC2 S3 CodeDeploy 와 씨름하는 하루 였다...
하루종일 삽질을 하였다 하...
https://goodgid.github.io/Github-Action-CI-CD-AWS-EC2/
일단 뭐가 뭔지 몰라서 저거 보고 무작정 따라하였다. 최대한 똑같이 따라하였다
중간중간 설명이 비어있는게 있다. 예를 들어 appspec.yml 파일은 어디에 저장하는거지?
그런건
https://github.com/goodGid/Github-Action-Variable-Substitution
여기 참고하면 된다
deploy.yml 파일을 일부 수정하였다
#이부분은 오류가나서 이것저것 고쳐보다가 그냥 주석처리 해버림
# [1]
#- name: Set yaml file
# uses: microsoft/variable-substitution@v1
# with:
# files: ${{ env.RESOURCE_PATH }}
# env:
# override.value: '.github/workflows/deploy.yml'
# override.value: ${{ secrets.DI_FROM_SECRET }}
# [2]
- name: Build with Gradle
run: ./gradlew build
shell: bash
env:
SPRING_PROFILES_ACTIVE: prod
appspec.yml 파일은 그대로 사용하였다
gh_deploy.sh 파일은 한줄만 변경사항이 있다
포트번호 옵션은 날렸고(안하면 스프링 프로젝트의 application.yml에서 세팅한 포트번호가 적용되지 않는다) -Dspring.profiles.active=prod 를 추가하였다
nohup java -jar -Dspring.profiles.active=prod $DEPLOY_JAR >> $APPLICATION_LOG_PATH 2> $DEPLOY_ERR_LOG_PATH &
그외에 EC2 보안그룹에서 인바운드 규칙에 443 포트(CodeDeploy_agent) 추가하고 5000 포트(웹서버용) 추가하였다
Access Key와 Secret Key 부분이 인터페이스가 달라서 그랬는지는 몰라도 나는
https://livefordev.tistory.com/42
이거보고 발급받아서 해결하였다
서버의 시간을 한국으로 변경하였다
sudo timedatectl set-timezone 'Asia/Seoul'
만들고 나니 보람은 있다. main 에 merge 할때마다 자동 빌드 되고 서버도 내려서 업데이트하고 서버 올라간다