Amazon Web Services ブログ

[AWS Black Belt Online Seminar] AWS Batch 資料及び QA 公開

先日 (2019/9/11) 開催しました AWS Black Belt Online Seminar「AWS Batch」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。

 

20190911 AWS Black Belt Online Seminar AWS Batch

 

AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます)

Q. AWS Batch と Amazon ECS、AWS Fargate の使い分けについて教えて下さい。
A. AWS Batch では内部的に Amazon ECSを使用しつつ、キューイングされた計算処理を順次実行していくようなバッチコンピューティング環境に特化しております。そのため、このようなバッチ処理であれば AWS Batch をご利用いただき、それ以外のインタラクティブな処理を含む汎用的なワークロードではECS及びECSの機能の一部であるFargateをご利用いただければと思います。

Q. AWS Batch で大量のジョブを実行する場合の設定ポイントについて教えて下さい。
A. AWS Batch で大量のインスタンスを使用する場合は以下の点にご留意ください:

  • 各種リソース制限を確認する: 各アカウントごとに、EC2 の起動台数制限やEBS作成数制限、ECSのクラスターごとコンテナ数制限が存在しています。
    大規模利用を検討される場合は、まずこちらの制約にご注意ください。制限を超えるリソースを利用希望の場合は、サービスクォータダッシュボード より申請いただくことが可能です。
  • 複数のインスタンスタイプを指定する: AWS Batch では複数のインスタンスタイプを組み合わせて使用することが可能です。C3やC4など最新世代でないインスタンスも組み合わせていただくことで、特にスポットインスタンスでのリソース確保がしやすくなります。
  • 複数のアベイラビリティゾーンを指定する: 幅広くAZを指定することでよりリソースが確保しやすくなります。
  • リージョンを選ぶ: リソースに余裕があるリージョンはスポット価格も安価になるため、このようなリージョンを選択していただくことで、よりリソースが確保しやすくなります。

上記のほか、ストレージなど他のサービスを利用している場合は、それぞれのサービスにパフォーマンス上の要件や最大同時接続数制限などにもご注意ください。

Q. ストレージの選択について、大量のジョブからアクセスする場合にEFSは適しているのでしょうか?
A. データへのアクセスパターンによって選択すべきストレージは異なってまいります。一般に大量のジョブからのアクセスが想定される場合は、Amazon S3をご利用いただくことで、安価にスケーラブルな環境を構築しやすくなります。Amazon EFSを使用される場合、バーストモードでは、ベースとなるスループットが利用している容量に依存する点やバーストクレジットの枯渇にご注意ください。こちらもご参照ください。その他、Amazon FSx for Lustreをご利用いただくことで、ファイルシステムとしてマウントしつつ、非常に高いスループットまで対応することが可能になりますのでこちらもご検討ください。

Q. ストレージにDBが例示されていないのは理由がありますか?S3やEFSのほうがお薦めでしょうか?
A. データの保管場所としてデータベースサービスを利用していただくことも可能です。特に入出力用のパラメータなど、データ容量の小さい場合はDynamoDBを使用することで、スケーラブルなパフォーマンスを得られやすくなります。また、Pre/Post処理の関係でやむを得ず MySQL 等の Relational Database を使用する場合は、パフォーマンスの他、データベースの同時接続数にもご注意ください。

Q. ジョブキューについて、実行先コンピューティング環境を3つまで指定可能とのことですが、どういった場合に複数指定するでしょうか?
A. コンピューティング環境ごとに優先順位を指定することができます。優先度の高いコンピューティング環境にはリザーブドインスタンスを購入済みのインスタンスタイプのみを指定しておき、その環境が最大vCPU数まで利用され、ジョブ待ちが発生する場合に、優先度の低いコンピューティング環境を利用するといった構成が可能です。

Q. 最小vCPU数、最大vCPU数、要求vCPU数の違いを教えてください。
A. 最小vCPU、最大vCPUはそれぞれクラスター環境が自動でスケールする場合の最小・最大vCPU数を指定することができます。
要求vCPU数については、クラスター起動時のvCPU数となります。こちらもご参照ください。

Q. ジョブパターンに記載のようなことをするには、Step Functionsと組み合わせるのでしょうか?
A. 集計や前処理など、基本的なパターンであれば、AWS Batchのジョブ自体の機能である配列ジョブジョブ依存関係を用いて構成する事が可能です。より複雑なジョブパターンを作成する必要がある場合はAWS Step Functionsをご利用ください。

Q. 最小vCPU数を0にしておくと、インスタンス起動までに若干時間がかかるとのことですが、どの程度でしょうか?
A. 実際にEC2インスタンスが起動し、コンテナ環境が準備可能となるまでの時間になりますので、インスタンスタイプ等にも依存しますが、通常は数分程度となります。

Q. コンピューティング環境1でスポットインスタンスを指定しておき、スポットインスタンスの入札ができない場合はタイムアウトしてコンピューティング環境2でオンデマンドを実行するということはできるのでしょうか?
A. この場合、AWS Batch 自体の機能では実行待ち状態(RUNNABLE)でのタイムアウトを指定することができませんので、AWS StepFunctionsを用いてジョブ状態を監視し、一定時間経過した場合に明示的にジョブキャンセル・再投入することで可能になります。

Q. ジョブの失敗をSNSに通知と記載されていますが、中断ではなく、入札ができずに待ちになっている状況を拾えるのでしょうか?
A. ジョブ状態の遷移が通知されることになりますので、投入待ちが継続している場合は通知されません。
同じ状態での一定時間経過によって処理を行いたい場合は AWS Step Functionsを用いてジョブの状態を監視する必要があります。

Q. コンテナイメージ作成の自動化ですが、ソースコードを変えただけではダメですか?Dockerfileを変えないとだめでしょうか?
A. ファイルの種類に限らず、任意のcommitをトリガにコンテナイメージのビルドを開始するように設定する事が可能です。

Q. AWS Step Functionsで、一定時間RUNNINGに変化しなければキャンセルできるとのことですが、一部の子ジョブのみRUNNINGに変化しないような場合も検出可能でしょうか?
A. AWS Step Functions を用いて、AWS Batch のジョブを管理する場合は、こちらの例にありますように、ジョブの状態を取得するLambdaを記述することになります。
この時、親ジョブの状態だけでなく、子ジョブの状態についても取得し、通知を行うことが可能です。
ただし、Step Functions のフロー自体は単一となりますので、子ジョブごとにステートを記述することはできません。

今後の AWS Webinar | イベントスケジュール

直近で以下を予定しています。各詳細およびお申し込み先は下記URLからご確認いただけます。皆様のご参加をお待ちしております。

【AWS Innovate Online Conference】※絶賛開催中!

 

 

 

 

 

AWS Innovate は、AWS クラウドを活用してビジネス革新を目指しているすべての IT リーダー及び IT プロフェッショナルを対象とした、最新のクラウド情報をお届けするためのオンラインカンファレンスです。この期間で、AWS初心者の方はAWSを始めるための準備を、AWS既存ユーザーの方は情報のアップデートにお役立ていただければと思います。

詳細は こちら

お申し込みはこちら

こちらのブログ記事も併せてご参照ください!

Amazon SageMaker でつくるMLアプリケーション

Amazon SageMaker は、データサイエンティストやエンジニアが効率よく機械学習を進めるために、 AWS が提供するマネージドサービスです。本セミナーでは、Amazon SageMaker が主にサポートする 開発・学習・推論のうち、推論の機能を活用してサーバーレスなMLアプリケーションを構築するハンズオンを行います。ハンズオンでは、Amazon SageMaker 以外に、Amazon API Gateway や AWS Lambda を利用します。これらのサービスの基本的な機能のみを利用しますが、どういったサービスであるか、事前に理解しておくことを推奨します。

2019 年 10 月 9 日 (水) | 14:00 – 15:30 申込先 ≫

Amazon SageMaker を利用した自然言語処理

本セミナーでは、Amazon SageMaker を利用して自然言語処理、特に、日本語のテキスト分類に関する機械学習モデルの構築・デプロイを行います。Amazon の日本語レビューデータを対象に、ポジティブかネガティブなレビューかを分類します。SagaMeker の基本的な利用方法については以下をご参照ください。

2019 年 10 月 31 日 (水) | 15:00 – 16:30 申込先 ≫

AWS Black Belt Online Seminar: 10月分申込先 ≫

Amazon GameLift | 2019 年 10 月 9 日 (水) | 18:00 – 19:00
Amazon Route 53 Resolver | 2019 年 10 月 16日 (水) | 18:00 – 19:00
Amazon EMR | 2019 年 10 月 23 日 (水) | 18:00 – 19:00
Elastic Load Balancing (ELB) | 2019 年 10 月 29 日 (火) | 12:00 – 13:00
AWS IoT Analytics Deep Dive | 2019 年 10 月 30 日 (水) | 18:00 – 19:00