何があった?
terraformを使って画面からではなく、jsonファイルを準備してコマンドからでecsを立ち上げようとしたら下記画像のようになって、タスクが立ち上がりませんでした。また、コンソール上にもエラーはでませんでした。
さらにaws画面上のエラー文がTask failed to start
のみという調査ハードモードでした。(通常は2枚目の画像の詳細の下にエラー文が出現するのですが今回は出ませんでした。ちなみに原因はエラーではない挙動のためであり、その理由は結論を読んでもらうとわかります。)
調査過程
下記の記事を見つけて指示内容を調べてみましたが、筆者の場合はすべて正しく準備されていて解決できませんでした。
[aws公式]
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ecs-fargate-pull-container-error/
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_cannot_pull_image.html
[個人記事]
https://github.com/aws-actions/amazon-ecs-deploy-task-definition/issues/62
https://qiita.com/x-color/items/8f986d01d6a6100b7d5b
そして、調査に詰まったため参考にした書籍を最初から読み直したところ、原因を特定することができました。
結論(原因と解決方法)
原因はecs-service-def.jsonのdesired_count
(タスクの個数指定)部分が0になっていたからでした。(元々タスクが立ち上がらない指定をしてしまっていたため、エラー判定されない状態となっていました。)
よってこの部分を1にすることで、タスクが立ち上がることを確認できました。
詳細はterraformの公式リファレンス(desired_countに関する記述)を見ていただけるとわかります。
余談
調査過程で見つけた上記の記事は、本当にありそうな内容だったので、筆者のエラーでなかった場合はぜひ参考していただけると良いと思いました。
また、それでも解決できず本当に困ったら、筆者のように読み飛ばしている部分があるかもしれないため、最初に参考にした記事を最初から読み直すのをおすすめします。