リソースセンターのご利用開始にあたって、 / 10 分間チュートリアル / ...
EC2 スポットインスタンスと Amazon EMR を使用して
Amazon EMR では、管理された Hadoop フレームワークが提供され、動的にスケーリング可能な Amazon EC2 インスタンスで、大量のデータを、簡単、高速、高コスト効率な方法で処理できます。また、Apache Spark や HBase、Presto、Flink といった他の一般的なフレームワークを Amazon EMR で実行することや、Amazon S3 や Amazon DynamoDB といった他の AWS データストア内でデータを操作することもできます。大衆に普及しているJupyter Notebookに基づき、EMR Notebookは 特別なクエリおよび 試験的分析のための開発および共同研究を行う環境を提供します。Amazon EMR では、ログの分析、ウェブインデックス作成、データ変換 (ETL)、機械学習、財務分析、科学シミュレーション、バイオインフォマティクスを含む、さまざまなビッグデータのユースケースが確実かつ安全に処理されます。
Amazon EC2 スポットインスタンスは、AWS クラウドで使用可能な予備のコンピューティング容量を、オンデマンド料金に比べて大幅な割引で提供します。EC2 がその容量を再び必要とする場合は、EC2 が 2 分間前に通知をしてスポットインスタンスを中断することがあります。スポットインスタンスは、さまざまなフォールトトレラントで柔軟なアプリケーションに使用できます。例えば、分析、コンテナ化されたワークロード、ハイパフォーマンスコンピューティング ( HPC)、ステートレスウェブサーバー、レンダリング、CI/CD、およびその他のテストや開発のワークロードが挙げられます。
このチュートリアルでは、クラスターの作成ウィザードを使用して、Amazon EC2 スポットインスタンスで最初の Amazon EMR クラスターを起動する方法を学習します。スポットインスタンスで Amazon EMR を実行すると、ビッグデータのコストが大幅に削減され、計算能力が飛躍的に向上し、大きなデータセットを処理する時間が短縮されます。
このチュートリアルについて | |
---|---|
時間 | 10~20 分 |
料金 | 無料 |
ユースケース | コンピューティング |
製品 | Amazon EMR、Amazon EC2 スポットインスタンス |
レベル | 200 |
最終更新日 | 2020 年 2 月 4 日 |
ステップ 1: 詳細オプションでクラスターを作成する
1.1 - ブラウザを開き、Amazon EMR コンソールに移動します。または、コンソールのランディングページの [Analytics] セクションで EMR を検索するか、Amazon EMR を見つけることもできます。すでに AWS アカウントをお持ちの場合は、コンソールにログインします。それ以外の場合は、開始用に新しい AWS アカウントを作成します。
AWS アカウントをお持ちですか? アカウントにログインする
ステップ 2: クラスターソフトウェアと手順を設定する
2.3 - オプションで、プロビジョニング後にクラスターに実行させたいステップを設定するか、このステップをスキップしてクラスターの起動を簡単に行います。
Amazon EMR ステップを使用して、EMR クラスターにインストールされている Spark フレームワークに作業内容を送信できます。詳細については、Amazon EMR 管理ガイドの「手順」を参照してください。コンソールと CLI では、Spark アプリケーションのステップを用いてこれを行います。これにより、spark-submit スクリプトをユーザーの代わりにステップとして実行します。API では、ステップを用いて、command-runner.jar で spark-submit を呼び出します。
ステップ 3: インスタンスフリートを設定する
3.1 - [インスタンスグループの設定] セクションで [インスタンスフリート] を選択します。
インスタンスフリートにより、インスタンスの多様化を実装できます。これは、EC2 スポットインスタンスを活用する際の重用なベストプラクティスです。インスタンスの多様化により、複数のインスタンスタイプを使用できるようになります。これにより、Amazon EMR が自動的に中断を処理しながら、クラスターに必要なすべての容量を割り当てることができます。
3.4 - [タスクインスタンスフリート] セクションまでスクロールし、[インスタンスタイプをフリートに追加/削除] を選択します。
インスタンスフリートでは、フリートごとに最大 5 つのインスタンスタイプを指定できるため、Amazon EMR は利用可能な EC2 スポットキャパシティーの複数のプールから容量をプロビジョニングできます。
非常に一時的なワークロードを起動する場合を除き、マスターノードとコアノードにはオンデマンドインスタンスを使用することをお勧めします。
Amazon EMR で EC2 スポットインスタンスを使用するための一般的なユースケースと推奨事項を確認するには、こちらをご覧ください。
3.5 - タスクノードインスタンスフリートで使用するインスタンスタイプを最大 5 つ選択します。複数のインスタンスファミリー間で、vcpu とメモリの比率が似ているインスタンスタイプを検討する必要があります。
Spot Instance Advisor を使用して、EMR 互換インスタンスの平均コスト削減と中断率の詳細を確認できます。
3.6 - インスタンスフリートのオンデマンドユニットとスポットユニットを設定し、オプションで各インスタンスタイプのユニットを設定します。
オンデマンドユニットとスポットユニットの数を増やすと、クラスターにプロビジョニングされる容量が決まります。すぐに開始してこのチュートリアルのコストを削減するには、少数のスポットユニット (たとえば 8 個) のみをデプロイし、オンデマンドユニットは配置しないことをお勧めします。
デフォルトでは、各インスタンスタイプの単位は、そのインスタンスタイプの vCore の数と一致します。必要に応じてこれを設定して、異なるインスタンスタイプにさらに重みを付けることができます。重みは、Amazon EMR がインスタンスフリートの容量を満たすときに考慮されます。
オンデマンドインスタンスまたは EC2 スポットインスタンスから実行されるユニット数を指定することもできます。これにより、複数のインスタンスタイプと購入オプションを組み合わせて、インスタンスの多様化と、クラスターに必要な容量を実現できます。
3.7 - 必要に応じて、クラスターの指定継続期間とプロビジョニングタイムアウトの動作を設定します。
プロビジョニングタイムアウトでは、Amazon EMR がインスタンスフリートの容量をプロビジョニングできない場合のクラスターの動作を定義できます。デフォルトの動作は Terminate です。けれども、タイムアウトを超えた場合、オプションで、クラスターにスポットインスタンスではなくオンデマンドインスタンスのプロビジョニングを試行させることができます。
これらのオプションについて詳しくは、こちらをご覧ください。
ステップ 4: 一般的なクラスター設定
4.2 - オプションで、クラスターに関連するタグを設定します。タグは、作成しているクラスターを所有しているチームや、所属する環境を識別するのに役立ちます。
タグ付けについて詳しくは、こちらをご覧ください。
おめでとうございます
これで、EC2 スポットインスタンスで Amazon EMR クラスターが起動しました。これで、スポットインスタンスを EMR クラスターに統合し、ビッグデータワークロードのコストとパフォーマンスを最適化する準備が整いました。
推奨する次の手順
EMR で Spark アプリを実行する
Amazon EMR で EC2 スポットインスタンスを使用する方法を学んだので、インスタンスフリートと学習したその他のベストプラクティスを自身ののワークロードに実装する準備が整いました。学習を継続したい場合は、こちらにあるセルフペースワークのショップの手順に従うことをお勧めします。
ドキュメントを読む
Amazon EMR 管理ガイドを読んで、Amazon EMR の機能と能力について学びましょう。
Amazon EC2 スポットインスタンスを探索する
Amazon EC2 スポットインスタンスの詳細については、Amazon EC2 スポットインスタンスの製品ページにアクセスして、ドキュメント、ビデオ、ブログなどをご覧ください。