LoginSignup
10
10

More than 5 years have passed since last update.

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

Posted at

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

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

10
10
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
10
10