IT/Public Cloud

AWS CodePipeline 자습서 따라하기

엘티엘 2022. 1. 3. 20:31

AWS CodePipeline 의 자습서를 따라하면서 관련 내용을 정리해 봤다.

자습서: 단순 파이프라인 생성 (S3 버킷)

가장 기본적인 내용이다. S3에 업로드된 Application 코드를 CodeDeploy로 배포한다.

CodePipeline은 Source, Build, Deploy 3단계로 이루어져 있는데, 이번 예제는 아래처럼 구성된다. 이후에 새로운 Deployment Group을 생성하고 Production 배포단계를 추가하고 enable/disable을 시킬수 있다.

  • Source: S3
  • Build: skip
  • Deploy: CodeDeploy

자습서: 간단한 파이프라인 생성 (CodeCommit 리포지토리)

위의 내용과 거의 유사하나 Source로 S3 대신 CodeCommit을 쓴다는 차이점이 있다. CodeCommit에 새로 push 할때마다 pipeline이 실행되는걸 확인할수 있다.

자습서: 4단계 파이프라인 생성

CodeCommit, CodeBuild대신 Github, Jenkins를 사용하는 예제이다. 본인의 Github repository와 연동하고, EC2에 Jenkins를 설치해서 Build Tool로 사용한다.

  • Source: Github
  • Build: Jenkins (on EC2)
  • Deploy: CodeDeploy

AMI yum repo에 없는 패키지가 있어서 EC2에 Jenkins 설치시 에러가 발생한다. 아래 command로 필요한 프로그램들을 추가로 설치하면 정상적으로 설치가 가능하다.

sudo amazon-linux-extras install java-openjdk11
sudo amazon-linux-extras install epel
sudo yum install rake
gem install haml

기본적인 Source, Build, Deploy 설정 외에 아래와 같은 추가 작업이 필요하다.

  1. Jenkins가 CodePipeline에 명령을 내리고 데이터를 보내기 위한 IAM 권한을 생성 및 EC2에 추가
  2. Jenkins에 AWS CodePipeline plugin 설치

자습서: 파이프라인 상태 변경에 대한 이메일 알림을 수신하도록 CloudWatch Events 규칙 설정

CloudWatch에서 CodePipeline을 감시하다가 원하는 이벤트가 발생하면 SNS를 통해서 email 을 보내는 예제이다. 여기서는 CodePipeline의 상태가 FAIL 이라면 SNS->email로 Noti를 보낸다.

  1. SNS Topic 생성 및 email 등록
  2. Cloudwatch -> EventBridge -> Rule 생성 (CodePipeline의 상태가 FAIL) -> Target 생성 (SNS Topic)
 

 

 

반응형