LoginSignup
2
1

More than 3 years have passed since last update.

突然 AWS ECS / AWS Batch でジョブの実行に失敗するようになった件

Last updated at Posted at 2020-04-24

状況

  • 2020/4/24 約6:00(?)以降、突然 AWS ECS / AWS Batch でジョブの実行に失敗するようになった。(AWS BatchのステータスRUNNABLEで停止してしまっていた。)
  • コンピューティング環境はEC2インスタンスを利用(非Fargate)
  • 当日のAM3:00頃まではジョブが正常に稼働していたことを確認済み。
  • 実行するdocker image、ジョブ定義などには一切変更を加えておらず、全くもって原因不明でした。しばらくハマったので、対処方法を記録しておきます。どなたかの手助けになれば幸いです。

結論(原因)

  • AWS ECS / Batch 上でコンテナの死活管理などを司るAmazon ECS コンテナエージェントのコンテナが起動に失敗しており、EC2インスタンスを正常にコンピューティング環境のリソースとして認識できていなかったのが原因。
  • 突然この時間から起動に失敗するようになった原因は不明だが、おそらくバージョンが古すぎたことが要因。1.17.0を利用していた。
  • コンピューティング環境内のEC2インスタンスが0台となってしまっており、結果的にジョブが実行できず、ジョブがRUNNABLEで停滞していた。

対処方法

  • Amazon ECS コンテナエージェントバージョンをバージョンアップすることで、正常にコンテナエージェントが起動してジョブが実行されることを確認した。
  • バージョンアップのやり方にはいくつかの方法があるが、今回はコンピューティング環境で利用しているAMIを更新することで対応した。
  • AWS Batchの場合はコンピューティング環境作成時点の最新のAMIが常に使われ続ける仕様であるため、コンピューティング環境自体を再作成した。

更新前後のAMIの情報など

更新前に利用していたEC2インスタンスの情報

  • AMI ID
    • ami-e3166185
  • リリース
    • 2017.09.h
  • Amazon ECS コンテナエージェントバージョン
    • 1.17.0
  • ecs-initバージョン
    • 1.17.0-2

更新後のEC2インスタンスの情報

  • AMI ID
    • ami-031cb62cff0e27519
  • リリース
    • 2018.03.20200402
  • Amazon ECS コンテナエージェントバージョン
    • 1.39.0
  • ecs-initバージョン
    • 1.39.0-1

調査時のログ

  • ecs agentのコンテナが起動に失敗しており、リスタートしてもエラーになってしまった。
| [ec2-user@ip-XXX ~]$ docker container ls -a |
| CONTAINER ID        IMAGE                            COMMAND             CREATED             STATUS              PORTS               NAMES |
| dc4b71e9133b        amazon/amazon-ecs-agent:latest   "/agent"            4 hours ago         Created                                 ecs-agent |
| [ec2-user@ip-XXX ~]$ docker ps |
| CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES |
| # ecs agentの起動に失敗している |
| [ec2-user@ip-XXX ~]$ docker container start dc4 |
| Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/sbin/docker-init\": stat /sbin/docker-init: no such file or directory": unknown |
| Error: failed to start containers: dc4 |
  • 上記を確認後、原因の切り分けとして、起動中のAWS Batchインスタンスを「同様のものを起動」から複製起動した。
    • その際にAMIを最新版に更新
    • この手順を踏むことで、ジョブが正常に実行されることを確認
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1