AWS Batch の実行時間が実行タイムアウトを超えている理由を教えてください

2023.03.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

AWS Batch で実行タイムアウトを10分に設定しています。
先日、ジョブの処理時間を確認したところ、約50分経過していました。タイムアウトはベストエフォートであることは承知していますが、数十分の差があります。
そもそも設定に誤りがないか、また他の理由があれば教えてください。

Job タイムアウト - AWS Batch

タイムアウトの終了はベストエフォートベースで処理されます。ジョブ試行がタイムアウトするタイミングでタイムアウトが終了するとは限りません (数秒長くかかることがあります)。

どう対応すればいいの?

ジョブの試行回数を確認してください。

※画像の場合は10回

AWS Batch は再試行戦略をサポートしており指定した条件で実行が失敗すると、自動的にRUNNABLE状態に戻り、STARTING状態を経由して再試行(RUNNING)されます。AWS Batch の実行タイムアウトはRUNNING状態からの経過時間となるため *1、再試行が行われると、タイマーもリセットされ、最終的な合計処理時間はタイムアウトを超過する場合があります。

Understanding the AWS Batch termination process | AWS HPC Blogより引用

そのため、再試行戦略および再試行の実施有無によっては、合計の処理時間が実行タイムアウトを超える可能性にご注意ください。また、必要に応じて再試行戦略の変更もご検討ください。

参考資料

タイマーはジョブが実行状態になったときに開始されることに注意してください。

脚注

  1. 正確にはstartedAtからの経過時間