ちょっと話題の記事

[アップデート]AWS BatchがCloudWatch Eventsに対応しました!時間起動も可能に

2018.03.02

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

コンニチハ、千葉です。お久しぶりです。

本日は、AWS Batchのアップデート情報をお伝えします。AWS Batchはキューベースのジョブ実行サービスで高スケーラビリティなバッチをさくっと作ることができます。 キューにputすると、バッチが起動しなんらかの処理を行うことができます。例えば、API Gatewayをフロントにし、キューベースのバッチAPIなんかを作れます。 また、AWS Batchを利用することでLambdaの5分制限を気にしなくてよく、ディスクもEBSやインスタンスストアを利用できます。そのため容量も大きく使えます。

今回のアップデートでは、トリガーにCloudWatch Eventsが追加されました。つまり、APIコールのタイミングや、スケジュール起動が可能になりました。 ユースケースとしては、時間起動のバッチ、EC2が起動や停止をトリガーに何かするみたいな処理ができるようになりました。

私としてはスケジュールベースで実行できるようになったのが結構大きいかなと思いました。

やってみた

AWS Batchをスケジュール実行してみます。

まずは、Get Startedからでデフォルトでバッチ環境を用意しました。

環境ができました。

CloudWatch Eventsに設定する情報を収集しておきます。 CloudWatch Eventsに設定する項目は以下です。

  • ジョブキューのARN
  • タスク定義名またはARN
  • ジョブ名
  • (オプション)Array
  • (オプション)ジョブのリトライ回数

CloudWatch Eventsに実際に設定してみます。5分間隔で実行してみました。

5分間隔でタスクが実行されてました!結果はソートされませんが。

最後に

AWS BatchのタスクトリガーとしてCloudWatch Eventsに対応したことにより、実行タイミングに柔軟になりました。 定期的なジョブ実行やLambda、EC2の起動停止など様々なイベントをトリガーにすることができます。 ガンガン使っていきましょう!

参考

https://forums.aws.amazon.com/ann.jspa?annID=5509