2023.01.27 11:58 pm EC2 i-00ef9e86d242354ca
여기에 잠들다

2023.01.27 11:58 pm EC2 i-00ef9e86d242354ca 여기에 잠들다

Untitled

문제상황


  1. CodeDeploy 자동배포 실패

원인


  1. 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 인스턴스에 접근하는 권한 문제인지 확인했다.

  2. IAM 역할

  3. 그렇다면 뭐가 문제였을까?

    아래 블로그에 따르면 CodeDeploy Agent의 버그라고 한다. 따라서 코드 디플로이 에이전트를 업데이트 하기로 했다.

    AWS CodeDeploy 테스트

해결방법


  1. .aws 수정 → 실패!

  2. codedeploy-agent 재실행 → 실패!

    Untitled

  3. CodeDeploy Agent 업데이트

    Untitled

    에이전트 업데이트를 하기 위해서는 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