ECS(Fargate)でサービスをデプロイできない

1

ECSにサービスをデプロイするところでエラーになってしまいます。 エラーはCloudFormationで確認したところ、Resource handler returned message: "Error occurred during operation 'ECS Deployment Circuit Breaker was triggered'."と出ております。 ネットで確認したところ、実行する環境のCPUアーキテクチャと、イメージのビルド時に設定されたCPUアーキテクチャが違うことで起きる問題ということがわかりました。 私はM1 Macを使用しているため、Dockerfileに--platform=linux/x86_64を追記して、再度ECRにプッシュして、タスクも修正したのですが、エラーが消えませんでした。 また、コンテナ側をARM環境で実行も試みましたが、こちらでも同様にエラーになりました。原因はわかりますでしょうか?CloudFormationのエラーのスクリーンショットです

ishi
質問済み 8ヶ月前4051ビュー
2回答
1
承認された回答

失礼します。 タスクのロールはどのようになっているでしょうか? 私の方でもタスク作成部分のUIが少し変更されてからエラーが出るようになり、確認したところCloudWatchの権限がなく、同じエラーになりました。 DefaultのecsTaskExcutionRoleを利用するとCloudWatchのlogに入るための権限がないとのことでした。 ですので, ecsTaskExcutionRoleにCloudWatchのFullAccessを追加し、確認したところ問題なく動いたので事象が同じならと思い、共有させていただきます。

ngtmnt
回答済み 8ヶ月前
  • ご返信ありがとうございます。コメントをいただいた通りタスクロールのところでCloudWatchの権限を追加したところ、動きました。本当にありがとうございました。ずっと悩んでいたところだったので、動いて安心しました。

  • よかったです。 原因としては旧UIだとタスク作成時にロググループを作成するのに対し、新UIだとサービス作成時にロググループを作っているのが原因みたいですのでデフォルトのポリシーにロググループを作成するポリシーを追加すると動きそうです。 logs:CreateLogGroupだったかな? 最小権限で動かすならそこを調べてみるのをお勧めします。 一応、AWS側のミスだと思うのでいずれ修正されるのではと思います。

  • 詳細をありがとうございます。ポリシーのところまだ理解が不十分なので学習を進めようと思います。 この部分は早く修正されるといいなと思います。本当にありがとうございました!

1

CPUアーキテクチャの違いでもそのエラーは出ます。
他にもサーキット ブレーカーはデプロイに失敗(例えばアプリケーションが正常に動かせていない場合)などでも発生します。
なので、まずはコンテナが正常に動かせるかを確認してみてください。
以下のドキュメントが役に立つかもしれません。
https://repost.aws/knowledge-center/ecs-task-container-health-check-failures

profile picture
エキスパート
回答済み 8ヶ月前
  • いただいたURLを参考にコンテナをローカルでテストして、コンテナのHEALTHCHECKではhealthyと表示できました。正常には動いていると思われます。

  • ご返信ありがとうございます。 コンテナの作成環境をローカルのMacではなくEC2 (Linux) などで行ってもエラーは発生しますか?

  • ご返信ありがとうございます。AWSを使用するのに慣れておらず一点質問です。EC2(Linux)でもエラーが発生するのかというのは、ECSのEC2インスタンスでもエラーが発生するのかという認識で間違いないでしょうか?

  • 言葉足らずで申し訳ございません。 行なって欲しいのはEC2(Linux)でコンテナイメージを作成してECRにプッシュして欲しいと言う事でした。 EC2のインスタンスタイプでt3.microとかを使用してコンテナイメージを作成しても同じエラーが出るのか確認していただきたいです。

  • わかりやすくご返信いただきありがとうございます。大変助かります。 EC2ではどう動かすか調べてからエラーが出るか確かめてみたいと思います。

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン