EMR を使用すべき理由
Amazon EMR とは、Apache Spark、Apache Hive、Presto などのオープンソースフレームワークを使用して、データ処理、相互分析、機械学習 (ML) を行なう業界をリードするクラウドビッグデータプラットフォームです。Amazon EMR の料金は予測がしやすくシンプル: 1 秒ごとに課金され、最小課金時間は 1 分となっています。たとえば、10 ノードのクラスターを 10 時間稼働した場合と、100 ノードのクラスターを 1 時間稼働した場合の料金は同じです。Amazon EMR の料金は、EMR アプリケーションのデプロイ方法によって異なります。EMR アプリケーションは、Amazon Elastic Cloud Compute (Amazon EC2) インスタンスを使用する EMR クラスター、AWS Outposts、または EMR Serverless を使用する Amazon Elastic Kubernetes Service (Amazon EKS) で実行できます。EC2 または AWS Fargate のいずれかを使用して Amazon EKS on AWS を実行できます。
EC2 での Amazon EMR クラスター、EKS での Amazon EMR クラスター、Amazon EMR Serverless アプリケーションで使用される IPv4 アドレスについては、標準のパブリック IPv4 アドレス料金がかかります。詳細については、VPC の料金ページのパブリック IPv4 アドレスのセクションにアクセスしてください。
AWS 料金計算ツール
Amazon EMR とアーキテクチャのコストを一回の見積もりで算出します。
Amazon EMR on Amazon EC2
この料金は、Amazon EC2 インスタンスを備えた Amazon EMR クラスターで実行されている Amazon EMR アプリケーションを対象としています。
Amazon EMR の料金は Amazon EC2 の料金 (基本的なサーバーの料金) と (Amazon EBS ボリュームをアタッチしていれば) Amazon Elastic Block Store (Amazon EBS) の料金に追加されます。こちらも 1 秒ごとに課金、最小課金時間は 1 分となっています。EC2 にはさまざまな料金オプションが用意されています。例えば、オンデマンド (下記参照)、1 年間および 3 年間のリザーブドインスタンス、Capacity Savings Plans、スポットインスタンスなどです。スポットインスタンスは予備の EC2 キャパシティーで、オンデマンド料金と比べて最大 90% の割引価格でご利用いただけます。オンデマンドと比較したスポットインスタンスのコスト削減については、スポットインスタンスアドバイザーのページで「EMR でサポートされるインスタンスタイプ」でフィルタリングしてご確認ください。
Amazon EKS での Amazon EMR
この料金は、Amazon EKS クラスター上の Amazon EMR 向けのものです。
Amazon EMR の料金は、Amazon EKS の料金または EKS で使用されるその他のサービスに追加されます。EC2 または AWS Fargate のいずれかを使用して EKS on AWS を実行できます。EC2 (EKS 管理対象ノードグループを含む) をご使用の場合、Kubernetes ワーカーノードを実行するために作成した AWS リソース (EC2 インスタンスや EBS ボリュームなど) の料金をお支払いいただきます。詳細な料金情報については、EC2 の料金ページをご覧ください。AWS Fargate をご使用の場合、料金は、コンテナイメージのダウンロードを開始した時点から EKS ポッドが終了するまでに使用された vCPU およびメモリリソースに基づいて計算され、最も近い秒数に切り上げられます。1 分の最低料金が適用されます。詳細な料金情報については、AWS Fargate の料金ページをご覧ください。
Amazon EKS での Amazon EMR の料金は、EMR アプリケーションイメージのダウンロードを開始した時点から EKS Pod が終了するまでに使用された vCPU およびメモリリソースに基づいて計算され、最も近い秒数に切り上げられます。料金は、タスク または Pod のために要求された vCPU およびメモリリソースに基づきます。
AWS Outposts での Amazon EMR
Amazon EMR on AWS Outposts の料金は、EMR のクラウドベースのインスタンスと同じです。AWS Outposts の料金詳細については、AWS Outposts の料金ページをご覧ください。
Amazon EMR Serverless
EMR Serverless では、初期費用はなく、使用したリソース分のみをお支払いいただきます。アプリケーションで消費される vCPU、メモリ、およびストレージリソースの量に対する料金が発生します。
EMR Serverless では、オープンソースフレームワークバージョンを使用してアプリケーションを作成し、アプリケーションにジョブを送信します。ジョブ仕様の一部として、同時実行ワーカーの最小数と最大数、および各ワーカーの vCPU、メモリ、ストレージを提供できます。EMR は、指定された制限内でジョブに必要なものに基づいて、自動的にワーカーを追加および削除します。ワーカーのコンピューティング、メモリ、およびストレージといった 3 つのディメンションは、個別で構成できます。 ワーカーあたり 1 vCPU から、2 vCPU、4 vCPU、8 vCPU、16 vCPU まで、メモリは 2 GB から 120 GB まで (1 GB から 8 GB 刻み) 選択可能です。ストレージオプションとして、ワーカーあたり 20 GB から 200 GB の標準ストレージを選択するか、またはワーカーあたり 20 GB から 2 TB のシャッフル最適化ストレージを選択できます。
ワーカーがワークロードを実行する準備ができてから終了するまでに使用した vCPU、メモリ、およびストレージリソースの合計について課金され、最小 1 分単位で最も近い秒に切り上げられます。アプリケーションの起動時にワーカーを開始するようにアプリケーションを設定した場合、リクエストを受けたワーカーはアプリケーションの開始時にワーカーを開始し、アプリケーションの停止時、もしくはアプリケーションがアイドル状態のままになったら終了します。
注: カスタムイメージを使用する場合、EMR Serverless がイメージのダウンロードを開始してからワーカーが停止するまでに使用した vCPU、メモリ、ストレージリソースの合計料金が課金され、最小時間を 1 分として、最も近い秒に切り上げられます。
料金の詳細 (コンピューティングとメモリ)
料金は、ワーカーが使用する vCPU、メモリ、およびストレージリソースに基づいており、すべてのワーカーを対象として集計されます。
-
Linux/x86
-
Linux/ARM
-
Linux/x86
-
-
Linux/ARM
-
詳細料金 (エフェメラルストレージ)
標準ストレージ:最初の 20 GB の一時ストレージは、デフォルトですべてのワーカーが使用でき、ワーカーごとに構成された追加のストレージに対してのみ料金が発生します。
最適化されたストレージのシャッフル:最初の 20 GB を含め、ワーカーごとに設定されたストレージ全体の料金をお支払いいただきます。
サポートされるワーカー設定
CPU | メモリの値 | エフェメラルストレージ |
1 vCPU | 最低2 GB および最大8 GB (1 GB 単位) | 20 GB - 200 GB |
2 vCPU | 最低4 GB および最大16 GB (1 GB 単位) | 20 GB - 200 GB |
4 vCPU | 最低8 GB および最大30 GB (1 GB 単位) | 20 GB - 200 GB |
8 vCPU | 最低16 GB および最大60 GB (4 GB 単位) | 20 GB - 200 GB |
16 vCPU | 最低32 GB および最大120 GB (8 GB 単位) | 20 GB - 200 GB |
期間
ワーカーがワークロードを実行する準備ができてから、停止するまでの期間が計算され、最小 1 分単位で最も近い秒に切り上げられます。
追加料金
お使いのアプリケーションが AWS の他のサービスを使用する場合は、追加料金が発生する場合があります。例えば、アプリケーションが Amazon Simple Storage Service (S3) を使用してデータを保存および処理する場合、標準 Amazon S3 料金が課金されます。Amazon S3、Amazon Relational Database Service (RDS)、Amazon Redshift などのソースからデータを移動する場合、標準のリクエストおよびデータ転送料金が請求されます。Amazon CloudWatch を使用する場合、CloudWatch ログおよび CloudWatch イベントの標準料金が請求されます。
Amazon EMR WAL
この料金は、Amazon EMR WAL を使用する Apache HBase アプリケーションを備えた EC2 クラスター上の Amazon EMR を対象としています。Apache HBase Write Ahead Log を使用すると、データへのすべての変更をファイルベースのストレージに記録できます。Amazon EMR on EC2 を使用すると、Apache HBase の先行書き込みログを Amazon EMR WAL に書き込むことができます。これは、クラスターの寿命が長くなる耐久性のあるマネージドストレージレイヤーです。クラスターが異常になったり、まれにアベイラビリティーゾーンが利用できなくなったりした場合は、新しいクラスターを作成し、同じ Amazon S3 ルートディレクトリと Amazon EMR WAL ワークスペースを指定すると、数分以内に WAL のデータを自動的に復元できます。詳細については、「Amazon EMR WAL のドキュメント」を参照してください。
EMR WAL に使用した分だけお支払いいただきます。WAL を使用するように構成されたアクティブなクラスターがある場合、EMR-WAL-WALHours として請求され、書き込みは WriteRequestGiB として、読み取りは ReadRequestGiB として請求される使用量に基づいて、EMR WAL ストレージの料金が請求されます。
EMR-Wal-WALHours: EMR WAL は Apache HBase リージョンごとに 1 つの WAL を作成します。クラスターが終了した後に、Amazon S3 にフラッシュされなかったデータが EMR WAL に残っている場合は、回復クラスターを起動してデータを回復するか、一時クラスターを作成して EMR WAL CLI を使用して EMR WAL リソースを削除して WAL をクリーンアップすることができます。EMR WAL データを明示的に削除しない場合、EMR WAL はデータを保持し、フラッシュされていないデータについては 30 日間料金を請求します。以下の例をご覧ください。
ReadRequestGiB と WriteRequestGiB: この 2 つのディメンションは、読み取りリクエストと書き込みリクエスト用です。EMR WAL を使用してクラスター上のテーブルにデータを書き込むための Apache HBase API コールは、WriteRequestGiB として請求されます。EMR WAL への書き込みは、「プット」操作などのすべての Apache HBase 書き込みに対して行われます。Apache HBase のリカバリオペレーション中に EMR WAL からデータを読み取るための Apache HBase API コールは、ReadRequestGiB として請求されます。読み取りと書き込みは、アイテムサイズと EMR 請求額に基づいて最低 1 バイトで課金されます。
料金の例
例 1: EMR on EC2
US-East-1 の料金に基づく料金です。
Amazon EC2 にデプロイされた Amazon EMR アプリケーションを実行し、1 つの c4.2xlarge EC2 インスタンスをマスターノードとして使用し、2 つの c4.2xlarge EC2 インスタンスをコアノードとして使用するとします。EMR と EC2 ノードの両方に課金されます。仮に、1 か月間の稼働率が 100% で、EC2 のオンデマンド料金を利用した場合の料金は以下の通りです。
マスターノード:
EMR の料金 = 1 インスタンス × 0.105 USD/時 × (100/100 利用率/月) × 730 時間/月 = 76.65 USD (EMR マスターノードのコスト) EC2 の料金 = 1 インスタンス × 0.398 USD/時 × 730 時間/月 = 290.54 USD (EC2 マスターノードのコスト)
コアノード:
EMR の料金 = 2 インスタンス × 0.105 USD/時 × (100/100 利用率/月) × 730 時間/月 = 153.30 USD (EMR コアノードのコスト)
EC2 の料金 = 2 インスタンス × 0.398 USD/時 × 730 時間/月 = 581.08 USD (EC2 コアノードのコスト)
合計料金 = 76.65 USD + 290.54 USD + 153.30 USD + 581.08 USD = 1101.57 USD
例 2: EMR on EKS
US-East-1 の料金に基づく料金です。
Amazon EKS にデプロイされた Amazon EMR-Spark アプリケーションを実行しているとします。この場合、EKS は r5.2xlarge EC2 インスタンス (8 vCPU、64 GB RAM) を使用して計算能力を補完します。EKS クラスターに 100 ノード、合計 800 vCPU、合計 6,400 GB のメモリがあると仮定します。アプリケーションが 100 個の VCPU と 300 GB のメモリを 30 分間使用するとします。
ジョブの Amazon EMR 料金引き上げの合計:
vCPU の合計増加 = (100 * 0.01012 USD * 0.5) = (vCPU の数 * vCPU/時間あたりのレート * 時間単位のジョブ実行時間) = 0.506 USD
メモリの合計増加 = (300 * 0.00111125 USD * 0.5) = (使用されたメモリの量 * GB/時間あたりのレート * 時間単位のジョブ実行時間) = 0.1667 USD
EMR ジョブの合計 EMR 引き上げ = 0.6727 USD
追加コスト
作成した Amazon EKS クラスターごとに、1 時間あたり 0.10 USD の料金が発生します。Kubernetes の名前空間と IAM セキュリティポリシーを活用すると、Amazon EKS クラスター 1 つで複数のアプリケーションを実行することができます。Amazon EC2 または AWS Fargate のいずれかを使用して EKS on AWS を実行できます。
Amazon EC2 (Amazon EKS 管理対象ノードグループを含む) をご使用の場合、Kubernetes ワーカーノードを実行するために作成した AWS リソース (EC2 インスタンスや Amazon EBS ボリュームなど) の料金をお支払いいただきます。使用した分だけをお支払いいただきます。最低料金や前払いの義務はありません。詳細な料金情報については、EC2 の料金ページをご覧ください。
AWS Fargate をご使用の場合、料金は、コンテナイメージのダウンロードを開始した時点から Amazon EKS ポッドが終了するまでに使用された vCPU およびメモリリソースに基づいて計算され、最も近い秒数に切り上げられます。1 分の最低料金が適用されます。詳細な料金情報については、AWS Fargate の料金ページをご覧ください。
例 3: EMR Serverless
Spark ジョブを EMR Serverless に送信するとします。ジョブが最小 25 ワーカー、最大 75 ワーカーを使用するように構成されており、それぞれのメモリが 4 vCPU と 30 GB で構成されていると仮定します。追加のエフェメラルストレージは構成されていないとお考えください。25 ワーカー (または 100 vCPU) を使用してジョブを 30 分間実行し、さらに 15 分間 50 ワーカー (200 vCPU) を追加するように自動的にスケーリングされた場合:
vCPU の合計時間コスト = (100 x 0.052624 USD x 0.5) + (200 x 0.052624 USD x 0.25) = (vCPU の数 x vCPU/時間あたりのレート x 時間単位のジョブランタイム) = 5.2624 USD
合計 GB 時間 = (750 x 0.0057785 USD x 0.5) + (1,500 x 0.0057785 USD x 0.25) = (構成メモリの合計 GB x GB/時間あたりのレート x 時間単位のジョブランタイム) = 4.333875 USD
EMR Serverless の合計料金 = 9.596275 USD
追加料金: アプリケーションが Amazon S3 などの他の AWS サービスを使用している場合は、標準 S3 料金が請求されます。
例 4: EMR WAL
Apache HBase を使用して新しい Amazon EMR クラスターを作成し、クラスターを米国東部 (バージニア北部) リージョンで完全にバックアップすることを選択したとします。これは新しいアプリケーションで使用するため、トラフィックパターンがどのようになるかはわかりません。わかりやすくするために、ユーザーがシステムテーブルを含む HBase テーブルを 10 個作成し、テーブルごとに HBase リージョン 2 個を作成し、ユーザーがアプリケーションを操作するたびに 1 KiB のデータを書き込むとします。
10 日間、アプリケーションへのトラフィックはほとんどなく、毎日 10,000 回の書き込みが行われます。しかし、11 日目には、その日のアプリケーショントラフィックは 2,500,000 回の書き込みに急増します。また、クラスターのカスタムコードを同時に更新し、11 日目にエンドユーザーのために夜間に予定されているダウンタイムを設けることも決定しました。この結果、HBase リカバリ操作用の EMR WAL から 100 万回の読み取りが行われたと仮定します。アプリケーションは、ユーザーにシームレスなエクスペリエンスを提供するためにスケーリングされます。その後、あなたのアプリケーションは、月末まで毎日 50,000 の書き込みという、より規則的なトラフィックパターンに落ち着きます。
以下の表は、その月の総使用量をまとめたものです。
タイムフレーム - (その月の日付) | 書き込み総数 | 読み込み総数 | EMR WAL の使用状況 |
1 - 10 | 10 万回の書き込み (1 万回の書き込み × 10 日間) | ||
11 | 250 万回の書き込み | 100 万回の読み取り | |
12 - 30 | 95 万回の書き込み (5 万回の書き込み × 19 日間) | ||
月額合計 | 355 万回の書き込み | 100 万回の読み取り | |
月額料金 | 0.30 USD (EMR WAL 書き込みリクエストの GiB あたり 0.0883 USD x 355 万 KiB の書き込み/1048576 KiB/GiB) | 0.08 USD (EMR WAL 読み取りリクエストの GiB あたり 0.0883 USD x 100 万 KiB の読み取り/1048576 KiB/GiB) | 25.92 USD (1 時間あたり WAL あたり 0.0018 USD の EMR WAL 使用量 X 10 台の HBase テーブルの使用量 X HBase テーブルあたり 2 つの HBase リージョン X HBase リージョンあたり 1 WAL X 30 日 X 24 時間、または 14,400 EMR-WAL-WALHours の使用量) |
今月の請求額は 26.52 USD で、合計には ReadRequestGiB と WriteRequestGiB の 0.38 USD と、EMR-Wal-Walhours の 25.92 USD が含まれます。
料金に関するその他のリソース
AWS の月額料金を簡単に計算
個別のお見積もりをご希望の場合、AWS のスペシャリストに問い合わせる