Amazon EMR サーバーレス コスト見積もりツール

Amazon EMR サーバーレス コスト見積もりツール

ソースノード: 1776349

Amazon EMR サーバーレス のサーバーレスオプションです アマゾンEMR これにより、データ アナリストやエンジニアは、クラスターやサーバーを構成、管理、スケーリングすることなく、Apache Spark や Hive などのオープンソースのビッグ データ分析フレームワークを使用してアプリケーションを簡単に実行できます。 Amazon EMR のパフォーマンスが最適化されたランタイムを使用して、最新のオープンソース フレームワークのすべての機能を利用できます。インスタンスやクラスターを計画および運用する必要はありません。

Amazon EMR を使用すると、専用の EMR クラスターで分析アプリケーションを実行できます。 Amazon Elastic Kubernetesサービス (Amazon EKS) クラスター、またはクラスターやインスタンスを管理する必要がない新しい EMR サーバーレス デプロイ オプションを使用します。 Amazon EMR リリース (Amazon EMR 6.8 など) を使用して Spark または Hive アプリケーションを構築する場合、EMR クラスター、EKS クラスターでアプリケーションを実行できます。 EKS上のAmazonEMR、またはアプリケーションを変更せずに EMR サーバーレスを使用します。

の各展開オプションの利点について学習するには、 EMR サーバーレス、 を参照してください。 EMR サーバーレスと EC2 上の Amazon EMR の機能の違いは何ですか? Amazon EMR FAQ で。 これらのオプションの価格については、 Amazon EMR 料金ページ. 多くのお客様は、すでに EMR クラスターでデータ分析アプリケーションを実行しており、新しいサーバーレス オプションがよりシンプルで安価であることを実感しています。

この投稿では、新しいサーバーレス オプションを使用して現在 EMR クラスターで実行されているアプリケーションを実行するためにかかる費用を見積もり、現在のアプリケーション メトリックを使用してこの分析を実行する方法について説明します。 このアプローチは、アプリケーションにとって最も費用対効果の高い展開オプションを評価して採用するのに役立ちます。 ただし、Amazon EMR の料金ページには、既存の EMR クラスター アプリケーションを EMR サーバーレスで実行するコストを簡単に見積もる方法が記載されていません。 以下のセクションでは、それを可能にするアプローチについて説明します。

この投稿の例では、EMR クラスターで実行されているアプリケーションのコスト見積もりを取得する方法について説明していますが、Spark または Hive アプリケーションを別の場所で実行していて、EMR で実行するコストを見積もりたい場合にも、このアプローチを使用できます。サーバーレス。 たとえば、自己管理型の Spark または Hive アプリケーションを アマゾン エラスティック コンピューティング クラウド (Amazon EC2) クラスター、または Spark ジョブを実行する場合 AWSグルーでは、このアプローチを使用して、EMR サーバーレスでアプリケーションを実行するコストを見積もる方法を示します。

EMR クラスターでアプリケーションを実行するコストの見積もり

Amazon EMR クラスターでアプリケーションを実行すると、次の料金が別途発生します。

  1. 実行中のクラスター インスタンスの Amazon EC2 料金 (基盤となるサーバーの料金)
  2. 以下のための価格 Amazon Elastic Blockストア (Amazon EBS) ボリューム (EBS ボリュームのアタッチを選択した場合)
  3. クラスターインスタンスの Amazon EMR 料金

クラスターを実行する総コストには、2 つすべてが含まれます。 オンデマンド、1 年間および 3 年間のリザーブド インスタンス、キャパシティ セービング プラン、スポット インスタンスなど、さまざまな Amazon EC2 料金オプションから選択できます。 選択した Amazon EC2 の料金オプションによって、(a) Amazon ECXNUMX の料金が決まります。 EMR クラスターでアプリケーションを実行するコストは、(a)、(b)、および (c) の合計です。 このコストは、クラスターの実行期間 (クラスターの開始時からクラスターの終了時まで)、またはクラスターの実行中の特定の期間について計算できます。 前者を実行することをお勧めします。つまり、(a)、(b)、および (c) をクラスターの開始時からクラスターの終了時まで計算します。 Amazon EMR クラスターのタグを設定している場合は、簡単に取得できます。 AWS Cost Explorer を使用した EMR クラスターの詳細なコスト レポート.

EMR サーバーレスを使用して同じアプリケーションを実行するコストを見積もる

EMR サーバーレスを使用して同じアプリケーションを実行すると、アプリケーションが消費する vCPU、メモリ、およびストレージ リソースの量に対して料金が発生します。 EC2 インスタンスまたは EBS ボリュームに対する個別の料金はありません。 また、プロビジョニングされた EC2 インスタンスではなく、アプリケーションによって実際に使用されるリソースに対してのみ料金が発生します。 たとえば、EMR クラスターでアプリケーションを実行しているときに、クラスター内の EC2 インスタンスが部分的に使用されている場合 (たとえば、インスタンスで使用可能な 16 GB のうち 64 GB のメモリが使用されているか、インスタンスで使用可能な 4 個の VCPU のうち 16 個の VCPU が使用されている場合) )、または EC2 インスタンスがアイドル状態のとき (たとえば、インスタンスが初期化中またはアプリケーションの開始を待機しているとき)、完全な EC2 インスタンスとその期間に対して、Amazon EC2、Amazon EMR、および Amazon EBS の料金が引き続き発生します。インスタンスは EMR クラスターでアクティブです。 EMR サーバーレスでは、ワーカーが Spark または Hive ジョブの実行を開始してから停止するまでに使用された vCPU、メモリ、およびストレージ リソースに対してのみ料金が発生します。

EMR サーバーレスで EMR Spark または Hive アプリケーションを実行するコストを見積もるには、まず、EMR クラスターで実行された各 YARN アプリケーションによって消費される合計コンピューティング仮想コア秒、メモリ MB 秒、およびストレージ GB 秒を集計する必要があります。 YARN コンテナが開始されてから YARN コンテナが終了されるまで。 これらのメトリクスは、YARN タイムライン サーバーまたは YARN CLI ツールからアクセスできる YARN リソース マネージャー ログから取得できます。 各 YARN アプリケーションで使用される実行時間、仮想コア秒、およびメモリ MB 秒を取得できます。

クラスターが Spark アプリケーションのみを実行している場合は、より簡単に見積もる方法があります。 YARN リソース マネージャー ログから仮想コア秒、メモリ MB 秒、ストレージ GB 秒を取得する代わりに、Spark イベント ログからこれらのメトリックを取得できます。 ツールをご用意しました EMR サーブレス見積もりこれは、アプリケーションの Spark イベント ログを解析し、コストの見積もりの​​ために集計されたメトリックを提供します。

アプリケーションの使用メトリクスを取得したら、次を使用して EMR サーバーレスの推定コストを計算できます。 EMR サーバーレス料金. 集計された仮想コア秒数に EMR サーバーレス vCPU の 20 秒あたりの料金を掛け、集計されたメモリの MB 秒に XNUMX 秒あたりの EMR サーバーレス メモリの料金を掛け、ストレージの GB 秒に XNUMX 秒あたりの EMR サーバーレス ストレージの料金を掛けるだけです (ストレージ要件がワーカーあたり XNUMX GB を超えます)。 これらの vCPU、メモリ、およびストレージのコストを合計することで、EMR サーバーレスで同じアプリケーションを実行するコストを比較できます。

このアプローチでは、アプリケーションのパフォーマンスが同等であると想定しています。 つまり、EMR クラスター上の各 YARN コンテナーのサイズ (vCPU、メモリ) と実行時間は、EMR サーバーレスでアプリケーションを実行するために必要なワーカーの数、サイズ、および実行時間と同じです。 アプリケーションが EMR クラスターで実行されているか、EMR サーバーレスで実行されているかに関係なく、EMR リリースの EMR ランタイムは同じであるため、この仮定を行います。

単一のクラスターを使用して、EC2 上の Amazon EMR と EMR サーバーレスのコストを比較してみましょう。

XNUMX つのノード (プライマリ XNUMX つ、コア XNUMX つ、タスク XNUMX つ) を持つ EMR クラスターで Spark アプリケーションを実行し、YARN CLI を使用して YARN メトリクスを収集しました。次のコードは、総リソース割り当てを示しています。

総リソース割り当て

EC2 のコストに対する Amazon EMR を次のように計算しました。

  • クラスタ インスタンス
    • プライマリ: m5.2xlarge:1
    • コア: r5.2xlarge:2
    • タスク: r5.2xlarge:2
  • クラスタ ランタイム = 18 分
  • インスタンスのオンデマンド料金
    • m5.2xlarge (8 個の vCPU、32 GiB メモリ)
      • Amazon EC2: $0.384/時間
      • Amazon EMR 増分: $0.096/時間
    • r5.2xlarge (8 個の vCPU、64 GiB メモリ)
      • Amazon EC2: $0.504/時間
      • Amazon EMR 増分: $0.126/時間

以下は、EC2 コスト計算の EMR です。

  • Amazon EMR のコスト = ((1 プライマリ ノード x $0.096/時間) + (2 コア ノード x $0.126/時間) + (2 タスク ノード x $0.126/時間)) = $0.60
  • Amazon EC2 のコスト = ((1 プライマリ x $0.384/時間) + (2 コア ノード x $0.504/時間) + (2 タスク ノード x $0.504/時間)) = $2.40
  • EC2 クラスターでの Amazon EMR のコスト/時間 = 0.6 USD + 2.40 USD = 3 USD/時間 * 8/60 時間 (実行時間 (時間))

Amazon EC2 の合計 Amazon EMR コストは 0.40 USD/時間です。

EMR サーバーレス コストを計算するには、以前に EMR クラスターで実行した同じアプリケーションの仮想コア秒とメモリ MB 秒を集計します。 次に、これらの数値に EMR サーバーレス vCPU とメモリの価格を掛けます。 計算結果は次のとおりです。

  • Total_vcore_秒 = 5737
  • Total_Memory_mb_秒 = 120156631
  • vCPU/hr およびメモリ-GB/hr に変換します。
    • 集約された vCPU/時間: 5737/(60*60)=1.59
    • Aggregated memory/hr: 120156631/(60*60*1024)=32.5
  • 合計 vCPU 時間コスト = 33 vCPU * 0.052624 VCPU/時 * 8/60 = $0.23
  • 合計メモリ GB コスト = 1.59 MB * 0.0057785 メモリ/時間 * 8/60 = $0.00122

この例では、EMR サーバーレスの合計コストは 0.231 USD で、42% 削減されます。

まとめ

Amazon EMR サーバーレスは、Amazon EMR で最近リリースされたサーバーレス オプションであり、クラスターの構成、管理、スケーリングを行うことなく、Spark や Hive などのオープンソース フレームワークを簡単に実行できます。 すでに EMR クラスターを使用しているお客様は、EMR サーバーレスを使用して EMR アプリケーションを実行するコストを見積もる方法を理解したいと考えています。 EMR クラスターからのアプリケーション メトリクスの分析に基づいて、コスト分析を実行するために使用できるアプローチを紹介しました。

ぜひお試しいただき、フィードバックをお寄せください。


著者について

ラディカ・ラビララ AWS のプリンシパル プロダクト マネージャーです。

マシュー・リーム AWS のシニア ソリューション アーキテクチャ マネージャーです。

タイムスタンプ:

より多くの AWSビッグデータ