CI/CD
개발자가 변경하는 새로운 코드들의 Merge로 인해 생기는 여러가지 문제를 해결하기 위한 솔루션
특히 CI/CD는 소프트웨어 릴리스 프로세스 중 빌드 또는 통합 단계를 주로 가리키며, 어플리케이션의 라이프사이클 전체의 자동화와 모니터링을 제공
CI/CD 필요성
다수의 개발팀이 다수의 서비스를 각각 배포할 때의 문제점
: 개발 주기가 각각이기 때문에, 개발 프로세스가 복잡해진다.
CI/CD 효과
배포 프로세스가 단순화 되기 때문에 배포 빈도에 효율적
- 매주/매월 단위 → 매시간/매일 단위(더 빠른 단위로 할 수 있다)
- 배포 실패 비율 변화도 줄어듦
Amazon CI/CD Tool : Code Series
AWS Code Series비용
사용한 만큼만 지불. AWS CodePipeline는 월별 활성 파이프라인* 당 1.00 USD /1400원를 청구. 전체 기본 구성을 적용하는 경우,월별 청구액은 약 15 USD/21000원 . 생성 후 첫 30일 동안은 파이프라인이 무료(trial)로 제공 + 서울 리전 설정이 안되어서 도쿄로 사용해야 함. 개인 무료여부는 모르겠다.
AWS CodePipeline Service
- Author
: AWS Cloud9 AWS IDE toolkits (AWS가 소스 수정을 위해 자체적으로 제공하는 IDE)
->비추ㅎ 개인 프로젝트에만 추천 - Source
: AWS CodeCommit (구성원 간의 Pull Request 등의 작업을 위해 사용)
AWS CodeComit 적용 효과
AWS 플랫폼 내에서 Pull Request 관리와 각 환경의 Merge 현황을 모두 관리하여 PR ~ Deploy를 한 플랫폼 내에서 한 흐름으로 관리할 수 있다.
(하지만 필요에 따라 하나의 단계만 구성하여 다른 플랫폼과 연결도 가능)
- Build
: AWS CodeBuild - Test
: AWS CodeBuild - Deploy
: AWS CodeDeploy - Monitor
AWS CodeBuild 의 컨셉
- Project
: 소스를 빌드하거나 환경을 어떻게 구성하고 서비스를 이어갈지 - Environment
- Inputs
- Phases
- Commands
- Artifacts
(하기는 JAVA 로젝트 설정파일, FE 프로젝트의 경우 NPM 및 Node 설정하면 된다.)
AWS CI/CD 환경 구성 방법
아래 워크샵 자료는 AWS에서 제공받은 Event Engine을 바탕으로 활용한 예제
1) CI/CD 환경 구성 Workshop
AWS CI/CD 환경을 구성하기 위해서는 대략적으로 아래와 같은 과정이 필요
- AWS 플랫폼 내 소스코드 리포지토리 생성
- 프로젝트 빌드 (빌드 설정을 위한 buildspec 추가 필요)
- 배포 그룹 만들기 (appspec 설정 등)
- 배포 파이프라인 생성
구체적인 과정은 아래 도큐먼트 참고
: https://catalog.us-east-1.prod.workshops.aws/workshops/cbcd960c-a07b-40c2-a01d-1d2e7a52b945/ko-KR
2) Code Quality Workshop
: https://catalog.us-east-1.prod.workshops.aws/workshops/fa518794-acd4-4178-80d3-97fa62f9deff/ko-KR
그 외 개념 참고
AWS IaC
AWS CDK
: AWS CDK는 익숙한 프로그래밍 언어(JavaScript, TypeScript, Python, Java, C#, Go 등)를 사용하여 클라우드 애플리케이션 리소스를 정의할 수 있는 오픈 소스 소프트웨어 개발 프레임워크