CI/CD 구성 중 마주한 문제
code pipeline
오류 #1 AccessDeniedException
파이프라인을 생성한 뒤 commit > build 까지는 성공했지만
deploy에서 실패한 모습
원인 찾기 #1
Codedeploy 서비스 상태 확인
서비스는 정상 작동 중인 모습
aws 콘솔에서 오류 메시지를 찾아보니
CodeDeploy agent was not able to receive the lifecycle event. Check the CodeDeploy agent logs on your host and make sure the agent is running and can connect to the CodeDeploy server.
라는 메시지가 뜬다.
ec2에 접속해서 로그 파일을 열어보니
2024-12-08T19:25:36 ERROR [codedeploy-agent(50091)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error polling for host commands: Aws::CodeDeployCommand::Errors::AccessDeniedException - Aws::CodeDeploy Command::Errors::AccessDeniedException - /opt/codedeploy-agent/vendor/gems/aws-sdk-core-3.121.1/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call'
오류 로그를 발견
오류해결 #1
AccessDeniedException이라고 하니 IAM 정책도 다시 한번 확인해 보았지만 문제는 찾을수 없었다
열심히 구글링을 해보니 인스턴스 내부의 자격증명 파일을 삭제하고 서비스를 재시작하면 해결 할 수 있다고 한다.
rm -rf /root/.aws/credentials
이유를 찾고 싶었으나 도저히 모르겠다...
서비스를 재시작하고 실패한 작업 재시도 했지만....
오류 #2 Code Error <unknown>
다시 한번 실패한 모습
그래도 이전의 오류와는 다른 곳에서 발생한 오류이다
원인찾기 #2
<unknown> 에러 메시지에 좌절하고 한참을 찾아보다가
line 15200에 "Code Error" 발견
오류 해결 #2
deploy 단계 중 BeforeInstall 단계에서 실패를 했으니 appspce.yml 파일을 확인해 보았다.
확인해보니 오타와 공백이 잘못 들어가 있었고 수정 후 다시 배포하였으나 같은 오류가 발생하였다.
다시 천천히 찾아보니 yml파일의 들여쓰기 규칙이 전체적으로 잘못 되어있는 것을 확인하고 수정 후 재배포
오류 #3
이번엔 ApplicationStart 단계에서 실패
실패 로그를 보니
원인 찾기 #3 Unit httpd.service not found
httpd 데몬 서비스가 존재하지 않는다.
Ubuntu는 httpd 대신 apache2를 사용하기 때문이다.
오류 해결 #3
이전 프로젝트에서는 centos에서 진행했기 때문에 잘못된 코드를 그대로 복사한 잘못이다.
httpd 대신 apache2로 모두 바꿔준뒤 재배포
수많은 실패 뒤 드디어 성공!!
'[Trouble shooting]' 카테고리의 다른 글
.gitignore 적용이 안되는 상황 (0) | 2025.01.23 |
---|---|
AWS EC2에 yum 설치 (0) | 2024.11.21 |
AWS codepipeline 도중 code deploy 실패 (0) | 2024.10.23 |
scp 전송 오류 Permission denied (0) | 2024.05.30 |
Could not open lock file (0) | 2024.05.21 |