상세 컨텐츠

본문 제목

[AWS Codedeploy Errors] AWS Code deploy cannot reach instance service

Infra/Error

by young1403 2023. 10. 17. 16:32

본문

 

 인스턴스가 동작하지 않아 중지&시작을 하려는게 종료 버튼을 잘못 눌러서 인스턴스를 새로 만들며 겪은 오류이다..

인스턴스는 새로 만들어 nginx를 붙이고 vpc쪽만 잘 맞춰주니 수동으로 사이트는 금방 띄울 수 있었다. 하지만 CodeDeploy쪽에서 오류해결하는데에 시간이 좀 걸렸다. "/var/log/aws/codedeploy-agent " 경로의 로그 기록을 보면 크게 두가지 에러를 확인할 수 있었다.

[1] The security token included in the request is invalid.

시작부터 실패..

처음엔 'token 설정을 따로 해주지 않아서 codedeploy-agent에 접근이 불가능 한건가' 라는 생각에 aws linux의 aws configure을 확인해보니 설정을 새로 해주지 않은 상황이었다.

iam 생성시 발급받은 액세스키와 비밀액세스키, region을 입력해 주었다.

 

하지만 오류는 해결되지 않고 Cannot reach InstanceService 에서의 Permission denied문제가 계속 되었다.

[2] Cannot reach InstanceService

aws configure설정 때문은 아니라는 결론이니 일단 s3에서 ec2인스턴스의 codedeploy-agent에 접근이 불가능한 상황을 해결하기 위해 찾아보았다.
https://repost.aws/questions/QUUQG8erWXTj6KlQ1Asa4siw/aws-code-deploy-cannot-reach-instance-service

 

AWS Code deploy cannot reach instance service

I'm going to use ec2, s3, codedeploy to configure cicd through github Action These are the settings. This is Code deploy IAM Role AmazonEC2FullAccess ,AmazonS3FullAccess, AWSCodeDeployRole this...

repost.aws

 


AWS CodeDeploy 에이전트가 EC2 인스턴스에서 AWS 서비스와 상호 작용할 때, 사용자 자격 증명 정보가 필요하며 일반적으로 EC2 인스턴스의 ~/.aws/credentials 파일이나 환경 변수를 통해 제공되는데 그 credentials 정보에 문제가 있었던 것 같다.

보통 이런 문제를 겪으면 aws 폴더나 credentials 파일을 삭제하는 듯 한데, 삭제하기 전에 credentials파일을 보니 나의 액세스키와 비밀키가 등록되어있는 것을 볼 수 있었다. 둘 모두 정상적인 값이 들어가 있었는데 지금 생각해보면 region이 없어서 에러가 났나? 라는 생각이 든다. 파일을 삭제하기전에 테스트를 한번 해봤을 껄 하는 생각이 뒤늦게 든다.

 

이렇게 삭제 후에 codedeploy-agent에 접근이 가능하였고 applicationStop 이벤트가 정상적으로 실행됨 을 볼 수 있었다.

 

 그 후 applicationStart 이벤트에서 이슈가 또 있었는데 다음글에서 적어보겠습니다.

 

관련글 더보기

댓글 영역