AWS Batchの並列度と処理時間の関係性について

0

AWS BatchでS3ファイルをダウンロードし、集計結果をDynamoDBにバッチ書き込み(25件)するという実装をしています。①ジョブ数600×並列度1024、②ジョブ数900×並列度1024というパターンでそれぞれ実施しました。1ジョブあたりの処理件数は変わらないので、ジョブ全体の処理件数は、右に行くほど処理件数が3倍に増えています。①と②では1ジョブ当たりの処理時間、ジョブ全体の処理時間は変わらない、と想定していましたが、②の方が1ジョブあたりの処理時間、ジョブ全体の処理時間が短くなっていました。

このように処理時間に差分がでた原因について分かりません。なぜでしょうか。

質問済み 2ヶ月前331ビュー
1回答
0

まずはじめに、 AWS Batch はフルマネージド型のバッチ Schedulerのため、「コストパフォーマンス、ジョブの優先度、スループットを最適化」し、ジョブを実行します。[1]

そのため、ジョブ実行時にご利用いただけるリソースの状況により、処理に要する時間が異なる場合があります。

上記に加えまして、オーケストレーションタイプ にて「 EC2 」をご選択いただいている場合、大規模なワークロードでは、連続して実行されるジョブのための「インスタンス」や「コンテナイメージ」が、 AWS Batch により再利用されます。 そのため、各リソースが再利用されている状況によって、② での各ジョブに要している時間が短くなっている可能性が考えられます。

具体的な原因については設定内容や具体的な処理時間、エラーの発生状況、 AWS 基盤側の状況をもと原因を特定できる場合もございますので、リソース ID を添えて、 AWS サポートにご連絡をいただくことについてもご検討をいただけますと幸いです。

なお、もしオーケストレーションタイプにて Fargate をご利用いただいております場合には、 EC2 をお試しいただくことについてもご検討ください。 EC2 をご利用いただくことにより処理時間を短縮できる場合がございます。 より高いスループットや並列度が必要なワークロードの場合、 EC2 をお勧めしています。 [2]

AWS Batch についてのベストプラクティスにつきましてはブログ [2] と、よくある質問 [3] もございますので、よろしければこちらも併せてご参照ください。


[1] AWS Batch のベストプラクティス

AWS Batch はSchedulerであり、コストパフォーマンス、ジョブの優先度、スループットを最適化します。AWS Batch は、リクエストの処理に時間がかかる場合があります。数秒以内に応答が必要な場合は、Amazon ECS または Amazon EKS を使用するサービスベースのアプローチの方がより適しています。

大規模なワークロードでは、連続して実行されるジョブのためのインスタンスやコンテナイメージが、Batch により再利用される

[2] AWS Batch ベストプラクティスまとめ

Amazon EC2 が向く場合:

  • より高いスループットや並列度が必要なワークロード

[3]AWS Batch のよくある質問

AWS
Kato_M
回答済み 2ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ