メインコンテンツに移動

Amazon EMR

  • 概要
  • 料金

EMR での Apache Spark を使用する理由

Amazon EMR は Apache Spark の実行に最適です。マネージド Spark クラスターは、AWS マネジメントコンソール、AWS CLI、または Amazon EMR API を使用してすばやく簡単に作成できます。さらに、Amazon EMR File System (EMRFS) を使用した Amazon S3 との高速接続、Amazon EC2 スポットマーケットや AWS Glue データカタログとの統合、クラスターへのインスタンスの追加と削除を行うための EMR Managed 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 を用いたデータ探索のためのインタラクティブかつ共同作業が可能なノートブックを作成することもできます。

Apache 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 Notebook で Python や Scala とインタラクティブに使用できます。EMR 6.0 での Apache Hadoop 3.0 のサポートにより、依存関係の管理を簡素化する Docker コンテナのサポートが導入されます。データの探索や視覚化には、クラスターに依存しない EMR Notebooks (Jupyter ベース) を活用したり、Zeppelin を使用してインタラクティブかつ共同作業が可能なノートブックを作成したりすることも可能です。クラスター外の永続的な Spark History Server を備えた EMR コンソールでは、ワークロードの調整とデバッグを行えます。

Apache Spark には、機械学習 (MLlib)、ストリーム処理 (Spark Streaming)、グラフ処理 (GraphX) のためのアプリケーションの構築に役立つライブラリがいくつか含まれています。これらのライブラリは Spark エコシステムと緊密に統合されており、さまざまなユースケースに合わせてすぐに活用できます。さらに、Apache MXNet などのディープラーニングフレームワークを Spark アプリケーションで使用できます。AWS Step Functions との統合により、サーバーレスワークフローの自動化とオーケストレーションをアプリケーションに追加できます。

EMR Step API を使用して Apache Spark ジョブを送信、Spark と EMRFS を使用して S3 内のデータに直接アクセス、EC2 スポットキャパシティを使用してコストを削減、EMR Managed Scaling を使用してキャパシティの追加と削除を動的に実行するとともに、ワークロードに合わせて長時間実行されるクラスターや一時的なクラスターを起動します。EMR のセキュリティ設定を使用すると、Spark 暗号化と Kerberos による認証を簡単に設定できます。さらに、AWS Glue データカタログを使用して Spark SQL テーブルのメタデータを保存したり、Amazon SageMaker を Spark 機械学習パイプラインで使用したりすることもできます。EMR は Hadoop YARN 上に Spark をインストールして管理します。ユーザーは、クラスター上に他のビッグデータアプリケーションを追加することもできます。Apache Hudi で EMR を使用すると、変更データキャプチャ (CDC) をより効率的に管理でき、レコード削除を簡素化することから GDPR や CCPA などのプライバシー規制対応に役立ちます。EMR の機能に関する詳細については、こちらをクリックしてください。

Apache Spark アップグレードエージェントは、PySpark アプリケーションと Scala アプリケーションの全体で API と動作の変更を自動的に識別します。エンジニアは、SageMaker Unified Studio からアップグレードを直接開始、または MCP (モデルコンテキストプロトコル) との互換性を用いて任意の IDE からアップグレードを開始することができます。エージェントはアップグレードプロセス中に既存のコードを分析して具体的な変更を提案するので、エンジニアは実装前に変更をレビューして承認できます。エージェントは、データ品質検証を通じて機能正確性を検証します。エージェントは現在、Spark 2.4 から 3.5 へのアップグレードをサポートしており、アップグレードプロセスの全体を通じてデータ処理の正確性を維持します。

ユースケース

EMR で Spark Streaming を使用して、Amazon KinesisApache Kafka、またはその他データストリームからのリアルタイムデータを活用し、処理します。耐障害性に優れた方法でストリーミング分析を実行し、結果を S3 やクラスター上の HDFS に書き込みます。

EMR での Apache Spark には、さまざまなスケーラブル機械学習アルゴリズムの MLlib が含まれており、独自のライブラリを使用することも可能です。ジョブの間はデータセットをメモリに保存することで、Spark は、機械学習のワークロードで一般的である、反復的なクエリに対して優れたパフォーマンスを発揮します。モデルを簡単にトレーニングしてホストするための Amazon SageMaker Spark を使用して、Amazon EMR で実行されている Apache Spark クラスターにノートブックインスタンスを接続することで Amazon SageMaker 機能を強化できます。

SQL や HiveQL を使用した低レイテンシーでインタラクティブなクエリのために Spark SQL を使用します。EMR での Spark は EMRFS を使用できるため、ユーザーは Amazon S3 内のデータセットへのアドホックアクセスを行えます。ODBC および JDBC 接続経由で EMR Studio、EMR Notebooks、Zeppelin notebooks、BI ツールを利用することもできます。

お客様の成功事例

Yelp

Missing alt text value Yelp の広告ターゲティングチームは、広告とのユーザーインタラクションの可能性を判断する予測モデルを作成しています。Yelp は、Amazon EMR での Apache Spark を使用して機械学習モデルトレーニング用の大量のデータを処理することで、収益と広告クリック率を向上させました。

The Washington Post

Missing alt text value The Washington Post は、ウェブサイトの推奨エンジンを強化するモデルを構築し、読者のエンゲージメントと満足度を高めるために Amazon EMR での Apache Spark を使用しています。Amazon S3 に対する Amazon EMR の高性能接続を活用して、モデルをほぼリアルタイムで更新しています。

Krux

Missing alt text value Krux では、顧客インサイト向けのデータ管理プラットフォームの一部として、多数の機械学習ワークロードと一般処理ワークロードを Apache Spark を使用して実行しています。Krux は、Amazon EC2 スポットキャパシティを使用するエフェメラル Amazon EMR クラスターを利用してコストを節減し、EMRFS 経由で Amazon S3 を Apache Spark のデータレイヤーとして使用しています。 続きを読む

GumGum

Missing alt text value 画像内広告と画面内広告のプラットフォームである GumGum は、在庫予測、クリックストリームログの処理、Amazon S3 内の非構造化データのアドホック分析に Amazon EMR での Spark を使用しています。GumGum では、Spark のパフォーマンス強化によって、これらのワークフローにかかる時間とコストを節約しました。 続きを読む

Hearst Corporation

Missing alt text value 多角的な大規模メディア情報企業である Hearst Corporation には、200 を超えるウェブプロパティのコンテンツを閲覧する顧客が存在します。Amazon EMR で Apache Spark Streaming を使用することにより、Hearst の編集スタッフは、どの記事が好調で、どのテーマが話題になっているのかに関するリアルタイムの動向を常時把握できます。 続きを読む

CrowdStrike

Missing alt text value CrowdStrike は、侵害を阻止するためのエンドポイント保護を提供しています。Amazon EMR と Spark を使用することで、数百テラバイトものイベントデータを処理し、ホストでより高レベルな動作記述にまとめています。CrowdStrike は、このデータを用いることでイベントデータをまとめ、悪意のあるアクティビティの存在を特定することができます。 続きを読む