[AWS] ubuntu EC2에서 CodeDeploy 에러 (Agent)

2023. 9. 1. 18:43TrubleShooting/aws

회사 프로덕트를 개발하다 CI/CD 구성을 AWS의 CodePipeline을 이용해서 지속적인 통합, 개발을 세팅하기로 했습니다.

EC2 - t2.micro (ubuntu LTS 22버전)

을 사용하다 기존 회사분이 AWS Linux 로 배포시에는 크게 이상이 없었는데 ubuntu로 OS선택하니 해당 에러가 발생했습니다!

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

이유는 2가지로 볼 수 있는데

  • 1번째 이유

IAM에서 Code Deploy role 설정이 안되어있는 경우인데 저는 role 설정은 해줬으므로 패스했습니다!

  • 2번째 이유

ubuntu에서는 따로 CodeDeploy Agent를 CLI로 설치를 해줘야합니다 (AWS Linux를 사용할 껄 그랬나봅니다..)

 

 

2번째 이유로 문제 해결을 해보겠습니다.

 

  1. apt저장소 업데이트
sudo apt-get update
  1. ruby 설치
    CodeDeploy Agent는 ruby로 작성되있으므로 ruby설치
$ sudo apt install ruby-full

$ sudo apt install wget
  1. install파일 경로 설정
# Ubuntu Server 인스턴스의 기본 사용자 이름을 나타냄 사용자지정 AMI를 사용했으면 지정한 이름으로 변경
$ cd /home/ubuntu
  1. CodeDeploy리소스 키트 파일이 포함된 s3버킷 이름과 region식별자 넣어줘 해당 명령어 실행합니다
# bucket-name과 region-identifier를 각자의 상황에 맞게 변경합니다.
$ wget https://<bucket-name>.s3.<region-identifier>.amazonaws.com/latest/install

# 한국 서울 리전 사용하면 아래 cli로 붙혀넣어 설치하면 됩니다.
$ wget [https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install

 

 

추가적인 명령어 그대로 chmod로 권한 허용 후 install

chmod +x ./install
sudo ./install auto

위에 따라서 에러 없으면 Agent 설치에 성공했습니다.

 

 

자 그럼 CodeDeploy 에러 시 Agent 확인 및 시작 하는 코드는 아래 코드로 확인해보시면 됩니다

# codedeploy-agent 상태 확인
$ sudo service codedeploy-agent status

# codedeploy-agent 서비스 시작
$ sudo service codedeploy-agent start

# systemctl로도 확인 가능
$ sudo systemctl status codedeploy-agent
$ sudo systemctl start codedeploy-agent
$ sudo systemctl restart codedeploy-agent

$ cat /var/log/aws/codedeploy-agent/codedeploy-agent.log

 

 

echo까지 찍힌 로그 확인하기 위해서는 cli로 log위치로 가서 cat명령어로 codedeploy실행 흐름을 볼 수 있으므로 에러 확인 후 문제를 풀어가면 될 것 같습니다.

 

Log위치 : /opt/codedeploy-agent/deployment-root

# log 위치로 이동
$ cd /opt/codedeploy-agent/deployment-root/deployment-logs

# 로그 확인
$ cat codedeploy-agent-deployments.log

 

 

감사합니다 😉

 

참고

Ubuntu Server용 CodeDeploy 에이전트 설치