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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기