Github Action이란?
Github 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 CI/CD 도구이다.
Workflow는 Github 저장소에서 발생하는 build, test, package, release, deploy 등 다양한 이벤트를 기반으로 직접 원하는 Workflow를 만들 수 있다.
Workflow는 Runners라고 불리는 Github에서 호스팅 하는 Linux, macOS, Windows 환경에서 실행된다.
Runners를 사용자가 직접 호스팅하는 환경에서 직접 구동시킬 수도 있다.(self-hosted runner)
AWS CodeDeploy란?
SourceCode를 운영환경에 자동 배포하는 AWS Service
EC2, ECS, Lambda등 여러가지에 배포가 가능하다.
CI/CD란?
CI (Continuous Integration)
지속적인 통합이라는 의미
어플리케이션의 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 Repository에 통합하는 것을 뜻한다.
버그를 신속하게 찾아 해결하고, 품질을 개선하고, 새로운 업데이트의 검증 및 Release 시간을 단축 시키기 위함
- 형상관리(Git, SVN 등) 툴 사용
- MSA 환경
CD (Continuous Delivery & Continuous Deployment)
지속적인 서비스 제공 혹은 지속적인 배포라는 의미
Continuous Delivery : 개발자의 변경 사항이 공유 Repository를 넘어, Continuous Deployment : 실제 고객의 Production 환경까지 Release 되는 것
소프트웨어가 언제든지 신뢰 가능한 수준의 버전을 유지할 수 있도록 support 하기 위함
서비스의 개발팀과 비즈니스팀 간의 커뮤니케이션 문제를 해결할 수 있다.
Github Action + AWS CodeDeploy CI/CD
- Git에서 이벤트가 일어나면 Github Action에서 test와 build 후 jar 파일을 S3에 업로드
- CodeDeploy에 배포를 요청
- CodeDeploy가 S3의 저장된 jar파일을 EC2 인스턴스에 배포(4)
이제 직접 구현해보자
'AWS' 카테고리의 다른 글
Simple Queue Service 소개 및 사용법(1/3) (0) | 2021.10.26 |
---|---|
GitHub Action + S3 + CodeDeploy를 이용한 CI/CD (2/2) (2) | 2021.10.08 |
AWS S3 생성 및 설정, Spring Boot 적용 (0) | 2021.09.27 |
AWS RDS + MySQL 구축 (0) | 2021.09.27 |
Amazon EBS(Elastic Block Storage) (0) | 2021.09.16 |