Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
Next

Share

202109 AWS Black Belt Online Seminar AWS Batch x Spot: AWS Fargate 対応記念 EC2 との使い分けは?

AWS Black Belt Online Seminarの最新コンテンツ: https://aws.amazon.com/jp/aws-jp-introduction/#new
過去に開催されたオンラインセミナーのコンテンツ一覧: https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

202109 AWS Black Belt Online Seminar AWS Batch x Spot: AWS Fargate 対応記念 EC2 との使い分けは?

  1. 1. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Specialist SA, HPC Daisuke Miyamoto 2021/08/26 AWS Batch × Spot: AWS Fargate 対応記念! EC2 との使い分けは? クラウド最適化コンテナ編
  2. 2. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 自己紹介 ❏ 名前 宮本 大輔 (みやもと だいすけ) ❏ 所属 アマゾン ウェブ サービス ジャパン 株式会社 技術統括本部 Specialist Solutions Architect, HPC ❏ 好きな AWS サービス ❖ AWS ParallelCluster ❖ Amazon FSx for Lustre ❖ AWS Snow Family
  3. 3. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 今日お伝えしたいこと • 大規模バッチ処理とはどのようなワークロードか • AWS Batch はどのようなサービスか • AWS Batch の AWS Fargate 対応と、EC2 との使い分け • EC2/Fargate それぞれの スポットの活用方法 AWS Batch における EC2/Fargate の使い分けとスポット活用
  4. 4. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 大規模バッチ処理とは?
  5. 5. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 似て非なる『バッチ処理』 JobA JobB JobF JobC JobD JobE 毎日23:00起動 土曜00:00起動 5:00までに完了 俗に言う『バッチ処理』は 2 種類ある A) 定型業務における『バッチ処理』 夜間バッチのように、予めジョブの起動や順序を定義しておいて ジョブの実行・管理をするシステム(ジョブネット等) ミドルウェア例:Hinemos、SOS JobScheduler etc. B) 大規模計算における『バッチ処理』 スーパーコンピュータ等で行う大規模科学計算、メディア処理、 CGレンダリング、機械学習における学習プロセス等アドホックな計算 ミドルウェア例:SGE、Torque、OpenLAVA etc. 本日お話するのはこちら JobB JobA JobA JobB キューイング セントラルマネージャ submit submit dispatch dispatch コンピューティングノード群 A) B)
  6. 6. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 大規模バッチ処理の例:塗り絵 たくさんのマス目を別の色に塗り替えたいが 1 人だと1度に1マスしか塗れないので非常に時間がかかる
  7. 7. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 大規模バッチ処理の例:塗り絵 10人で塗れば、仕事の遅いヒトが居たとしても 全体としては早くすべてのマスを塗れる! 大量の計算リソースを使用することで短時間で処理を終わらせたい!
  8. 8. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 大規模バッチ処理の例:塗り絵 誰がどのマスを塗るのかを割り振る役割が必要 暇にならないように、塗り終わったら別のマスを割り振る スケジューラが計算リソースにジョブを割り振る (3, 6) のマ スを塗っ て
  9. 9. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 大規模バッチ処理の例:塗り絵 クラウドのスケーラビリティを活用すると 必要な時に多くのヒトを連れて来ることが可能! いっぱい 連れてきた 処理の量に応じて計算リソースをスケールアウト!
  10. 10. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. DJ’s team has reduced the time to on-board the model pipeline and generate a full report from one week for one scenario to under 12 hours for multiple scenarios. Now, the new model created by JHSPH is being rolled out on AWS to all 50 states and internationally to help with making decisions that directly impact the global spread of COVID-19. Whenscalingyourworkloadisamatterofsavinglives https://www.allthingsdistributed.com/2020/04/scaling-covid19-model.html https://github.com/HopkinsIDD/COVIDScenarioPipeline ジョンズ・ホプキンス大学での COVID-19 拡散シナリオシミュレーション
  11. 11. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Mobileye 社での AWS Batch 活用例 大規模な自動運転のシミュレーション環境を AWS Batch を用いて構成 最大同時 500,000 CPU コアを利用して、1 時間あたり 70 年分のコンピューティング を実行、S3 上のデータを1ヶ月あたり 100 PB 処理 スポットインスタンスを活用することでコスト効率よく大量の処理を実現 https://d1.awsstatic.com/events/reinvent/2019/Navigating_the_winding_road_toward_driverless_mobility_AUT307.pdf 40 万 vCPU
  12. 12. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 大規模バッチ処理環境を どのように実現するか?
  13. 13. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Batch とは • AWS Batch がインスタンスの起動や停止を 行うため、スケジューラや計算ノードなど の 管理が不要 • ジョブは Docker コンテナイメージ を元に 作成し、自動でスケールするコンピュー ティング環境で実行する • コンピューティング環境ではインスタンス タイプや vCPU 数、スポットインスタンス 利用有無などを任意に指定可能 大規模バッチ処理のため環境をフルマネージドで提供 コンテナイメージを用意するだけでスケーラブルな大規模バッチ処理環境が得られる
  14. 14. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Batch のアーキテクチャ ユーザ Elastic Container Registry Elastic Container Service Cluster EC2 インスタンス ジョブ ジョブ定義 ジョブキュー コンテナイメージ Docker Hub コンテナレジストリ コンピューティング環境 S3 Elastic File System コンテナ Scale-Out Scale-In
  15. 15. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Batch の Fargate/Fargate Spot 対応 AWS Batch のコンピューティング環境として、コンテナ向けサーバレ ス環境である Fargate / Fargate Spot を選択可能に • 0.25 vCPUなどの小さい単位でのリソース指定が可能 • CPU 負荷は高くないが、Lambda では対応が難しいような長時間の処 理に向く • Fargate Platform version 1.3.0 / 1.4.0 に対応(2021年8月時点) https://docs.aws.amazon.com/batch/latest/userguide/fargate.html
  16. 16. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Batch Fargate のアーキテクチャ ユーザ Elastic Container Registry Elastic Container Service Cluster ジョブ ジョブ定義 ジョブキュー コンテナイメージ Docker Hub コンテナレジストリ コンピューティング環境 S3 Elastic File System Scale-Out Scale-In … Fargate or Fargate Spot ※ EC2/Fargate は混在ができず、それぞれ用にジョブ定義・ジョブ・ ジョブキュー・コンピューティング環境を用意する必要がある
  17. 17. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. EC2 / Fargate の使い分けは?
  18. 18. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ジョブの起動が早いのは EC2 or Fargate? 「起動速度」にも2種類ある • 単一のジョブの起動レイテンシとして考えた場合:EC2インスタンスの起動よりも Fargateコンテナの方が高速に処理を開始できる • 複数ジョブのスループットとして考えた場合:EC2は1台のインスタンス上で複数の コンテナを実行可能だが、Fargateでは各コンテナごとに起動時間が必要となり時間 当たりのFargate起動数が課題になりやすい(更にEC2の場合は一度起動したインスタ ンスはジョブが残っていれば再使用される) Fargate EC2 起動 待ち ジョブ1 起動 待ち ジョブ2 起動 待ち ジョブ3 処理時間 起動待ち ジョブ1 処理時間 ジョブ2 ジョブ3
  19. 19. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. EC2/Fargate コスト比較 Fargate を活用することで、0.25 vCPU など小さなリソース割り当てが可能とな るため、CPUに負荷がかからない処理の場合、コスト最適化が可能に 一方、ジョブが CPU を占有する場合は、Fargate よりも EC2 の方が安価になる 可能性が高い • Fargate: 1 vCPU あたり 0.04048 USD/h※ + メモリ1GB あたり 0.004445 USD/h ※ = 2 vCPU/4GB Memory: 0.09874 USD/h ※ • EC2: c5.large (2 vCPU/4GB Memory): 0.085 USD/h※ ※ 北バージニアリージョン でのオンデマンド価格 https://docs.aws.amazon.com/batch/latest/userguide/fargate.html
  20. 20. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Batch における EC2 / Fargate の使い分け例 前提として、AWS Batch では EC2 を使用する場合でも直接インスタンスを管理する 必要はない EC2 が適しているケース • 1 ジョブが複数の vCPU を占有する場合 • GPU / FPGA といったアクセラレータを使用する場合 • linuxParameters を使用する場合(共有メモリ、スワップメモリ設定など) • 一度に大量のジョブ(100~)を投入する場合 Fargate が適しているケース • 1 ジョブあたりの CPU・メモリ消費が大きくない場合 • 特に 1 vCPU 未満で済む場合 • 散発的にジョブが投入され、ジョブ投入から実行までの間隔を短くしたい場合 https://docs.aws.amazon.com/batch/latest/userguide/fargate.html
  21. 21. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イー・コミュニケーションズ 様でのAWS Batch Fargate 活用例 AI を用いたオンライン試験不正監視サービス 画像分析のために外部 API を使用するが、同時 API 呼び出し数の最大値に合わせ ることで、トータル処理時間を最小化したい → AWS Batch Fargate の最大コンテナ起動数設定により同時 API 呼び出し数を制御 (大量の画像解析を行うが、処理自体は外部APIを使用するため、各ジョブに割り当てる vCPU は 小さくてよく、Fargate が適している) Fargate API 呼び出し API 呼び出し API 呼び出し 最大起動コンテナ数を設定 画像認識API AWS Batch 大量の動画
  22. 22. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. EC2 Spot / Fargate Spot を 活用するには?
  23. 23. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ころんでも泣かないアーキテクチャ
  24. 24. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ころんでも泣かないアーキテクチャとは? キャパシティの確保と中断に強い構成 • 個別のジョブの処理速度はそこまで気にしない → 多様なインスタンスタイプの選択 → キャパシティの確保が容易に • べき等なジョブ設計 → 同じジョブが複数回実行されても問題ない → 中断が発生したらリトライするだけでよい
  25. 25. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 「ころんでも泣かない」を阻む要因と対策 以下のような特性があると「ころんだ時」に痛くなってしまう • 1 つのジョブ処理時間が長い • 短時間で終わるように処理を分割する • 再実行された際に途中から処理を再開できるよう、定期的に結果 を S3/EFS に出力する、チェックポイント方式とする • 一定時間内に処理を終わらせる必要がある • スケールアウトにより短時間で処理を行い、リトライのための余 裕を持つ
  26. 26. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ころんでも泣かないアーキテクチャと AWS Batch ↓ スポットインスタンス活用
  27. 27. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. キャパシティの確保(EC2) • 幅広いインスタンスタイプを選択する • デフォルトのOptimal は、C4/M4/R4 のすべてのインスタンスサイズ を含む • より多くのキャパシティを必要とする場合は、C5などの最新タイプ に加え C5d / C5n / C5a なども検討 (必要メモリ量に応じてC/M/Rを選択) • Allocation Strategy に、Spot Capacity Optimized を選択 • 多くの Availability Zone を指定する • 東京リージョンにこだわらず、スポット価格の安いリージョンを使用する
  28. 28. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. スポット中断対策(EC2) • AWS Batch ではジョブに 再試行回数 を設定することが可能 これにより、インスタンスが中断しジョブが失敗した場合には自動で再実 行される • Launch Template の UserDataで、ECS のドレイン機能を有効化する https://aws.amazon.com/jp/about-aws/whats-new/2019/09/amazon-ecs-supports-automated-draining-for-spot-instances-running-ecs- services/ スポット活用時の一般的なベストプラクティスである 「中断通知への対応」は必須ではない むしろ、冪等なジョブになっていないなど、再試行設定だけでは対応できない 理由があれば、アーキテクチャを見直した方が良い場合も https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-spot.html https://docs.aws.amazon.com/ja_jp/batch/latest/userguide/job_retries.html
  29. 29. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fargate Spot の場合 基本となる考え方は EC2 での Spot 活用と同様 • 多くの Availability Zone を指定、Spot 価格の安価なリージョンを活用 • べき等にジョブを設計し、再試行回数を設定 Fargate Spot では考慮不要なポイント • キャパシティ確保のためのインスタンスタイプの選択、Allocation Strategy • ドレイン設定 より簡単に Spot の活用が可能 (当然、Fargate が適しているかや、必要なキャパシティが確保できるかについては別途考慮が必要)
  30. 30. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. スポットとオンデマンドの連携 ジョブのフローを工夫することで、オンデマンドインスタンスとスポットインス タンスを組み合わせて利用することも可能 Spot 用 ジョブキュー Spot コンピューティング環境 On-Demand 用 ジョブキュー On-Demand コンピューティング環境 ユーザ 通常のジョブを 投入 優先度の高い ジョブを投入 Spot 用キュー、On-Demand用キューを使い分ける Simple Notification Service Spot 用 ジョブキュー Spot 用 コンピューティング環境 On-Demand 用 ジョブキュー On-Demand 用 コンピューティング環境 ユーザ ジョブを投入 Lambda ジョブの失敗を通知 ジョブを投入 Spot インスタンスでの実行に失敗した際に On-Demand用キューに再投入
  31. 31. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 【APN Ambassadors ブログシリーズ第二弾】 AWS Batch にてスポットインスタンスを適用してコストを最適化する プロジェクトごとにリソースの取得や更新を行う https://aws.amazon.com/jp/blogs/psa/apn-ambassadors-blog-002/ アイレット株式会社 廣山 豊様よりご寄稿 インスタンスが中断した場合 冪等性があるため、AWS Batch の再試 行設定をするのみ (Slack への通知は行う) インスタンスを起動できない場合 一定期間ごとにLambdaを起動し、 RUNNABLEステータスで滞留している ジョブを検知・オンデマンド用ジョブ キューに再投入、滞留しているジョブ は削除
  32. 32. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. まとめ • 大規模バッチ処理は、動画処理やパラメータ探索など多くの分野に 存在し、大量のジョブ全体の処理時間を短縮することが課題 • AWS Batch により、コンテナイメージを用意するだけで、必要な数 のコンテナを立ち上げて処理を行うことが可能 • AWS Batch の Fargate 対応により、これまでよりも幅広いワークロー ドに対応可能 • CPU消費の小さいジョブをコスト効率よく実行 • ジョブ開始までの時間を短くしたい場合 • 「ころんでも泣かないアーキテクチャ」にすることで、EC2/Fargate 問わずスポットインスタンス活用が容易に AWS Batch では EC2 / Fargate を使い分けることで 幅広いワークロードに対応 AWS Batch の詳細については Black Belt もご参照ください https://www.slideshare.net/AmazonWebServicesJapan/20190911-aws-black-belt-online-seminar-aws-batch

AWS Black Belt Online Seminarの最新コンテンツ: https://aws.amazon.com/jp/aws-jp-introduction/#new 過去に開催されたオンラインセミナーのコンテンツ一覧: https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/

Views

Total views

467

On Slideshare

0

From embeds

0

Number of embeds

68

Actions

Downloads

0

Shares

0

Comments

0

Likes

0

×