経緯
CodeDeployでデプロイ失敗した際にAWSのコンソールに出てるエラーをググってみたがよく分からなかったのでEC2インスタンス内のログを調べてみた
その際デバッグするのに役立ったファイル紹介
環境
Amazon Linux 2
codedeploy-agent 1.2.1
CodeDeployスクリプトのログファイル
/opt/codedeploy-agent/deployment-root/デプロイグループID/デプロイID/logs/scripts.log
appspec.ymlのhooksセクションで実行されるスクリプトのログファイル
このファイルでエラーが見つかればhooksセクションで実行されるシェルスクリプトの見直しが必要
リビジョンのファイル群保管ディレクトリ
/opt/codedeploy-agent/deployment-root/デプロイグループID/デプロイID/deployment-archive
ここでのリビジョンとはGitHubやS3などに存在するこれからデプロイされるファイル群を指す
appspec.ymlのfilesセクションの記述に基づき指定のディレクトリにファイルを配置する
CodeDeploy エージェントの動作ログファイル
/var/log/aws/codedeploy-agent/codedeploy-agent.log
エラーログ
InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Missing credentials - please check if this instance was started with an IAM instance profile
などが出ていたらEC2インスタンス適切なにIAMロールがアタッチされているか確認
最後に
いちいちsshで入ってログファイルを確認するのも大変!
という方は自動でログを転送することもできるらしいですね。
参考サイト↓
https://dev.classmethod.jp/articles/codedeploy-cloudwatchagent-cloudwatchlogs/