AWS Batch の Fargate タイプで最大16vCPU, 120GiB メモリ指定できるようになりました

2022.10.25

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

AWS Batch の Fargate タイプで最大16vCUP, 120GiB メモリ指定できるようになりました。AWS Batch で処理したい多少重めなジョブのときでも Fargate タイプを検討できるようになりました。

2022年9月のアップデートで Fargate が 16vCUP、120GiB メモリに対応しました。このタイミングでは AWS Batch の Fargate タイプには適用されておらず、約一ヶ月遅れで AWS Batch の Fargate タイプにも反映されました。

16vCUP, 120GiB 指定するには新しいジョブ定義を作成するか、既存のジョブ定義を更新するだけでよいとのことです。今回は既存のジョブ定義を更新してよりパワフルな Fargate タイプを利用できるようにしてみます。

To run Fargate type batch job with these increased vCPU and memory configurations, simply create a new job definition with new requirements and submit the job with this new job definition, or submit job with the new requirements overrides with an exiting job definiton.

引用: AWS Batch increases compute and memory resource configurations for Fargate type jobs by 4X

やってみた

既存の Fargate タイプのジョブ定義を16vCPU対応に変更してみます。リビジョンの作成から更新をかけます。

AWS Batch のジョブ定義で指定する Fargate のプラットフォームのバージョンは16vCUP に対応している 1.4.0 指定する必要があるはずです。AWS Batch ドキュメントからは確認できなかったのですが、純粋な Fargate の制限事項が適用されると思います。今回のジョブ定義はもともと1.4.0指定でした。

16vCUP, 120GiB 指定できるようになっています。

簡単に設定できました。

注意事項

同時に使用できる vCUP 数はサービスクォータにより制限されています。従来 EC2 タイプを利用していたジョブ定義を Fargate タイプへ移行、新規で Fargate タイプを利用していく場合、vCPU 数の制限に達しないかご確認ください。必要に応じて上限を緩和してご利用ください。

ベストプラクティス

EC2 タイプと Fargateタイプ結局どっちがいいの?という疑問は以下のリンクのベストプラクティスを参照ください。

以下の点は今回のアップデートされた数値(16vCUP, 120GiB)に読み替えていただければよろしいかと思います。

GPU を使わない、4 vCPU 以下で 30GiB 以下のメモリ利用量のジョブ

おわりに

従来の Fargate タイプですと4vCUP, 30GiBメモリでパワー不足に感じて EC2 タイプを選択ていたケースも多いのではないでしょうか。今回のアップデートで多少重めの処理でも Fargate タイプを検討できるようになり、選択の幅を広げる良いアップデートでしたね。

Fargate タイプはジョブの起動が早いのは嬉しいけどいまいちパワー不足で EC2 タイプか、ParallelCluster を利用していました。16vCPU なので物理8コアと考えるともう少し最大vCPU が増えて、GPU にも対応してもらえるとより活用の幅が増えて嬉しいなと思います。