인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

lmh7249님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 CI/CD 입문·실전

[실습] 확장성을 고려한 프로젝트에서 많이 쓰는 CI/CD 구축 방법

codedeploy 배포 실패 에러 로그 질문

작성

·

189

0

안녕하세요. 깃헙 액션 작업은 통과하였는데, codedeploy는 배포에 실패했습니다.

image.png

codedeploy 로그파일을 찾아보았는데 제가 추측하는 에러 부분은 아래 부분일 것 같은데, 혹시 어느 부분이 잘못 되었을까요? ..
2024-12-07T16:12:48 WARN [codedeploy-agent(7606)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Calling PutHostCommandComplete: "Code Error"

2024-12-07T16:12:48 INFO [codedeploy-agent(7606)]: [Aws::CodeDeployCommand::Client 200 0.018818 0 retries] put_host_command_complete(command_status:"Failed",diagnostics:{format:"JSON",payload:"{\"error_code\":5,\"script_name\":\"\",\"message\":\"undefined method `[]' for nil:NilClass\",\"log\":\"\"}"},host_command_identifier:"eyJiYXRjaElkIjoiMmE3MWFiOWRhOGNmODAxYTM3OWZiNmFkMGZhYzk1NjMvcHVibGljMDA1IiwiZGVwbG95bWVudElkIjoiQ29kZURlcGxveS9hcC1ub3J0aGVhc3QtMi9wcm9kL29ycGhldXM6cHVibGljMDA1LzIzNTQ5NDc3NjUzMDpkLTNKTzIyQzkwOSIsImhvc3RJZCI6ImFybjphd3M6ZWMyOmFwLW5vcnRoZWFzdC0yOjIzNTQ5NDc3NjUzMDppbnN0YW5jZS9pLTBlYzEzOTRiZGRiNjg5ODBkIiwiY29tbWFuZElkIjoiQXBvbGxvRGVwbG95Q29udHJvbFNlcnZpY2V8YXJuOmF3czplYzI6YXAtb

궁금한 점은
1. 위와 같은 에러가 발생한 이유
2.강사님이 올려주신, codedeply 에러 로그 보는법을 확인했는데, 제가 리눅스 명령어에 익숙하지 않아서 .. 어떠한 방식으로 에러 로그를 확인하는게 좋을까요?(cat이나 이런거로 읽으면 로그가 너무 많이 출력 되는데, 에러를 해결할 수 있는 핵심 로그만 볼 수 있는 방법이나, 강사님만의 방법이 있을까요?!)

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 lmh7249님! 말씀해주신 질문에 대해 답변 드려볼게요:)

  1. appspec.yaml에서 코드가 잘못 작성됐을 가능성이 있어보이네요! 혹시 appspec.yaml 파일에서 잘못된 부분 없는 지 확인해보시겠어요~?? 만약 못 찾으시겠다면 appspec.yaml 코드 복사해서 질문 다시 한 번 남겨주세요~~

  2. tail이라는 명령어 검색해서 찾아보시면 좋을 것 같습니다! 그럼 최근 로그만 잘라서 볼 수 있으실 거에요:)

이 외로 궁금한 점 생기시면 또 질문 남겨주세요~~

lmh7249님의 프로필 이미지
lmh7249
질문자

해결했습니다. 감사합니다!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. lmh7249님.

CodeDeploy에서 발생한 오류와 관련하여 직접적인 해결 방안을 제공할 수 있도록 유사한 사례를 참고해 몇 가지 방향을 제시해 보겠습니다.

문제 요약

  1. UnknownError: BeforeInstall 단계가 실패하였고, 이는 보통 코드 또는 스크립트 내의 논리 오류가 있을 때 발생합니다.
  2. Error Message: “undefined method []' for nil:NilClass"라는 메시지는 Ruby에서nil` 객체에 인덱스 접근을 시도할 때 발생합니다. 이는 보통 변수를 초기화하지 않았거나 예상한 데이터가 없는 경우입니다.

해결 방안

  1. 스크립트 점검: BeforeInstall 스크립트에서 배열이나 해시 데이터에 접근하는 부분을 점검해 보세요. 데이터의 nil 여부를 확인하고 적절히 처리하는 코드를 추가해야 합니다.

  2. 에러 로그 확인 방법:

    • tail 명령어 사용: 로그 파일의 끝부분만 확인할 수 있는 tail -n 50 /var/log/aws/codedeploy-agent/codedeploy-agent.log 명령어를 사용하여 최근 50줄의 로그를 볼 수 있습니다.
    • grep 사용으로 필터링: grep "ERROR" /var/log/aws/codedeploy-agent/codedeploy-agent.log 명령어로 특정 키워드를 검색하여 에러 관련 로그만 필터링하여 볼 수 있습니다.
  3. CodeDeploy 문서 참고: CodeDeploy 에러 코드는 공식 문서에 상세히 설명되어 있는 경우가 많습니다. AWS CodeDeploy 공식 문서를 참조하여 에러 코드가 나타내는 바를 확인해 보세요.

기존 답변 참고

비슷한 문제를 다룬 기존의 질문과 답변을 통해 더 많은 정보를 얻을 수 있을 것입니다:
- 배포 실패: S3 경로 또는 IAM 권한 설정과 관련한 문제일 가능성이 있으니 점검해보세요.
- 배포는 성공하지만, pm2 list를 확인해보면 에러가 발생이 되어있습니다.: Node.js 및 PM2 환경에서 발생할 수 있는 오류와 해결 방법을 확인할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

lmh7249님의 프로필 이미지

작성한 질문수

질문하기