본문 바로가기

DevOps

[AWS] AWS CI/CD 구현 (3) - CodePipeline 생성

AWS CICD 구현 (3) - CodePipeline 생성

 

AWS CICD CodeCommit + CodePipeline 삽질 적용기 3탄 'CodePipeline 생성 + Trouble Shooting' 입니다.

👇👇 1탄 👇👇

 

[AWS] AWS CI/CD 구현 (1) - CodeCommit, CodeBuild

AWS CICD CodeCommit + CodePipeline 삽질 적용기 1탄 'CodeCommit + CodeBuild 설정' 입니다. 💡확인하기 소스 리포지토리는 AWS CodeCommit을 사용합니다. Gradle, Spring Boot, multi module 구조의 프로젝트 기준입니다. dock

devzooo.tistory.com

👇👇 2탄 👇👇

2024.03.11 - [CICD] - [AWS] AWS CI/CD 구현 (2) - CodeDeploy 설정

 

[AWS] AWS CI/CD 구현 (2) - CodeDeploy 설정

AWS CICD CodeCommit + CodePipeline 삽질 적용기 2탄 'CodeDeploy 설정' 입니다. 👇👇 1탄 👇👇 [AWS] AWS CI/CD 구현 (1) - CodeCommit, CodeBuild AWS CICD CodeCommit + CodePipeline 삽질 적용기 1탄 'CodeCommit + CodeBuild 설정' 입

devzooo.tistory.com

💡확인하기
  • 소스 리포지토리는 AWS CodeCommit을 사용합니다.
  • Gradle, Spring Boot, multi module 구조의 프로젝트 기준입니다.
  • docker-compose 를 사용합니다.
  • 각 모듈의 최상위에는 Dockerfile 이 정의되어 있습니다.

 


 

3. CodePipeline 생성

작업을 정의할 파이프라인을 생성합니다.

1) 파이프라인 생성

CodePipeline 1
CodePipeline 1

2) 소스 스테이지

읽어올 코드베이스 대상을 설정합니다.

github 의 checkout 과 같습니다.

우리의 소스는 시작전에 CodeCommit에 업로드했으니 (AWS CICD 1탄 참고) CodeCommit의 리포지토리와 대상 브랜치를 선택하세요.

변경 감지 옵션

대상 리포지토리의 브랜치가 변경되면 해당 파이프라인이 자동 실행됩니다.

Amazon CloudWatch Events AWS CodePipeline
CodePipeline 설정 변경시 저장 후 직접 실행해야 함 CodePipeline 설정 변경하여 저장시 자동 실행됨
브랜치 변경과 관계없이 수동으로 시작하고 싶을때
대상 브랜치를 존재하지 않는 브랜치명으로 설정하고 반영할때만 정상 브랜치명으로 수정하여 진행하였습니다.
무조건 자동 실행됩니다ㅠㅠ 옵션을 아시면 댓글로 알려주세요

CodePipeline 2
CodePipeline 2

3) 빌드 스테이지

빌드 단계에서 실행할 항목을 설정합니다.

이전에 정의한 (AWS CICD 1탄 참고) CodeBuild 프로젝트를 선택해주세요.

CodePipeline 3
CodePipeline 3

4) 배포 스테이지

배포 단계에서 실행할 항목을 설정합니다.

이전에 정의한 (AWS CICD 2탄 참고) CodeDeploy 애플리케이션과 배포그룹을 선택해주세요.

CodePipeline 4
CodePipeline 4

 

5. 완성!

완성

 

6. 실행하기

CodePipeline 실행
CodePipeline 실행

 

성공!
성공!

 


 

Trouble Shooting

CodeDeploy DownloadBundle 'Access Denined'

CodeDeploy 실행시 DownloadBundle step에서 접근 권한 에러가 발생할 수 있습니다.

DownloadBundle error
킹받네

권한 문제는 IAM 관련 부분을 수정하면 해결되는 경우가 많아요.

EC2에 부여한 IAM 권한에 s3:GetObjectVersion 을 추가합니다.

// ec2-code-build
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "codebuild:*",
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetObjectVersion"	// ## 추가
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

설정 후 꼭 EC2 codedeploy-agent 재시작!

service codedeploy-agent restart

 

728x90