AWS CodeDeployとCodePipelineでハマった時の対処法
TL;DR
エラーの原因はAWS(ポリシーやロールの権限)、Github、CircleCI、etc... の設定ミスです。
やりたい事次第でエラーもそれぞれなので、ログ見てググりましょう!
# 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フォーラムより引用)
↓ View Logsを踏むと
UnknownError (#^ω^)ピキピキ
Error Code : UnknownError
Message : Access Denied
コンソール上ではそれ以上内容がわからないパターンがほとんどなので、EC2でエラーコードを見てググって解決する
# tailコマンドでログを200行表示
$ tail -f -n 200 /var/log/aws/codedeploy-agent/codedeploy-agent.log
② CodePipelineとGithubを連携する
Codedeployでデプロイが出来るようになったら、CodePipelineとGithubを連携。
そしてPUSHして見ると、またもやエラー・・・
ログを見て見ると、S3にアクセスできないと書いてある。
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のアクセス権限を追加したら動きました
さいごに
AWSフォーラムもCodeDeployとCodePipelineの迷子だらけでしたw
はじめはわからないことが多いですが、一度出来てしまえば凄く楽です。
この記事が解決の参考になれば幸いです。
Author And Source
この問題について(AWS CodeDeployとCodePipelineでハマった時の対処法), 我々は、より多くの情報をここで見つけました https://qiita.com/wMETAw/items/d91f4706be775e1c320c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .