29
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IAM Roleを後からアタッチしたEC2でAWS CodeDeployに失敗する

Last updated at Posted at 2017-05-10

タイトルの通り、AWS CodeDeployを使うために後からIAM Roleをアタッチしてもデプロイが失敗してハマったので、その解決策。

結論

codedeploy-agent を再起動する

背景

2017年02月に発表された新機能で、既に作成しているEC2インスタンスにIAM Roleがアタッチできるようになった。
本当はもっと前からできるようになっていて欲しい機能。これのせいでどれだけ苦しめられたか。。

「既存のAmazon EC2インスタンスにIAM Roleがアタッチできるようになりました」
https://aws.amazon.com/jp/blogs/news/new-attach-an-aws-iam-role-to-an-existing-amazon-ec2-instance-by-using-the-aws-cli/

$ aws ec2 associate-iam-instance-profile --instance-id YourInstanceId --iam-instance-profile Name=YourNewRole-Instance-Profile

ちなみに、2017年05月時点ではCLIからしか操作できない。

この新機能に、クライアントであるEC2インスタンスにインストールすべき codedeploy-agent が対応してないのが問題だと推測される。

IAM Roleをアタッチしてもエラーを吐き続ける。

/var/log/aws/codedeploy-agent/codedeploy-agent.log
2017-05-10 21:08:21 ERROR [codedeploy-agent(13743)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Missing credentials - please check if this instance was started with an IAM instance profile
2017-05-10 21:09:32 INFO  [codedeploy-agent(13743)]: Version file found in /opt/codedeploy-agent/.version.

IAM Roleの設定に問題があるのかと思ってかなり色々試したが解決せず。

結局、最後の頼みで再起動したら正常にデプロイできた。

$ sudo service codedeploy-agent restart
29
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?