CodeDeploy에서 appspec.yml 파일을 읽지 못하는 error

이정연·2023년 5월 30일
0

project034

목록 보기
6/10

문제

  • codedeploy에 역할 부여후에도 codedeploy가 정상적으로 실행되지 않았다.

The overall deployment failed because too many individual instances failed deployment, too few healthy instances are available for deployment, or some instances in your deployment group are experiencing problems.

  • 다음과 같은 에러메세지를 확인 할 수 있었다.

원인

  • 원인을 알기위해 다음 명령어로 codedeploy의 log를 봐야 했다.

ec2 main 에서 /var/log/aws/codedeploy-agent로 들어간다음, cat codedeploy-agent.log 명령어를 이용하여 확인한다.

  • log를 보면 AppSpec.yml file이 해당 경로에 없어서 문제가 발생하는 것을 알 수 있었다.

  • 중간에 보면 \"erroe_code\":5 라고 나오고, 뒤에 the AppSpec file was expected but not found at path ~~~ 라하여
    해당 위치에 appspec.yml 파일을 찾을 수 없다고 나온다.

  • appspec.yml을 찾지 못하니 당연히 빌드 스크립트도 실행하지 못하고 계속 실패하는 것이다.

  • 로그를 읽어보면 해당 경로에 appspec.yml 이 없기때문에 생기는 문제인것을 파악할 수 있었다.

    /opt/codedeploy-agent/deployment-root/.../deployment-archive

  • 찾아보니 해당 경로는 최상위 경로에 appspec.yml 파일이 위치해야 함을 알 수 있었다.

해결

  • 사실 우리 프로젝트의 appspec.yml 파일은 프로젝트의 서버파일안에 위치해 있었기 때문에 이것을 최상위 경로로 옮기면서 해결 할 수 있었다.

  • 구조를 보면 아래와 같다

위에서 말한대로 원래는 tripAdvisor 서버 파일 안에있던것을 밖으로 빼내어 해결했다.

  • 다른방법 으로는 ec2의 저 경로로 들어가서 appspec.yml file을 강제로 만들어서 해결할 수 도있었지만, 온전하게 github action만으로 해결하고 싶었다.
profile
반갑습니다.

0개의 댓글