Codedeploy Beforeinstall 무한지연 이슈

0

배포가 이상없이 잘 되다가 임시배포파일 사이즈가 커서 제 ec2 디스크용량이 꽉찼길래 이전 배포된 파일들을 쿨하게 삭제한 이후부터 Download Bundle까지는 진행이 되는데 Beforeinstall 부터 무한로딩이 걸리면서 결국 실패가 뜹니다. 오류코드는 Unknown Error, "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." 가 뜹니다. beforeinstall pending

codedeploy log 파일에도 다음과 같이 뜹니다.

[2023-09-11 16:19:40.428] [d-1GPJ363Q0]LifecycleEvent - ApplicationStop
[2023-09-11 16:19:40.468] [d-1GPJ363Q0]Script - scripts/stop.sh
[2023-09-11 16:19:41.628] [d-1GPJ363Q0][stderr]Removed /etc/systemd/system/multi-user.target.wants/feed_scheduler.service.
[2023-09-11 17:08:25.414] [d-JCN2VR3Q0]LifecycleEvent - ApplicationStop
[2023-09-11 17:08:25.415] [d-JCN2VR3Q0]Script - scripts/stop.sh
[2023-09-11 17:08:26.249] [d-JCN2VR3Q0][stderr]Removed /etc/systemd/system/multi-user.target.wants/feed_scheduler.service.

이렇듯 원인을 추적하기 힘든 상황입니다.

한가지 의심스러운 부분은 4일 전까지는 잘 돌다가 ec2 disk full error가 떠서 deployment-root의 배포 어플리케이션 ID 디렉토리의 임시저장파일을 다 날렸던 적이 있습니다. 원인과 해결방법에 대해서 알려주신다면 정말정말 감사하겠습니다...

cjpark
질문됨 8달 전214회 조회
1개 답변
2

안녕하세요

여기에 이미지 설명 입력

위와 같이 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. 에러가 발생하는 경우,

1) 대상 EC2 인스턴스의 권한 부족 문제

2) CodeDeploy Agent의 비활성화

3) System Manager Agent (SSM Agent) 또는 CodeDeploy Agent의 삭제

위 항목들을 그 원인으로 의심해 볼 수 있습니다.


이에 대한 문제해결을 다음과 같이 시도해 볼 수 있습니다.

1) 대상 EC2 인스턴스의 권한 부족 문제

  • 신규 인스턴스를 생성하는 경우
    • [인스턴스 시작] 화면 내 [고급 세부 정보] - [IAM 인스턴스 프로파일]을 선택합니다.
    • [새 IAM 프로파일 생성] - [역할 만들기]를 선택합니다.
    • [AWS 서비스] - [EC2]를 선택합니다.
    • "AmazonEC2RoleforAWSCodeDeploy" 정책을 선택하고 IAM 역할을 생성합니다.
    • [인스턴스 시작] 화면으로 돌아가 생성한 IAM 역할을 적용합니다.
  • 기존 인스턴스가 존재하는 경우
    • EC2 대시보드에서 실행 중인 기존 인스턴스를 선택합니다.
    • 우측 상단 [작업] - [보안] - [IAM 역할 수정]을 선택합니다.
    • [새 IAM 프로파일 생성] - [역할 만들기]를 선택합니다.
    • [AWS 서비스] - [EC2]를 선택합니다.
    • "AmazonEC2RoleforAWSCodeDeploy" 정책을 선택하고 IAM 역할을 생성합니다.
    • [IAM 역할 수정] 화면으로 돌아가 생성한 IAM 역할을 적용하고 IAM 역할 업데이트를 수행합니다.

2) CodeDeploy Agent의 실행 중지

  • CodeDeploy Agent가 실행 중인지 확인하려면 다음 명령어를 실행합니다.
       sudo service codedeploy-agent status
    
  • "error: No AWS CodeDeploy agent running"와 같은 메시지가 표시되면 CodeDeploy Agent를 시작합니다.
       sudo service codedeploy-agent start
    

3) CodeDeploy Agent 또는 Systems Manager Agent (SSM Agent)의 삭제

  • CodeDeploy Agent 재설치 (Amazon Linux 기준)
    • 대상 EC2 인스턴스에 연결하여 아래 명령어들을 하나씩 실행합니다.
      sudo yum update
      sudo yum install ruby
      sudo yum install wget
      cd /home/ec2-user
      # 본인의 Region에 맞게 아래 명령어를 수정합니다.
      wget https://aws-codedeploy-us-east-1.s3.us-east-1.amazonaws.com/latest/install
      chmod +x ./install
      sudo ./install auto
    
  • Systems Manager Agent (SSM Agent) 및 CodeDeploy Agent 재설치
    • AWS Systems Manager 사용 설명서를 참고하여 대상 EC2 인스턴스에 SSM Agent를 설치합니다.
    • AWS 콘솔 화면에서 AWS Systems Manager를 검색하여 선택합니다.
    • 사이드바 하단 [배포자(Distributor)]를 선택합니다.
    • "AWSCodeDeployAgent"와 [한 번 설치]를 선택합니다.
    • [대상]에서 원하는 EC2 인스턴스 조건을 설정한 후 설치 명령 [실행]을 수행합니다.
    • 더욱 자세한 설치 방법은 AWS CodeDeploy 사용 설명서를 참고 바랍니다.

위 답변이 문제해결에 도움이 되셨기를 바랍니다. 감사합니다.

profile picture
답변함 7달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠