JAWS-UG 横浜 re:Invent re:Capにて「AWS Batch Fargate対応は何をもたらすか」という話をしました #reinvent

AWS Batch で AWS Fargate の利用を検討されている方は是非!
2020.12.16

こんにちは(U・ω・U)
AWS事業部の深澤です。

表題の通りですがJAWS-UG 横浜 re:Invent re:Cap week2 にて「AWS Batch Fargate対応は何をもたらすか」という話をしてきました。

動画

資料

話した内容

ざっくりとAWS BatchにおいてEC2をコンピューティング環境にするケースだと以下のようなことが課題となっていました。

今回のアップデートの概要としてはコンピューティング環境がFargateになったことにより上記のような課題が解決したことになります。

これまでFargateを使ったBatch処理が全然できなかったかというと、実はそんなことないんです。これまでもCloudwatchイベントを用いたFargateの定期処理はこれまでもサポートされていました。

この機能は非常に便利ですしこれからも積極的に検討して良い機能だと思います。では表題の通り今回アップデートのAWS Batch Fargate対応は何をもたらすかですよね。これを考える上でBatch処理とは何かを整理する必要があります。なんとなくBatch処理という言葉を使いますが、これは大きく分けて以下の2つがあると思います。

  • 定期実行
  • 大規模、並列処理

この内、AWS Batchが得意とするのは大規模、並列処理です。先ほどのCloudwatchイベントからのFargate起動だとRun-task APIを用いてインスタンスを立ち上げるのですが、これはサービスクォータの制限上10までしか立ち上げることができません。

一方、今回のAWS Batchのコンピューティング環境にFargateを用いるとこの制限に掛からないのでより多くのコンテナを立ち上げることができます。またAWS Batchには次のような大規模Batch処理向きの多くの機能がマネージドで付いてきます。

これらの機能をEC2上で動作するコンテナではなく、サーバレスかつ高いアジリティを持つFargateで利用できるようになったというのが今回のアップデートがもたらしたところだと思います。

ただし全てのAWS BatchのユースケースをFargateに移すべきだとは思いません。例えば以下のようなケースに当てはまる場合にはEC2をコンピューティング環境にすることも検討した方が良いかと思います。

  • 独自に作成したカスタムAMIをマウントしたい
  • GPUを使いたい(Fargateでは非対応)
  • FargateでサポートされているCPUとメモリ値の組み合わせだとリソースが余る

最後に

個人的にはAWS Batchを利用した際に一番困ったのがEC2の管理と起動スピードだったので今回のアップデートはとても嬉しかったです。これを機に是非AWS Batchの導入を検討してみてはいかがでしょうか。もし実際に動かしてみたいよという方は以下のブログが参考になると思います。

以上、深澤(@shun_quartet)でした!