AWS Re:InventカンファレンスでAmazonは、AWS Batchというプレビューのサービスを発表した。AWS Batchを使うと企業はスケジューリングとワークロードの実行をクラウド上で最適化できる。Amazonはこのサービスを、自分たちでEC2やコンテナ、CloudWatchを使ってバッチのプラットフォームを作っている多くの顧客の声に応えるかたちで実現した。
バッチスケジューラとジョブは新しいパラダイムではない。従来は固定されたクラスタ構成のインフラでオンプレミスで管理されてきた。過剰な構成になりインフラの能力を使い切れないか、構築が足らずに機会を逸するかのどちらかを避けられない。AWSのチーフエバンジェリストであるJeff Barr氏はこの従来の方法をクラウドを使って刷新することを目論んだ。
クラウドコンピューティングは、バッチの処理モデルをよりよくできる可能性を持っています。いろいろなタイプのEC2インスタンスに素早くアクセスでき、必要に応じてスケールアップ、スケールダウン、スケールアップでき、処理に応じた価格モデルで可能な限り経済的にできます。
画像のソース: (スクリーンショット) https://www.youtube.com/watch?v=ZDScBNahsL4
AWS Batchはサーバに対するインストールは不要であり、動的に計算リソースを提供する。Amazon Spotを使って、余分なEC2の処理能力を節約することもできる。ジョブの優先順位と依存の管理もサービスに組み込まれた機能だ。Amazonは顧客にビジネスの要件を特定しこのサービスに提供することに注力してほしいと考えている。AWS Batchはそれ以外ことを任せられるのだ。
画像のソース (スクリーンショット) https://www.youtube.com/watch?v=ZDScBNahsL4
Introducing AWS Batch: Easy and efficient batch computing on AWS sessionというAWS re:Inventの講演で、AWSのプリンシパルプロダクトマネージャであるJamie Kinney氏は次のようなコンセプトを明らかにした。
- ジョブは処理の単位をあらわす。ジョブキューに詰め込まれ、計算リソースがアタッチできるようになるまで保持され、優先順位が付けられる。
- ジョブ定義はどのようにジョブを動かすかを定義する。それぞれのジョブはひとつのジョブ定義を参照する。多くのパラメータをオーバライドできる。vCPUやメモリ、マウントポイントやコンテナのプロパティだ。
- ジョブはジョブキューで実行可能になるまで保持される。ジョブは依存するジョブが実行されるかシステムのリソースが確保されるまでキューの中で待つ。
- 計算環境には管理された環境とそうでない環境を含む。管理された計算環境はビジネスの要件(インスタンスタイプ、最小/最大/望ましいvCPUsなど)を記述することでAWSが自動でリソースの準備をしてくれる。管理されない環境では自分でコンテナのようなリソースを準備する。
- スケジューラはジョブキューに詰め込まれたジョブをいつ、どこで、どうやってジョブを実行するかを定義する。ジョブの依存がすべて解決されていれば、キューに入れられた順番で実行される。
AmazonはAWS Batchを使うべきケースとそうでないケースについてガイダンスを提供している。ETLやビッグデータの処理など大量のデータを使う場合は、AmazonはEMR、Data Pipeline、Redshiftなどのデータ関連のサービスを推奨している。小さなcronの小さなジョブをたくさん動かしている顧客の場合、AWSでこれらのジョブを実行することはできるが、Kinney氏が 言うには、顧客は“ワークフローやジョブスケジューリングシステムでジョブの実行とオーケストレーションをする必要があります”。
Kinney氏はAWS Batchが理想的なツールだと感じている。
異質な計算リソースで大小のジョブを動かしている顧客には最適です。
AWS Batchは現時点ではUS East (Northern Virginia)リージョンでプレビュー中。一般提供開始の段階で、他のリージョンでも利用できるようになるだろう。アレイジョブとAWS Lambdaでもジョブの実行もAWS Batchのロードマップに含まれている。
Rate this Article
- Editor Review
- Chief Editor Action