원래 GitLab CI/CD를 사용했었는데
위에서 보다시피 시간제한이 생겼다.
그래서 비슷한 기능을 찾다보니 GitHub에도 동일한 기능이 있었다.
그럼 GitHub Actions를 살펴보도록 하자.
- 원리
Git, Gitlab 같은 서비스에서 인프라에 배포를 지원한다.
배포는 서비스들의 내부에서 도커 컨테이너를 이용해서 배포하는 방식이다.
이제 예전처럼 배포서버를 만들고 Jenkins를 설치할 필요가 없다.
- 리포지토리 생성 + 파이프라인 파일생성
GIT 리포지토리를 생성하고 GitAction 파일을 컷밋한다.
- AWS 시크릿 정보 저장
- Git Secrets에 저장
- IAM 권한 추가
AdministratorAccess라는 권한을 사용자에 부여해줘서
모든 AWS의 서비스에 연동해서 사용해도 되고,
연동되는 서비스마다 사용자를 만들어도 된다.
- S3 정적파일 배포
- CloudFront 캐쉬 삭제
- Elasticbeanstalk 배포
- Lambda Function 배포
- 설정코드 문서
https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsuses
- Workflows 설정 코드 예시
https://github.com/marketplace