일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 협업
- codeup
- 분할메모리할당
- 파이썬
- 기초100제
- C++
- react
- js to ts
- Redux
- Java
- 일상
- 정렬
- 공부
- 토이프로젝트
- web
- memory
- 백준
- 자료구조
- CPU 스케줄링
- 스프링
- 리덕스장바구니
- 프로그래머스
- 타입스크립트
- Spring
- 알고리즘
- 코드업
- react-redux
- OS
- Operating System
- error
- Today
- Total
감자튀김 공장🍟
GitHub Action으로 CI/CD 하기 본문
📌 설정 방법은 설명하지 않습니다! 진행하면서 참고한 자료, 문제들을 정리합니다.
🦦 사용
Github Action, AWS EC2, AWS S3, AWS CodeDeploy, Spring Boot
🦦 참고 자료
1. 로컬에서 EC2 SSH 접속 (Window OS)
https://wookim789.tistory.com/34
윈도우 터미널을 이용해 EC2 접속하기 (5)
자 지난 글에서 EC2 인스턴스를 띄워 보았다. 이제 내 로컬환경(내 pc)에서 aws의 ec2에 접속해보겠다. 방법은 여러가지이다. 이전에 설명한 SSH 방식으로 접근할 것인데, mac이라면 터미널에서 ssh 명
wookim789.tistory.com
2. Github Action CI 설정
https://be-developer.tistory.com/51
[SpringBoot] Github Action으로 AWS EC2 자동 빌드/배포하기(CI/CD)
[SpringBoot] Github Action으로 AWS EC2 자동 빌드/배포하기(CI/CD) 빗썸테크아카데미의 강의가 끝나고 팀프로젝트가 시작되었는데, 개발에 앞서 우선 aws에 배포해서 Hello world를 먼저 찍어보고 개발을 하
be-developer.tistory.com
3. 그 외 참고 (S3, EC2, IAM, CodeDeploy, AppSpec 등 작성)
https://bcp0109.tistory.com/363
Github Actions CD: AWS EC2 에 Spring Boot 배포하기
Overview 애플리케이션을 개발하면 외부에서도 접근 가능하도록 클라우드 환경에 배포합니다. 이전에 포스팅 했던 AWS 1편에서는 마지막에 scp 명령어로 로컬에 존재하는 빌드 파일을 EC2 인스턴스
bcp0109.tistory.com
🦦 문제점
1. Docker 사용?
Window에서 Docker 설치 후 실행했더니 제대로 실행되지 않았다
- docker desktop wsl kernel version too low
- docker desktop windows containers not supported
- docker failed to initialize
- Docker Desktop 무한 로딩
2. EC2에서 git clone 한 Spring boot의 application.yml 오류
3. Github Action 실행을 위한 .yml 위치에 따른 오류
main.yml을 작성하는데 계속 chmod +x ./gradlew 에서 오류가 났다.
폴더 루트에 yml파일이 있지만 gradle이 같은 위치에 존재하지 않아 뜨는 오류인 것 같았다.
당시 폴더 루트는 아래와 같았다.
main.yml
└ front 폴더
└ back 폴더
└ .gradle
git에 back 폴더를 올리고 폴더 루트를 아래와 같이 변경한 후 Github Action에 성공 했다.
main.yml
.gradle
4. AWS CodeDeploy에서 배포 실패
(사진은 없다... 오류 해결하느라 바빴다.)
EC2 생성 및 연결, S3 생성 및 CI 성공한 .zip 파일 업로드 완료 후 CodeDeploy에서 배포가 계속 실패됐었다.
Applictaion Start 단계에서 Scripts does not exist at specified location 오류가 계속 떴다.
구글링해서 나온 방법들(deploy.sh 위치 확인, main.yml에서 Deploy 부분)을 다 확인 해봤지만 문제가 도저히 해결되지 않았었다. IAM을 재설정하고 CodeDeploy를 재생성하면서 같이 수정한 부분들이 꽤 있어서 정확한 문제점은 파악하지 못했지만, deploy.sh로만 적어놓은 것을 start.sh와 stop.sh로 나눠 적은 것도 문제 해결에 도움이 된건가 싶다.
일단 수정한 부분은 아래와 같다.
1. IAM 재생성
2. CodeDeploy 재생성
3. EC2 태그 생성
4. deploy.sh 대신 stop.sh와 start.sh 생성
5. main.yml 수정
이 문제로 3일 넘게 머리를 부여잡고 있었는데 결국 해결해서 기쁘다. 아마 .sh에서 문제가 생긴거였던 것 같다. 해결책이 다양하지 않아서 stackoverflow를 꽤 뒤져봤던 것 같다. 이번에 제일 많이 찾아본 곳이 stackoverflow였던 듯
그래도 CI/CD를 진행해보면서 신기하고 재밌었던 경험을 할 수 있었다.