« 【AWS Database Blog】Amazon RDS for PostgreSQL 9.6.1 でパラレルクエリとフレーズ検索 | メイン | AWS Black Belt Online Seminar「AWSで実現するDisaster Recovery」の資料およびQA公開 »

AWS Black Belt Online Seminar「AWS Batch」の資料およびQA公開

こんにちは、AWSJ の鬼形です。

2017/2/8 に開催いたしました AWS Black Belt Online Seminar「AWS Batch」の資料を公開しました。当日ご参加頂いた皆様からのご質問の回答とあわせて紹介させて頂きます。 

 
【Q&A】
Q1: Lambda AWS Batch の棲み分けはどう考えればよいでしょうか
A1: Lambdaはイベントをトリガーとした短時間の処理を行うような場合に有効で、AWS Batchでは数多くの大規模なコンピューティングを必要とする処理を短時間に完了させたいといったシチュエーションに向いているサービスであると考えています。
 
Q2: Batchが起動したインスタンスは処理完了後に自動で停止するのでしょうか?
Q2: キューイングされたジョブがない場合に、EC2インスタンスが自動で削除されたりといった動きはできないでしょうか。
A2: Compute environmentの定義でMinimum vCPU0に設定しておくことで、ジョブがない状態においてインスタンスを自動停止することが可能です。
 
Q3: Container Propertyで指定するvCPUやメモリと、Configure your compute resourcesで指定するインスタンスタイプやvCPUの違いはなんでしょうか?
A3: 前者(Container Propertyの項目で指定するvCPUとメモリ)は、各Jobが使用するリソース量で、後者(Configure your compute resourcesで指定するvCPU)は、起動するコンピューティングリソースの全体量を指しています。
 
Q4: 再実行、リトライは指定できなかったように、プレリリースでは触った感じであったのですが、どこで設定するのでしょうか?また、実行時の詳細なログは確認できないのでしょうか?
Q4: ジョブの実行が失敗した場合、リトライしてくれるのでしょうか。
A4: 生憎リトライの設定はございません。方法としてジョブのステータスを監視して、FAILUREとなっているものがあったら、再実行するように作り込むことは可能かと思います。ジョブの標準出力はCloudWatch Logsに出力されており、そちらで確認が行えます。
 
Q5: システム管理者が使用するジョブ管理にAWS Batchが向かない理由はなんでしょうか?
A5: 処理する内容によっては必ずしもAWS Batchの選択が向かないという訳ではありませんが、システム管理者がよく利用する、夜間バッチなどの定期タスク管理については、時刻指定で起動できるLambdaやワークフローを作成するのに適したStepFunctionsなどのサービスをご利用頂いた方が適していると思います。
 
Q6: 優先度の高いキューと低いキューがある場合、優先度の高いキューが空になるまで低いキューからはデキューされないという認識であっていますでしょうか?
A6: ご認識の通りです。
 
Q7: キューはいつか Expire するのでしょうか?最大待ち時間のような、タイムアウトは設定できますでしょうか?
A7: キューはExpireせず、生憎タイムアウトの設定もございません。
 
Q8: Unmanaged 環境の場合 ECS のスケールはユーザの責任になるかと思うのですが、現在 AWS として推奨するその実装方法は何かありますでしょうか?キューの監視と ASG のアップデートは SDK などを通じて行う想定でしょうか
Q8: 現状マニュアルなどに推奨される実装方法の記載はございませんが、手動でのコンテナインスタンス起動に関しては、下記のマニュアルを参照ください。
 
Q9: 現在キューに submit されたジョブが待機状態になっている時、その理由がはっきりとはわからない(どのリソースが足りないのかが明確ではない)ように思います。どのように足りないリソースを追加すべきかを判断する良い方法はありますでしょうか?
A9: 例えばDashboard画面でPendingステータスのあるJob queuesを確認します。そのJob queues名をクリックすることで、実行対象としているCompute environmentが表示されますので、そのCompute environmentに対してリソースの追加を行うといった方法が考えられます。
  
Q10: Jobの実行開始時間は指定できないのでしょうか?
A10: こちらは生憎指定が行えません。
 
Q11: batchの実行プログラムの環境ですが、EBのようにプラットフォームを選択することは可能でしょうか?もしくは実行する言語によってインストール手順を用意する必要がありますでしょうか?よろしくお願い致します。
A11: 生憎EBのようにプラットフォームを選択する機能はございません。実行するプログラムはコンテナ上で実行することになりますので、予め実行する言語環境をコンテナ化しておくか、Docker HUBなど既存のレジストリからCompute environmentにデプロイしてご利用ください。
 
Q12: GPUインスタンスは使えますか?
A12: Compute environmentとしてP2G2などGPUインスタンスを選択する事自体は可能です。ただしGPUを使ったアクセラレーションについてはNVIDIAドライバやアプリケーション側の実装を別途考慮する必要があります。
 
Q13: AWS Batchで実行された結果をRDS等のDBに投入するようなことも可能なのか。可能な場合、同時実行が増えるとRDS上の負荷も再現なく上がりそうですがそういった使い方も推奨されているのか
A13: AWS Batchはスクリプトで実装できる処理であれば、如何様な処理でも可能です。推奨、非推奨の処理も規定はしておりませんが、連携先のサービスがある場合は、そちら側の負荷も考慮して実装して頂く必要があります。
 
Q14: 立ち上がったEC2Public IPが入っているが必ず割り振られてしまうのか?
A14: Public IPの付与についてはインスタンスを起動するsubnetの設定に依存します。Public IP付与が有効になっているsubnetにおいてはPublic IPが割り振られますが、Public IP付与が無効になっているsubnetであれば、Public IPは付与されません。
 
Q15: Job definitions Environmentで設定するCommandOSコマンドが例でありましたが、どういった種類が利用できるのでしょうか?
A15: コンテナ化したLinux系のプログラムであれば、基本的にどのようなコマンドでも利用可能です。Docker HUBなど公開レジストリも利用が可能ですので、自分が使いたいプログラムが既に公開されているか検索して見るとよいかもしれません。
 
Q16: LambdaのようにNo VPCみないな実行環境は用意されていたりしますでしょうか?
A16: AWS BatchCompute environmentECSとなり、VPCでの起動が前提となります。
 
Q17: Desired vCPU の値を指定した場合にどのような動きをするのか説明を追加で頂きたいです。
Q17: Desired vCPUの指定はCompute environment作成時に初期起動するvCPUの数を意味しています。
  
Q18: 何故、バージニアリージョンで、日本時間を表示できるのですか?
A18: 時刻表記が操作端末側のタイムゾーンに合わせて表示される為、日本時間での表示となっております。
 
Q19: Javaプログラム+RDSの処理をやる場合は、プログラムがデプロイされたコンテナイメージを用意するイメージだと思うのですが、RDS側のSGはどうすればよいのでしょうか。アクセス制御はかけられるのでしょうか。
A19: Compute environmentにはSGの指定が可能ですので、そこに指定したSGからの通信を許可するような設定を行うとよいかと思います。
 
Q20: ジョブの起動時間はどのくらいかかりますか?
A20: 実行先のコンピューティングリソースが空いていれば、ジョブは僅かな時間で起動されます。
 
Q21: VCPUを使うときに実使用量に基づいて使用されるのか、指定値分使われるのか
A21: 指定値分が使用されます。
  
Q22: バッチコマンドから実行ファイル(exe)Callする場合の実行ファイルはどこに配置するんですか?先ほどの管理画面からはコマンドしか設定してなかったので。。
A22: 実行ファイルは、予めコンテナ化しておくか、EFSS3などの共有ストレージに配置したものを呼び出してご利用頂く形になります。
 
Q23: ジョブの実行ログをcloudwatchlogsに出力することは可能ですか?
A23: 可能です。ジョブの標準出力は自動でCloudWatch Logsに出力されることになりますので、ジョブの中で実行ログを標準出力にアウトプットするような実装をして頂くとよいかと思います。
  
Q24: ジョブキューとコンピュート環境はどのような単位で作成し、使い分けるのでしょうか?
A24: 一般的なHPCでは、処理する内容(アプリケーション etc.)や規模(メモリやCPU etc.)に応じて使い分けます。
 
Q25: 2回目のジョブは早くなるとのことですが、1回目のジョブからどのくらいの時間でコンテナは終了するんでしょうか?
A25: およそ1時間未満で終了します
 
今後のAWS Black Belt Online Seminarのスケジュールは こちら です。多くの方のご参加をお待ちしております。

コメント

Twitter, Facebook

このブログの最新情報はTwitterFacebookでもお知らせしています。お気軽にフォローください。

2017年5 月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31