Amazon EMR は Apache Spark を実行するのに最適です。AWS マネジメントコンソール、AWS CLI、または Amazon EMR API 使用すると、Spark マネージドクラスターをすばやく簡単に作成できます。さらに、Amazon EMR ファイルシステム (EMRFS) を使用した Amazon S3 との高速接続、Amazon EC2 スポット市場および AWS Glue データカタログとの統合、Auto Scaling によるクラスターへのインスタンスの追加と削除など、Amazon EMR の他の機能も活用できます。AWS Lake Formation はきめ細かなアクセス制御を可能にし、AWS Step Functions との統合はデータパイプラインのオーケストレーションを支援します。 EMR Studio (現在プレビューで提供) は、R、Python、Scala、および PySpark で記述されたデータエンジニアリングやデータサイエンスのアプリケーションを、データサイエンティストとデータエンジニアが簡単に開発、視覚化、およびデバッグできるようにする統合開発環境 (IDE) です。EMR Studio は、完全管理型の Jupyter Notebook と、デバッグを簡素化する Spark UI や YARN Timeline Service などのツールを提供します。 EMR Notebooks を使えば、Spark を使った実験やアプリケーション構築を簡単に行えます。また、Apache Zeppelin では、Spark を使用してインタラクティブで共同作業が可能なノートブックを作成してデータ探索を行うこともできます。
特徴と利点
高速パフォーマンス
EMR では、Apache Spark 用の Amazon EMR ランタイムもご利用になれます。これは、Apache Spark のパフォーマンスが最適化されたランタイム環境で、Amazon EMR クラスターでデフォルトでアクティブ化されています。ApacheSpark の Amazon EMR ランタイムは、EMR ランタイムのないクラスターよりも 3 倍以上速く、標準の Apache Spark と 100% の API 互換性があります。こうしたパフォーマンスの向上により、アプリケーションに変更を加えることなく、ワークロードを高速に実行し、計算コストを節約できます。
有向非巡回グラフ (DAG) 実行エンジンを使用することで、Spark はデータ変換のための効率的なクエリプランを作成できます。また、Spark は、入力、出力、中間データを回復力のあるデータフレームとしてメモリ内に保存し、I/O コストをかけずに高速な処理を可能にし、反復処理やインタラクティブなワークロードのパフォーマンスを向上させます。
共同作業でアプリケーションを迅速に開発
Apache Spark では Java、Scala、SQL、Python がネイティブサポートされているため、アプリケーションの構築にさまざまな言語を使用できます。また、Spark SQL モジュールを使用して、SQL または HiveQL クエリを送信できます。アプリケーションの実行に加え、Spark API を、Spark シェルまたは EMR Studio を介して、あるいは、お使いのクラスターの Jupyter ノートブックで Python または Scala と直接インタラクティブに使用できます。EMR 6.0 における Apache Hadoop3.0 のサポートにより、Docker コンテナのサポートが導入され、依存関係の管理が簡素化されます。クラスターに依存しない EMR Notebooks (Jupyter ベース) や、Zeppelin を使用して、インタラクティブで共同作業が可能なノートブックを作成してデータの探索と可視化を行うこともできます。クラスターから独立した、永続的な Spark 履歴サーバーを持つ EMR コンソールで、ワークロードのチューニングとデバッグができます。
さまざまなワークフローの作成
Apache Spark には、機械学習 (MLlib)、ストリーム処理 (Spark Streaming)、グラフ処理 (GraphX) のためのアプリケーションを構築するのに役立つライブラリがいくつか含まれています。これらのライブラリは Spark エコシステムと緊密に統合されており、さまざまなユースケースに合わせてすぐに活用できます。さらに、Apache MXNet などのディープラーニングフレームワークを Spark アプリケーションで使用できます。AWS Step Functions との統合により、サーバーレスワークフローの自動化とオーケストレーションをアプリケーションに追加できます。
Amazon EMR 機能セットとの統合
EMR Step API の Apache Spark ジョブを送信して、EMRFS の Spark を使用し、直接 S3 のデータにアクセスします。EC2 Spot 容量を使ってコストを節約して、EMR マネージドスケーリングでダイナミックに容量を追加および削除し、そして、長時間実行または一時的なクラスターを起動してワークロードにマッチさせます。EMR のセキュリティ設定を使用すると、Spark 暗号化と Kerberos による認証を簡単に設定できます。さらに、AWS Glue データカタログを使用して Spark SQL テーブルのメタデータを保存したり、Amazon SageMaker を Spark 機械学習パイプラインで使用したりもできます。EMR は Hadoop YARN 上に Spark をインストールして管理します。ユーザーは、クラスター上に他のビッグデータアプリケーションを追加することもできます。EMR with Apache Hudi を使用すると、変更データキャプチャ (CDC) をより効率的に管理でき、レコードの削除を簡素化することで GDPR や CCPA などのプライバシー規制にも対応できます。EMR の特徴の詳細についてはこちらをクリックしてください。
ユースケース
ストリーム処理
Amazon Kinesis、Apache Kafka、またはその他のデータストリームからのリアルタイムデータを EMR で Spark Streaming を使用して取り込み、処理します。ストリーミング分析を耐障害性のある方法で実行し、結果を S3 やクラスター上の HDFS に書き込みます。
機械学習
EMR での Apache Spark には、多くのスケーラブルな機械学習アルゴリズムに対応する MLlib が含まれています。また、独自のライブラリを使用することも可能です。ジョブの間はデータセットをメモリに保存することで、Spark は、機械学習のワークロードで一般的である、反復的なクエリに対して優れたパフォーマンスを発揮します。簡単なトレーニングモデルおよびホスティングモデル用の Amazon SageMaker Spark を使用して、Apache Spark クラスターにノートブックインスタンスを接続することで、Amazon SageMaker の機能を強化できます。
インタラクティブ SQL
Spark SQL を使用して、SQL や HiveQL を使用した低レイテンシーのインタラクティブなクエリを実行できます。EMR での Spark は EMRFS を使用できるため、ユーザーは Amazon S3 内のデータセットへのアドホックアクセスを行えます。また、ODBC および JDBC 接続から EMR Studio、EMR Notebooks、Zeppelin notebooks、BI ツールを利用できます。
導入事例
Yelp
Yelp の広告ターゲティングチームは、ある広告に対するユーザー操作の可能性を判定する予測モデルを作成しています。Amazon EMR 上の Apache Spark を使用して大量のデータを処理し、機械学習モデルをトレーニングすることで、Yelp では収益と広告のクリックスルー率を向上させました。
ワシントンポスト
ワシントンポストでは、Amazon EMR で Apache Spark を使用して、ウェブサイトの推奨エンジンを強化するモデルを構築し、読者のエンゲージメントと満足度を高めることができました。Amazon EMR と Amazon S3 との高性能接続を活用することで、モデルはほぼリアルタイムで更新されます。
インテントメディア
Intent Media は、旅行販売サイトの広告向けプラットフォームを運営しています。データチームは Amazon EMR で Apache Spark と MLlib を使用して、テラバイト単位の e コマースデータを毎日取り込み、その情報を活用して判定サービスを強化し、顧客収入を最適化しています。詳細については、こちらをクリックしてください。
Krux
Krux では、顧客インサイトのデータ管理プラットフォームの一部として、多数の機械学習ワークロードと一般処理ワークロードを Apache Spark を使用して実行しています。Krux では Amazon EC2 スポットキャパシティーを利用した一時的な Amazon EMR クラスターを活用することでコストを節減し、EMRFS によって Amazon S3 を Apache Spark のデータレイヤーとして使用しています。
GumGum
画像内および画面内広告のプラットフォームである GumGum では、在庫予測、クリックストリームログの処理、Amazon S3 の非構造化データのアドホック分析に Amazon EMR の Spark を使用しています。Spark によりパフォーマンスが強化されることで、GumGum ではワークフローにかかる時間と費用を節約できています。
株式会社 Hearst
多種多様なメディアや情報を扱う大企業である Hearst Corporation では、200 を超えるウェブプロパティのコンテンツを閲覧する顧客が存在します。Amazon EMR で Apache Spark Streaming を使用することで、Hearst の編集スタッフは、どの記事がよい成績を上げ、どのテーマがトレンドになっているのか、リアルタイムの動きを把握できています。
CrowdStrike
CrowdStrike は、侵害対策のエンドポイント保護を提供しています。Amazon EMR と Spark を使用することで、数百テラバイトものイベントデータを処理し、ホストでより高レベルな動作記述にまとめています。CrowdStrike では、そのデータからイベントデータについてまとめ、悪意のあるアクティビティの存在を判定することができます。
Amazon EMR 料金の詳細