スポットインスタンス/インスタンスフリートを活用した Amazon EMR のコスト最適化 – 秋のスポットインスタンス祭りコンテンツ
https://pages.awscloud.com/JAPAN-event-OE-Spot-instance-Matsuri-20201111-reg-event-LP.html
© 2020, Amazon Web Services, Inc. or its Affiliates.Amazon Web Services Japan, K.K.Solution Architect川村 誠スポットインスタンス/インスタンスフリートを活⽤した Amazon EMR のコスト最適化#ScaleMoreWithSpot
View Slide
© 2020, Amazon Web Services, Inc. or its Affiliates.⾃⼰紹介川村 誠Hadoop/Spark スペシャリストソリューションアーキテクト• データ分析系サービスを担当• 好きなサービス• Amazon EMR• Amazon Athena• AWS Glue• Amazon SageMaker
© 2020, Amazon Web Services, Inc. or its Affiliates.⼤規模計算処理ワークロードの技術選定Amazon EC2+ Auto ScalingAWS Batch Amazon EMR特徴と主な⽤途 • フルスクラッチでの構築• オンプレミスで稼働するアプリケーションのマイグレーション• 全て⾃前で管理• 汎⽤的な分散コンピューティング• マネージドサービス• データの分散処理に特化• 「マネージドフレームワーク」処理の仕組み • 任意の要件 • 分散処理のタスクに、どのような処理を割り当てるのか⾃分で定義する• データ分析フレームワークにデータ(のディレクトリ)を渡す。分散処理のタスクへの処理割り当ては、フレームワークが⾃動的に⾏うおすすめの利⽤シーン• 任意の要件 • データの量、スキーマが決まっている• パラメータの組を渡して少しずつ計算を変化させたい• データの量、スキーマが変動する可能性がある• ⼤量のログデータの変換・加⼯・分析をフレームワークに任せたいランタイム環境 • 任意の要件 • コンテナ化が容易• 既存のライブラリ、⾔語フレームワークを使いたい• EMRのサポートするランタイム(Apache Hadoop, Apache Spark,Apache Hive, Prestoなど)を使いたい費⽤の考慮点 • EC2インスタンスの料⾦ • 下回りのEC2インスタンスの料⾦• ジョブを制御する仕組みに費⽤が掛からない• 下回りのEC2インスタンスの料⾦ +EMR料⾦• ジョブを制御するマスターノードにも費⽤が掛かる
© 2020, Amazon Web Services, Inc. or its Affiliates.l ビックデータ活⽤の課題l EMR でスポットインスタンスを利⽤するメリットl EMR でスポットインスタンスを使いこなすための機能インスタンスフリートl demo / ベンチマークAgenda
© 2020, Amazon Web Services, Inc. or its Affiliates.ビックデータ活⽤の課題
© 2020, Amazon Web Services, Inc. or its Affiliates.データの幅が広がるにつれ、コストも増加する* IDC, Data Age 2025: The Evolution of Data to Life-Critical: Donʼt Focus on Big Data, Focus on the Data Thatʼs Big, April 2017.データ5年毎想像を超えるデータ量15年運⽤期間データプラットフォーム1,000倍スケール10倍以上成⻑率より多様なデータ
© 2020, Amazon Web Services, Inc. or its Affiliates.より幅広いワークロードより多くのユーザーがデータにアクセスするそれぞれ異なる⽅法で分析する機械学習 SQL分析科学技術計算リアルタイムデータ分析データサイエンティスト分析ビジネスユーザーアプリケーション
© 2020, Amazon Web Services, Inc. or its Affiliates.ビッグデータ活⽤に必要なもの課題ビジネスアプリケーションに対して増え続ける10倍以上のデータワークロードの広がりに伴う対処⽅法の多様化ニーズスケーラビリティ性能低コスト
© 2020, Amazon Web Services, Inc. or its Affiliates.Amazon EMR でスポットインスタンスを利⽤するメリット
© 2020, Amazon Web Services, Inc. or its Affiliates.Amazon EMR: 任意のサイズに拡張可能• コンピューティング(EMR)とストレージ(S3)を個別にスケーリング可能• PB から EBまで、あらゆる量のデータを保存/処理可能• 1、100、はたまた数千ノードのクラスターをプロビジョニング可能• オートスケーリング可能Data Lakeon AWSAmazon EMRAmazon S3
© 2020, Amazon Web Services, Inc. or its Affiliates.Amazon EMR: ⾼可⽤性と耐久性• 99.999999999 % の耐久性とコスト効率の良いAmazon S3 をストレージとして利⽤可能• EMR は、クラスターを監視し、パフォーマンスの低いノードと障害が発⽣したノードを置き換え、サービスを再起動する
© 2020, Amazon Web Services, Inc. or its Affiliates.Amazon EMR を利⽤するメリット⾃動化 疎結合 弾⼒性統合 低コスト継続的な更新
© 2020, Amazon Web Services, Inc. or its Affiliates.Amazon EMR: 弾⼒性を実現するアーキテクチャマスターノード: クラスターを制御するノードで、タスクのステータスを管理し、クラスターの状態を監視するコアノード: タスクを実⾏し、クラスター上でHadoop 分散ファイルシステム(HDFS) にデータを保存するノードタスクノード: タスクのみを実⾏し、HDFS にデータを保存しないオプションノードMaster instance fleetHDFS HDFSAmazon EMR clusterTask instance fleetCore instance fleet
© 2020, Amazon Web Services, Inc. or its Affiliates.Amazon EMR:コンピュートとストレージの分離で低コストを実現Amazon S3Amazon S3Amazon EMRAmazon S3Amazon EMR
© 2020, Amazon Web Services, Inc. or its Affiliates.スポットインスタンスで得られる EMR のメリット計算処理を加速スポットインスタンスを利⽤するとオンデマンドインスタンスを利⽤する料⾦で、よりたくさんのインスタンスを実⾏可能さらなるコスト削減オンデマンド価格の最⼤ 90 % 割引でインスタンスを利⽤可能スケールに合わせて構築短期間に⼤規模なデータを処理するジョブを迅速に⽴ち上げる
© 2020, Amazon Web Services, Inc. or its Affiliates.# ParallelizednodesTimeスポットインスタンス利⽤でワークロードの並列度を上げ、ジョブの実⾏時間を短縮できるジョブ実⾏時間: 1 時間# ParallelizednodesTimeジョブ実⾏時間: 50 時間オンデマンドインスタンスx5 ノードスポットインスタンスを利⽤すると同じコストで最⼤10倍のインスタンスを利⽤できるオンデマンドインスタンスの最⼤10倍の並列度
© 2020, Amazon Web Services, Inc. or its Affiliates.オンデマンドインスタンスとスポットインスタンスで柔軟なサービスレベルを定義できるコアノードにオンデマンドインスタンスを利⽤EC2 の標準位利⽤料でコストを計算可能予測可能なコストでサービスレベルにあったクラスターを構築可能サービスレベルを超える予測不可能なワークロードに対するリソースコストをスポットインスタンスで極⼩化可能タスクノードにスポットインスタンスを利⽤オンデマンド価格の最⼤ 90 % 割引価格EMR クラスター
© 2020, Amazon Web Services, Inc. or its Affiliates.スポットインスタンスが中断するとどうなりますか︖
© 2020, Amazon Web Services, Inc. or its Affiliates.スポットインスタンスが中断した場合のアプリケーションの動作ü スポットインスタンスが中断/停⽌した場合、コアノード/タスクノードのリソースを EMR が補充ü 実⾏されているアプリケーションが失敗した場合、Hadoop/Spark の仕組み (YARN) がアプリケーションを⾃動的に再実⾏ü アプリケーションのタスクが失敗した場合、アプリケーション(AM) がタスクを再実⾏
© 2020, Amazon Web Services, Inc. or its Affiliates.事例紹介
© 2020, Amazon Web Services, Inc. or its Affiliates.EMR on スポットインスタンスで AWS のスケーラビリティを活⽤わずかの費⽤で AWS のスケーラビリティを利⽤できる• ⾃動的にスケールアウト/スケールイン可能• 1 台から数千台のノードをプロビジョニング可能• 様々なインスタンスタイプにまたがるオンデマンドインスタンスとスポットインスタンスを選択可能“これらのスポットインスタンスは24時間365⽇稼働していないため、マシンが必要なときにのみ使⽤することで、⼤幅な費⽤を節約しています。”Brain Filppu, Director of Business Intelligence,Zillow Groupオンデマンドインスタンスとスポットインスタンスで EMR を実⾏することで、Zillow はインスタンスタイプ間で計算を⾃動的にスケールインおよびスケールアウトできます
© 2020, Amazon Web Services, Inc. or its Affiliates.EMR on スポットインスタンスでビッグデータコストをさらに削減“ AWS を利⽤すると、⽇々のコンピューティングタスクにかかる全体的なコストを含め、柔軟にキャパシティの変更とインフラストラクチャ全体の成⻑を管理できます ”Roopak Gupta Vice President,Software Engineering, Salesforce DMPスポットインスタンスで計算にかかるコストを 75-90% 節約Salesforce はインタラクティブジョブのパフォーマンスの増加を観察し、オンデマンド価格と⽐較して80% を節約しました。安価で予測可能な価格 低い中断率(<5%) ⼊札不要
© 2020, Amazon Web Services, Inc. or its Affiliates.Salesforce Audience Studioオーディエンスをセグメント化データの収集と保存 ユーザ個別にデータを統合Online behavior, offline purchases, etc. “Cereal moms”Rich consumer profiles
© 2020, Amazon Web Services, Inc. or its Affiliates.Salesforce Audience StudioReal-time user activities~ 200+k qps ~ 17B data points/dayS3 Storage~ 70+PBUsers ApplicationApplication metrics~ 2.0M/secOffline log ingestion~ 10s of TB/dayUser activation~ 10s of billions of user segmentsEMR Clusters~ 2500 clusters/dayEMR Instances> 200k instance hours per day85%+ on EC2 Spot
© 2020, Amazon Web Services, Inc. or its Affiliates.Real-world example of 7.2hr JobLead Count(EC2 On-Demand)3 nodes (1 master& 2 core)Task Count(EC2 Spot)38 nodesAmazonEMR CostTotalPer Instance Cost $13.44 $4.80 – -Job Total $40.32 $182.53 $129.11 $351.96Job Total ifOn-Demand$40.32 $510.72 $129.11 $680.15
© 2020, Amazon Web Services, Inc. or its Affiliates.EMR でスポットインスタンスを使いこなすための機能: インスタンスフリート
© 2020, Amazon Web Services, Inc. or its Affiliates.インスタンスフリートとは• 指定した複数のインスタンスタイプリストから、スポット / オンデマンドでインスタンスをプロビジョニング可能とする機能• 容量/価格に基づいて最適なアベイラビリティゾーンを EMR が選択• スポットブロックをサポート(最⼤6時間)Master nodes Task instancesCore instances
© 2020, Amazon Web Services, Inc. or its Affiliates.EMR のインスタンスフリートに最適なスポットインスタンスü ノードは、オンデマンドインスタンスとスポットインスタンスが混在するように設定可能ü 最も低い価格で最⼤容量のインスタンスに最適化されますü タスクノード内のスポットインスタンスが再利⽤されると、フリート内の別のインスタンスによって置き換えられます
© 2020, Amazon Web Services, Inc. or its Affiliates.スポットインスタンスの中断発⽣率を抑える機能 (Allocation Strategy) が利⽤可能に新機能ü Allocation Strategy を利⽤すると、タスクインスタンスフリートに指定可能なインスタンスタイプ数が5種類から15種類に拡張され、インスタンスの確保がより容易にü 起動するインスタンスの数に対して最適な容量を持つ (確保が容易/中断が発⽣しにくい) スポットインスタンスを起動https://aws.amazon.com/jp/blogs/big-data/optimizing-amazon-emr-for-resilience-and-cost-with-capacity-optimized-spot-instances/
© 2020, Amazon Web Services, Inc. or its Affiliates.Spot Instance Advisor の活⽤https://aws.amazon.com/ec2/spot/instance-advisor/
© 2020, Amazon Web Services, Inc. or its Affiliates.さまざまなシナリオでオンデマンドインスタンスとスポットインスタンスを組み合わせて活⽤するScenario Master node Core nodes Task nodes⻑時間稼働クラスターとデータウェアハウスOn-demand On-demand orinstance-fleet mixSpot or instance-fleet mixコスト重視ワークロード Spot Spot SpotデータクリティカルなワークロードOn-demand On-demand Spot or instance-fleet mixアプリケーションテスト Spot Spot SpotRef: ガイドラインとベストプラクティスhttps://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-instances-guidelines.html
© 2020, Amazon Web Services, Inc. or its Affiliates.クラスターを⾃動的にサイズ変更してコストを削減することが可能に新機能ü Managed Scaling を利⽤すると、ワークロードに基づいてクラスターリソースのサイズを⾃動的に EMR が決定し、パフォーマンスの最⼤化とコストの最⼩化を実現することが可能ü 10 秒未満でワークロードの要求を満たすようにクラスタを⾃動的に拡張し、コストを最⼤ 60% 節約可能ü インスタンスフリートにも対応しており、オンデマンドインスタンスとスポットインスタンスをクラスター内でシームレスに増減するhttps://aws.amazon.com/jp/blogs/big-data/introducing-amazon-emr-managed-scaling-automatically-resize-clusters-to-lower-cost/
© 2020, Amazon Web Services, Inc. or its Affiliates.クラスターを⾃動的にサイズ変更してコストを削減することが可能に新機能ü 下記パラメータを設定するだけで利⽤可能• 最⼩ – クラスターの最⼩ユニット数• 最⼤ – クラスターの最⼤ユニット数• オンデマンド制限 – オンデマンドユニット数の上限• 最⼤コアノード数 – コアノードユニット数の上限ü 制限事項• Spark、Hadoop、Hive、Flinkなどの YARN アプリケーションでのみ機能• EMR-6.0.0 を除く、EMR-5.30.0 以降の EMR で利⽤可能https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-scaling.html
© 2020, Amazon Web Services, Inc. or its Affiliates.クラスターを⾃動的にサイズ変更してコストを削減することが可能に新機能ü Managed Scaling が有効になっていると、1 分単位の粒度でクラスターのメトリクスを確認可能https://docs.aws.amazon.com/emr/latest/ManagementGuide/managed-scaling-metrics.html
© 2020, Amazon Web Services, Inc. or its Affiliates.demo
© 2020, Amazon Web Services, Inc. or its Affiliates.demo:スポットインスタンスを利⽤したクラスターの起動VPCAWS CloudPublic subnetAmazonS3Amazon EMRInternetgatewayClusterAWS ManagementConsoleUser Client The Internet
© 2020, Amazon Web Services, Inc. or its Affiliates.ベンチマーク
© 2020, Amazon Web Services, Inc. or its Affiliates.ベンチマーク• Hadoop のベンチマークツール TeraSort(※) を利⽤し、スポットインスタンス利⽤効果を確認する※ TeraSort は⼤量データのソート処理を実⾏するツール( Hadoop のライブラリに同梱されている )• オンデマンドインスタンスとスポットインスタンスをそれぞれ利⽤し、1時間あたり同じ料⾦がかかるクラスターを準備、処理にかかる時間とコストを⽐較する• 今回、50 GB, 100 GB のデータを対象に TeraSort を実⾏する
© 2020, Amazon Web Services, Inc. or its Affiliates.ベンチマークl 東京リージョンを使⽤l インスタンスタイプに r5d.xlarge を使⽤– オンデマンド料⾦ 0.348 USD/時間– スポット料⾦ 0.073 USD/時間 (割引率: 79%)l 各クラスターのノード構成は下記の通り:オンデマンドインスタンスクラスター– EMRバージョン: emr-5.31.0– Master x1– Core x10スポットインスタンスクラスター– EMRバージョン: emr-5.31.0– Master x1– Core x47 = 0.348x10/0.073 = 47.7
© 2020, Amazon Web Services, Inc. or its Affiliates.ベンチマーク: 結果性能: 3.7-4.1 倍 コスト: 56-60%減並列度増により実⾏時間が短縮されたことで、コスト低減を実現
© 2020, Amazon Web Services, Inc. or its Affiliates.まとめ
© 2020, Amazon Web Services, Inc. or its Affiliates.まとめl EMR でスポットインスタンスを利⽤するメリットと、スポットインスタンスを効率的に利⽤するインスタンスフリートについて紹介l 新しい機能(Allocation Strategy/Managed Scaling) を利⽤することでより効果的にスポットインスタンスを利⽤いただけることを紹介l スポットインスタンスを利⽤する効果をベンチマークで確認
© 2020, Amazon Web Services, Inc. or its Affiliates.Thank you.