
CICD 과정
- Github Actions 를 사용하기 위해 .github/workflows/CICD.yaml 파일, scripts/deploy.sh, appspec.yml 파일을 생성
- Github 에 Push
- Github Actions 에서 Repository secrets 를 사용해 application.properties 와 .env 파일 생성 후 Zip 파일 생성
- Github Action 에서 Build & Test 수행
- Github Actions 에서 Zip 파일을 생성해 AWS S3 에 jar 파일을 업로드
- AWS Code Deploy 에 배포 요청
- AWS Code Deploy 는 S3 로부터 jar 파일을 전달 받아 AWS EC2 에 전달 후 기존 서버는 종료시킨 후 새로운 서버 자동 실행
의사 결정
- CICD 파이프라인을 구축하기 위해 저희는 Jenkins를 이용한 CICD 구축과 Github Actions 와 AWS Code Deploy 를 고려를 했습니다. 그 중 Jenkins 는 다양한 플로그인을 통해 유연하고 다양한 작업을 자동화 할 수 있는 유연한 환경을 제공할 수 있어 많이 사용하는 방법입니다. 하지만 CICD 를 구축해본 경험이 있는 팀원이 없고, 짧은 기간동안 구축을 해야하기에 보다 쉽게 구현이 가능한 방법을 찾고자 했습니다.
- Github 와 AWS 는 모두 사용해본 경험이 있었고 마침 Github Actoins 와 AWS Code Deploy를 사용하면 CICD 파이프라인을 구축할 수 있다는 것을 알게 되었고 Jenkins를 사용해 파이프라인을 구축하는 방법보다 더욱 간단하고 AWS 의 다른 서비스와 원활하게 통합된다는 장점이 있어 해당 방식으로 CICD 파이프라인을 구축하였습니다.