AWS 의 CI/CD 툴인 CodePipeline 에 대해 정리해보려고 합니다.
미리 보면 좋은 내용
2021.04.17 - [Linux/Docker] - Docker 사용해보기 - 1 (Why Docker 2편 + CentOS 7.9 Docker 설치)
2021.05.10 - [Linux/Docker] - Docker 사용해보기 - 3 (python 모듈 Docker 에서 실행하기)
2021.05.24 - [Linux/Docker] - Docker 사용해보기 - 4 (오케스트레이션 도구소개)
AWS CodePipeline 이란?
코드가 변경될 때마다 코드를 빌드, 테스트 및 배포하도록 하는 자동화 도구
CI/CD 툴이라고 생각하면 된다.
*CI : Continuous Integration
*CD : Continuous Delivery / Deployment
출처: Devops Explained
AWS CodePipeline Flow
AWS CodePipeline 의 Flow 는 아래와 같다.
Source Stage -> Build Stage -> Deploy Stage
1. Source Stage
- Source Stage 는 Source Code 형상관리 툴이다. (github 과 유사하다)
- AWS 에서는 CodeCommit 이라는 개발자 도구를 제공한다.
- CodeCommit 을 기준으로 특정 Branch 에 Push 가 발생할 시 Pipeline 이 동작한다.
- Repository 와 BranchName 기준으로 target 을 정할 수 있다.
2. Build Stage
- Build Stage 는 Source Stage 를 기준으로 Docker Image 로 빌드하는 단계이다.
- AWS 에서는 CodeBuild 라는 개발자 도구를 제공한다.
- Source Stage Repository 에 buildspec.yml 을 기준으로 빌드를 진행한다.
- Build Stage 는 세 단계 (phase) 로 나누어 진행한다. (install -> post build -> build)
- 빌드에 성공한 이미지는 ECR 과 같은 repo 에 push 한다.
- *ECR 은 Elastic Container Registry 의 약자로 Docker repo 와 유사하다.
- 빌드 시 필요한 이미지나 라이브러리는 S3 또는 로컬에 cache 로 저장하며 최초 1회만 오래걸린다.
3. Deploy Stage
- Deploy Stage 는 빌드된 이미지를 기준으로 배포하는 단계이다.
- AWS 에서는 CodeDeploy 라는 개발자 도구를 제공한다.
- ECR 에 Commit 이 발생하면 배포 target 에 업데이트한다.
- 현재 진행해본 케이스는 target 이 EKS 인 경우이다.
- CodeDeploy 를 사용해도 되나 내부 사정상 ArgoCD 연동을 하였다.
AWS Pipeline 에 대해 가볍게(?) 알아보았습니다.
설정 예제의 경우 추후 업무외적으로 프리티어를 사서 사이드 프로젝트를 하게되면 작성하게 될지도 모르겠습니다..
감사합니다.
반응형
'AWS' 카테고리의 다른 글
AWS Bastion 개념 정리 (Bastion 이 뭐야?) (0) | 2023.03.07 |
---|---|
[AWS CI/CD] CodeBuild 정리 (0) | 2021.12.28 |
최근댓글