2023.01.27 11:58 pm EC2 i-00ef9e86d242354ca 여기에 잠들다
CodeDeploy Agent Error log
cat /var/log/aws/codedeploy-agent/codedeploy-agent.log
2023-01-27 08:56:03 ERROR [codedeploy-agent(670)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Cannot reach InstanceService: Aws::CodeDeployCommand::Errors::AccessDeniedException -
2023-01-27 08:57:33 INFO [codedeploy-agent(670)]: Version file found in /opt/codedeploy-agent/.version with agent version OFFICIAL_1.3.2-1902_deb.
2023-01-27 08:57:33 INFO [codedeploy-agent(670)]: [Aws::CodeDeployCommand::Client 400 0.034174 0 retries] poll_host_command(host_identifier:"arn:aws:ec2:ap-northeast-2:698569324264:instance/i-00ef9e86d242354ca") Aws::CodeDeployCommand::Errors::AccessDeniedException
Aws::CodeDeployCommand::Errors::AccessDeniedException 에러 로그를 확인하고 Codedeploy가 EC2 인스턴스에 접근하는 권한 문제인지 확인했다.
IAM 역할
각 서비스에 적용된 IAM 역할과 각 역할에 부여된 정책들은 정상임을 확인했다.
또한 Github Actions 에서 S3로의 .zip 파일 업로드 및 CodeDeploy로의 배포 실행이 진행된 것을 보아 IAM 역할 문제는 더더욱 아니었다.
그렇다면 뭐가 문제였을까?
아래 블로그에 따르면 CodeDeploy Agent의 버그라고 한다. 따라서 코드 디플로이 에이전트를 업데이트 하기로 했다.
.aws 수정 → 실패!
codedeploy-agent 재실행 → 실패!
CodeDeploy Agent 업데이트
에이전트 업데이트를 하기 위해서는 ruby 2.X.X 버전이 필요했다. 하지만 우리의 우분투는 22.04 버전이었기 때문에 ruby가 3.0.2 버전이었다. 구글링 결과 Ubuntu 22.04 에서 ruby 2.X.X 버전을 설치하기 위해서 아래의 레퍼런스를 참조했다.
How to Install Ruby on Ubuntu 22.04
How To Install Ruby on Rails with rbenv on Ubuntu 22.04 | DigitalOcean