Q: AWS Batch とは何ですか?

AWS Batch とは、バッチ管理機能のセットです。開発者、科学者、およびエンジニアが、数十万件のバッチコンピューティングジョブを AWS で簡単かつ効率的に実行できます。AWS Batch では、コンピューティングリソース (CPU やメモリ最適化インスタンスなど) の最適な数量とタイプを、送信されたバッチジョブの量と具体的なリソース要件に基づいて動的にプロビジョニングします。AWS Batch を使用すると、バッチコンピューティングソフトウェアやサーバークラスターをインストールして管理する必要がなく、結果の分析や問題の解決に集中できます。AWS Batch では、Amazon EC2 および Spot Instances を使用して、バッチコンピューティングワークロードを計画、スケジュール、実行します。

Q: バッチコンピューティングとは何ですか?
バッチコンピューティングとは、連続したプログラム (「ジョブ」) を、手動での介入なしに 1 台または複数台のコンピュータで実行することです。入力パラメータはスクリプト、コマンドライン引数、制御ファイル、またはジョブ制御言語によりあらかじめ定義しておきます。指定されるバッチジョブは、先行ジョブの完了または特定の入力のアベイラビリティに基づいて決定されるため、複数ジョブのシーケンシングやスケジューリングが重要です。また、インタラクティブな処理には対応できません。

Q: バッチコンピューティングを使用するメリットは何ですか?

  • ジョブを処理する時間を、より多くのキャパシティまたはより安価なキャパシティが使用可能な時間に移動させることができます。
  • これにより、頻繁な手動による介入や監督で、コンピューティングリソースを使用しない時間が発生することを防ぎます。
  • コンピューティングリソースの使用率を高めることで、効率も高まります。
  • ジョブの優先度付けが可能になり、ビジネスの目的に応じてリソースを割り当てられます。

Q: AWS Batch を使用するメリットは何ですか?
AWS Batch では、ジョブの実行とコンピューティングリソース管理を処理します。これにより、インフラストラクチャのセットアップや管理を行う代わりに、アプリケーションの開発や結果の分析に集中することができます。AWS でバッチのワークロードを実行することや、AWS に移行することを考えている場合は、AWS Batch の使用をご検討ください。

Q: AWS Batch はどのようなユースケースに最適ですか?
AWS Batch は、複数のジョブを並行して実行することによりスケールするバッチコンピューティングおよびアプリケーション向けに最適化されています。バッチコンピューティングに適している用途には、深層学習、ゲノム解析、金融リスクモデル、モンテカルロシミュレーション、アニメーションレンダリング、メディアのトランスコーディング、イメージ処理、エンジニアリングシミュレーションなどがあります。


Q: AWS Batch の主な機能は何ですか?
AWS Batch では、コンピューティング環境とジョブのキューを管理します。これにより、任意のスケールの何千ものジョブを、Amazon EC2 および EC2 Spot を使用して簡単に実行できます。これは、バッチジョブを定義してキューに送信するだけで行えます。これに対して、AWS Batch は、ジョブの実行場所を選択し、必要に応じてさらに AWS キャパシティを起動します。ジョブの進捗状況は、AWS Batch で慎重にモニタリングされます。不要になったキャパシティは、AWS Batch で削除されます。AWS Batch では、パイプラインやワークフローの一部であるジョブを送信する機能も提供されます。これにより、ジョブ間に存在する相互依存性をジョブの送信時に示すことができます。

Q: AWS Batch ではどのタイプのバッチジョブをサポートしていますか?
AWS Batch では、Docker コンテナとして実行できるあらゆるジョブをサポートしています。ジョブで、メモリ要件と vCPU の数を指定します。 

Q: コンピューティングリソースとは何ですか?
AWS Batch でのコンピューティングリソースとは、EC2 インスタンスです。

Q: コンピューティング環境は何ですか?
AWS Batch でのコンピューティング環境とは、ジョブが実行されるコンピューティングリソースの集合です。AWS Batch では、AWS でプロビジョニングおよび管理される Managed Compute Environments と、お客様で管理される Unmanaged Compute Environments の 2 つのタイプのコンピューティング環境をサポートしています。Unmanaged Compute Environments では、Dedicated Hosts、大規模なストレージ構成、および Amazon EFS などの専用リソースを活用するしくみを提供しています。

Q: ジョブ定義とは何ですか?
ジョブ定義に、実行するジョブ、パラメータ、環境変数、コンピューティング要件、およびその他のジョブの実行を最適化するために使用する情報を記述します。ジョブ定義は、ジョブの送信前に定義し、他のジョブと共有することができます。

Q: Amazon ECS Agent とは何ですか? また、AWS Batch ではどのように使用されますか?
AWS Batch では、コンテナジョブを実行するために Amazon ECS を使用します。そのため、ECS Agent を利用する AWS Batch コンピューティング環境内のコンピューティングリソースにインストールする必要があります。ECS Agent は、Managed Compute Environments にはプレインストールされています。

Q: AWS Batch で簡単に EC2 Spot を使用するためにはどのようにすればよいですか?
AWS Batch コンピューティング環境は、EC2 スポットインスタンスで構成することが可能です。Managed Compute Environment の作成時に、EC2 スポットを使用することと、支払うオンデマンド料金の割合を指定すると、後の処理は AWS Batch で行われます。Unmanaged Compute Environments にも、起動するスポットインスタンスを含めることができます。EC2 スポットフリートで起動されたスポットインスタンスも含まれます。


Q: AWS Batch の料金体系について教えてください。
AWS Batch に対する追加料金はありません。バッチジョブの保存および実行に使用する AWS リソース (EC2 インスタンスなど) の料金のみがかかります。


Q: 使用を開始する方法を教えてください。
ドキュメント内の入門ガイドに従って使用を開始します。

Q: 開始するためにプロビジョニングは必要ですか?
使用を開始するために、手動でコンピューティングリソースを起動する必要はありません。最初のジョブを送信する際、AWS Batch ウェブコンソールで、最初のコンピューティング環境およびジョブのキューの作成プロセスを手順をおって行うことができます。コンピューティング環境内のリソースは、追加のジョブの実行準備ができるとスケールアップし、実行可能なジョブが少なくなるとスケールダウンします。