Help us understand the problem. What is going on with this article?

AWS CodeDeployとCodePipelineでハマった時の対処法

More than 1 year has passed since last update.

TL;DR

エラーの原因はAWS(ポリシーやロールの権限)、Github、CircleCI、etc... の設定ミスです。
やりたい事次第でエラーもそれぞれなので、ログ見てググりましょう!

EC2instance
# tailコマンドでログを200行表示
$ tail -f -n 200  /var/log/aws/codedeploy-agent/codedeploy-agent.log

はじめに

Github push → CodePipeline → CodeDeployでデプロイ自動化をやりたくて
AWSのドキュメントを見るも意味不明。。。

以下の方々の記事を参考にしました。
AWS CodeDeployの導入 & AWS CodePipeLineでgit pushの度にEC2に自動デプロイ & 結果をSlackに通知
AWS CodeDeployとGitHubを連携してEC2に簡単自動デプロイ
GitHubへのpush時にCodeDeployを使ってEC2にアプリケーションをデプロイする
[AWS] CodeDeploy+CodePipeline+GitHub push時にEC2にデプロイ

環境

CLB(Classic Load Balancer)
インプレースデプロイ
EC2インスタンス2台(AZ)

① まずはCodeDeployだけで動作するようにする

上記の記事を参考に設定し、CodeDeployのコンソールでデプロイボタンを押すと
案の定エラーになった。

(※画像はAWSフォーラムより引用)
ss2.png
↓ View Logsを踏むと

ss.png

UnknownError (#^ω^)ピキピキ

私の場合
Error Code : UnknownError
Message : Access Denied

コンソール上ではそれ以上内容がわからないパターンがほとんどなので、EC2でエラーコードを見てググって解決する

EC2instance
# tailコマンドでログを200行表示
$ tail -f -n 200  /var/log/aws/codedeploy-agent/codedeploy-agent.log

② CodePipelineとGithubを連携する

Codedeployでデプロイが出来るようになったら、CodePipelineとGithubを連携。
そしてPUSHして見ると、またもやエラー・・・

(※画像はAWSフォーラムより引用)
ss2.png

ログを見て見ると、S3にアクセスできないと書いてある。

/var/log/aws/codedeploy-agent/codedeploy-agent.log
2018-02-06 10:34:21 ERROR [codedeploy-agent(11992)]: 
InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: 
Cannot reach InstanceService: Aws::S3::Errors::AccessDenied - Access Denied

どうやらCodePipelineはS3にログを取るらしいので
EC2インスタンスのロールにS3のアクセス権限を追加したら動きました :beer:

ss.png

さいごに

AWSフォーラムもCodeDeployとCodePipelineの迷子だらけでしたw

はじめはわからないことが多いですが、一度出来てしまえば凄く楽です。
この記事が解決の参考になれば幸いです。

wMETAw
松岡修造と孤独のグルメが好きなエンジニアです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした