1. 문제 발견 - Gradle Build 실패
yml 파일상 해당 부분을 살펴보면 이게다다.
save-state라는 command를 찾을 수 없다.
Warning은 경고니까 실제로는 동작에는 문제가 없을수도 있다고 생각했다.
Error를 난 부분을 찾아보면 gradlew파일을 실행할 수 없다고 나온다.
해결 - 실행권한 부여
Actions를 위해 생성된 Ubuntu 환경에서 접근을 할 수 없는 걸 수도 있겠다 싶어서 실행 권한을 부여했다.
Gradle 실행이 됐다!
2. 보완 - 변수명 재설정
구글링해온 파일을 맞게 수정해야 하는데 이 과정을 놓쳤다.
Nov23이 아니라 어제 띄워둔 jar이 계속 실행중이었다.
스크립트 파일 변수명 지정이 제대로 되어있지 않았다.
스크립트대로면 spring-webapp.jar파일을 바라볼텐데 존재하지 않는다.
빌드 파일의 위치를 다시 지정해줬다.
S3 버킷
zip파일이 제대로 들어왔다.
todo 추후 자동으로 삭제를 자동화 해주는 것도 옵션으로 가져갈만하다.
CodeDeploy
코드디플로이를 통해 배포도 되었다.
이때 루트폴더에 생성해둔 appspec.yml파일을 로드해 codeDeploy가 동작한다.
AfterInstall과 ApplicationStart에 해당 스크립트를 자동으로 실행하도록 지정해둔 것이다.
라이프사이클에 대한 설명은 공식문서에서 상세히 설명해준다.
codeDeploy 공식 문서
3. 문제 발견 - 갑자기 stop.sh 파일 오류
여기서 변경한 값은 파일명밖에 없다.
끝에 "가 빠졌다.
해결
4. 문제발견 - jar 파일 실행 실패
빌드 파일 실행 로그를 보면 오류가 나서 실행되지 않은 것을 확인할 수 있다.
시도 - S3버킷 Zip 살펴보기
다운로드 받아보면 이는 브랜치에 올려진 파일 전체가 zip으로 올라간 것 같다.
이말인 즉슨 gitignore 된 파일들이 같이 빌드에 함께하지 못 한다는 뜻.
즉 actions상의 ubuntu에서 자바 셋업하고 gradle 통해서 빌드를 하는데 그때 application.properties파일이 빠져있을 것이다.
해결방법
빌드당시 application.properties 파일 적용시켜주기
현재 actions 순서
Gradle 로 빌드한 후 AWS 에 배포한다.
추가 job :빌드 전, properties를 생성해준다.
1. github Secret에 properties 값을 저장해두기.
2. resources/application.properties 생성하기.
3. secret 해당 값을 가져와서 붙여넣기.
5. 문제발견 - keystore.p12 파일 불러오기 실패
빌드할 때 미리 해당 파일을 넣어둬야한다.
keystore.p12파일을 tar로 압축하고 이를 gpg 암호화 했다.
암호화 과정에 사용된 암호를 secret에 저장해두기.
actions 스크립트에 복호화를 해주는 과정을 추가해줬다.
파일이 root 폴더에 해제되어서 resource폴더로 옮겼다.
+ 루트폴더에 압축해제 되는 것도 S3버킷에서 zip파일 다운받아서 확인했다.
암호화된 파일을 Git에 올리고 복호화 키만 secret으로 저장해둬서 복호화하는 프로세스다
구현 확인
github actions workflow 완료
CodeDeploy 배포 성공
EC2 인스턴스 백그라운드 실행 확인
axios 성공
참고 링크
https://bcp0109.tistory.com/363 (전체프로세스)
https://blossom6729.tistory.com/20 (keystore파일 gpg 암호화 복호화 과정)
'Projects > 푸하하 - 개인 프로젝트' 카테고리의 다른 글
[리팩토링] Redis 캐싱을 통한 조회 성능 개선 도전기 (0) | 2023.11.28 |
---|---|
[테스트 코드] JaCoCo을 통한 코드 커버리지 확인 (1) | 2023.11.24 |
[트러블] 쿠키 인식 오류. (다른 도메인 쿠키 접근 불가) (0) | 2023.11.20 |
로컬, 개발환경 변수 따로 적용하기 (개발환경, 배포환경 분리하기, 크롬 SSL 인증서경고 무시) (0) | 2023.11.13 |
https로 프론트, 백을 배포하며 마주한 트러블들 (0) | 2023.11.10 |