【AWS】CodePipeline での CodeDeploy でのデプロイでエラーになった場合のトラブル対応手順

AWS CodePipeline での AWS CodeDeploy でのデプロイでエラーになった場合のトラブル対応手順について解説します。

 

CI/CD のサンプルとしては他にも以下の記事があります。

 

CodeDeploy の解説です。

AWS CodeDeploy

 

 

【AWS】CodeDeployとAuto Scaling+ALBを組み合わせる環境の構築手順

 

 

【AWS】DevOps(CI/CD)の導入手順(Spring Tools、Git、CodePipeline、CodeCommit、CodeBuild、CodeDeploy)

 

 

【AWS】DevOps(CI/CD)の導入手順(CodePipeline、CodeCommit、CodeBuild、CodeDeploy)

 

 

【AWS】DevOps(CI/CD)の導入手順(Angular、Git、CodePipeline、CodeCommit、CodeBuild、CodeDeploy、Auto Scaling、ALB の組み合わせ)

 

 

CodeDeploy でデプロイした際によく見るエラー

CodeDeploy でデプロイした際に以下の画像のエラーをよく見ます。

このようなエラーを出力して失敗した場合はどこを調査すればいいのか?

 

【AWS】CodePipeline での CodeDeploy でのデプロイでエラーになった場合のトラブル対応手順

 

=====================

The overall deployment failed because too many individual instances failed deployment,
too few healthy instances are available for deployment,
or some instances in your deployment group are experiencing problems.

=====================

Googleで翻訳すると特に参考にならないメッセージであることが分かります。

=====================

展開に失敗した個々のインスタンスが多すぎる、展開に使用できる正常なインスタンスが少なすぎる、または展開グループ内の一部のインスタンスで問題が発生しているため、全体的な展開が失敗しました。

=====================

 

しかし、このメッセージを読んだだけでは全く原因が分かりません。

そこで上記のエラーが出力された場合にどこを調査すればいいのかを以下に解説します。

 

 

codedeploy-agent プロセスが起動しているか確認する

まずは codedeploy-agent プロセスが起動しているか確認します。

Auto Scaling グループにて起動している EC2インスタンスにログインして ps コマンドで codedeploy-agent プロセスの起動確認をします。

 

■ps コマンドで codedeploy-agent の起動確認

[root@ip-10-0-12-63 codedeploy-agent]# ps -ef | grep codedeploy-agent | grep -v grep 
root      2538     1  0 05:56 ?        00:00:00 codedeploy-agent: master 2538 ← 起動しています。 
root      3676  2538  0 06:14 ?        00:00:00 codedeploy-agent: booting child ← 起動しています。 
[root@ip-10-0-12-63 codedeploy-agent]#

 

 

■service コマンドで codedeploy-agent の起動確認

[root@ip-10-0-10-234 ~]# service codedeploy-agent status
The AWS CodeDeploy agent is running as PID 7737
[root@ip-10-0-10-234 ~]#

 

 

 

起動していない場合は以下のように起動します。

■service コマンドで codedeploy-agent を起動する

[root@ip-10-0-12-63 codedeploy-agent]# service codedeploy-agent start
Starting codedeploy-agent:

[root@ip-10-0-12-63 codedeploy-agent]#

 

 

 

以下のコマンドで codedeploy-agent を再起動できます。

■service コマンドで codedeploy-agent を再起動する

[root@ip-10-0-12-63 codedeploy-agent]# service codedeploy-agent restart
Restarting codedeploy-agent:

[root@ip-10-0-12-63 codedeploy-agent]#

 

 

 

 

 

/var/log/aws/codedeploy-agent/codedeploy-agent.log ログを確認する

次に /var/log/aws/codedeploy-agent/codedeploy-agent.log ログを確認します。

 

■service コマンドで codedeploy-agent を再起動する

[root@ip-10-0-12-63 codedeploy-agent]# tail -n 1000 /var/log/aws/codedeploy-agent/codedeploy-agent.log

 

 

 

 

EC2 インスタンスがインターネットにアクセスできるか確認する

EC2 インスタンスがインターネットにアクセスできるか確認します。

EC2 インスタンスがインターネットにサクセス出来ないと /var/log/aws/codedeploy-agent/codedeploy-agent.log ログに以下のようなエラーが出力されます。

 

2021-10-09 06:21:24 ERROR [codedeploy-agent(3874)]: Error validating the SSL configuration: Invalid server certificate
2021-10-09 06:21:24 ERROR [codedeploy-agent(3874)]: booting child: error during start or run: SystemExit – Stopping CodeDeploy agent due to SSL validation error. – /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/command_poller.rb:65:in `abort’

 

 

もし EC2 インスタンスがプライベートサブネットに配置されている場合は NATゲートウェイでインターネットにアクセスできるようにネットワークの設定をします。

 

 

 

 

 

 

EC2 インスタンスに割り当てたインスタンスプロファイル(IAMロール)が適切か確認する

EC2 インスタンスに割り当てたインスタンスプロファイル(IAMロール)が適切か確認します。

 

 

対象の EC2インスタンスを選択し「アクション」‐「セキュリティ」‐「IAM ロールを変更」を

【AWS】CodePipeline での CodeDeploy でのデプロイでエラーになった場合のトラブル対応手順

 

 

 

 

適切な IAM ロール(インスタンスプロファイル)が適用されていることを確認します。

【AWS】CodePipeline での CodeDeploy でのデプロイでエラーになった場合のトラブル対応手順

 

 

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください