1. 개요

CodePipeline 사용 중 CodeDepoly 단계에서 오류가 발생하는 경우


2. 내용

2-1. 문제 상세

  • CodeDeploy 단계에서 오류가 발생하였고 확인 결과 DownloadBundle 단계에서 문제가 생김
  • CodeDeploy 단독으로 사용 시는 문제가 없음

2-2. 원인

CodePipleline을 태우면 Output artifact 위치가 CodeDeploy가 지정한 S3 위치(revision 가 아님

예를 들어,

  • CodeDeploy 단독으로 사용시 내가 지정한 artifact 위치에 떨어짐 : s3://s3-..../myApp.war.zip
  • CodePipeline을 태우면 artifact 위치가 바뀜 : s3://codepipeline-ap-..../myPipeline/MyAppBuild/gAWkv9c?etag=f19c4a3679f3426d1e1f977445e19f4f-3

결국 Deploy Taget, 예를 들어 EC2에서 해당 CodePipeline쪽 S3 권한이 없어서 오류가 발생한 것임


3. 해결책

EC2에 S3 access 권한 추가

"arn:aws:s3:::codepipeline*",

** 참고 : AWS-CodePipeline-Service (https://docs.aws.amazon.com/ko_kr/codepipeline/latest/userguide/how-to-custom-role.html)

        {
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::codepipeline*",
                "arn:aws:s3:::elasticbeanstalk*"
            ],
            "Effect": "Allow"
        },