티스토리 뷰

728x90

깃허브 액션과 AWS codedeploy를 연결했다. 

아래와 같이 깃허브에서 배포 성공을 보고 안심한 상태로 껏는데 다음날 서비스 url로 접속시 502 에러가 떳다

AWS의 codedeply를 살펴보니 배포 상태가 모두 실패 상태였고, 배포 문제를 해결하기 위해 해당 포스트를 작성했다. 

 

깃허브액션 성공

깃허브 액션 배포 성공

 

code deploy 배포 오류 

 

SciprtMissing과 UnknownError는 무슨 오류인가?


SciprtMissing

메시지: 너무 많은 개별 인스턴스가 배포에 실패했거나 배포에 사용할 수 있는 정상 인스턴스가 너무 적거나 배포 그룹의 일부 인스턴스에 문제가 발생하여 전체 배포에 실패했습니다.

 

UnknownError

메시지: CodeDeploy 에이전트가 수명 주기 이벤트를 수신할 수 없습니다. 호스트에서 CodeDeploy 에이전트 로그를 확인하고 에이전트가 실행 중이고 CodeDeploy 서버에 연결할 수 있는지 확인합니다.

 

친절하게도 위 내용을 검색해 보면 AWS 공식문서에서 참조 정보를 제공한다.

 

 

원인 찾기


1. 배포수명 주기 이벤트 -> View event를 클릭 

이벤트 상태 체크 

오류 내용 확인

 

해결방법


SciprtMissing

appspec.yml에서 발생한 scipt오류일 확률이 높다.

appspec.yml을 살펴보자.

version: 0.0
os: linux
files:
  - source: /
    destination: /home/ec2-user/app/step2/zip/
    overwrite: yes

permissions:
  - object: /
    pattern: "**"
    owner: ec2-user
    group: ec2-user

hooks:
  ApplicationStart:
    - location: deploy.sh     <--------- 오류 scripts/deploy.sh
      timeout: 60
      runas: ec2-user

파일 구조를 변경하던 중 까먹고 scripts/를 빼먹었다.

 

UnknownError

ssh서버로 접속해서

Amazon Linux 또는 RHEL용 CodeDeploy 에이전트가 실행 중인지 확인하자.

sudo service codedeploy-agent status

sudo service codedeploy-agent status

error: No AWS CodeDeploy agent running라고 뜬다면

sudo service codedeploy-agent start

스타트를 해주자.

 

성공!


728x90
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday