Amazon EMR では必要な分の能力をすばやく簡単に供給することができ、いつでもそれを追加、削除できます。これは、処理要件が変動しやすい、または予測不可能な場合に非常に便利です。たとえば、処理のほとんどが夜間に発生する場合、日中は 100 インスタンス、夜間は 500 インスタンスが必要になるかもしれません。または、短期間の間に大量のキャパシティが必要な場合もあるかもしれません。Amazon EMR では、数百、数千のインスタンスをすばやく供給し、ジョブの完了後にそれをシャットダウンすることができます(アイドルキャパシティへの支払いを避けるため)。

AWS を無料でお試しください

まずは無料で始める »
またはコンソールにサインイン

大規模なデータ処理要件がある場合は、割引料金が適用される可能性があります。

詳細については、お問い合わせください。

日本担当チームへお問い合わせ »
elastic

能力の追加と削除における主な 2 つのオプションは次のとおりです。

複数のクラスターのデプロイ: より多くの能力が必要な場合は、簡単に新しいクラスターを起動することができ、必要なくなれば停止させることができます。使用するクラスターの数に制限はありません。複数のユーザーやアプリケーションを使用している場合は、複数のクラスターを使用すると便利です。たとえば、入力データを Amazon S3 に保管し、データ処理の必要な各アプリケーションでそれぞれ 1 つのクラスターを起動することができます。たとえば、1 つのクラスターは CPU に最適化し、もう 1 つのクラスターはストレージなどに最適化するといった具合です。

実行中のクラスターのサイズ変更: Amazon EMR では、実行中のクラスターのサイズを簡単に変更できます。クラスターのサイズを変更して、クラスターに一時的に処理能力を追加したり、クラスターを縮小してコストを節約する必要がある場合があります。例えば、一部のお客様は、バッチ処理が発生した場合に数百のインスタンスをクラスターに追加し、処理の完了後に余分なインスタンスを削除しています。クラスターにインスタンスを追加する際に、EMR では、プロビジョニングされた能力を、利用可能になり次第すぐに利用を開始できるようになりました。EMR リリース 4.1.0 より、クラスターを縮小しても実行中のジョブへの影響が最小限に抑えられるようになりました。また、クラスターのターゲットサイズを変更するサイズ変更リクエストの実行中に EMR に別のサイズ変更リクエストを発行することや、サイズ変更操作を中止することができるようになりました。


Amazon EMR は大量データの処理にかかる費用を節約することを目的としています。低価格を実現する特徴の例として、低価格な時間単位での課金、Amazon EC2 スポットとの統合、Amazon EC2 リザーブドインスタンスとの統合、自在性、Amazon S3 との統合があります。

時間単位での低料金設定: Amazon EMR の料金はインスタンス時間ごとの設定になっており、スモールインスタンス(年間 131.40 USD)の場合、1 インスタンス時間あたり 0.015 USD から開始します。詳細については、「料金」セクションを参照してください。

Amazon EC2 スポットとの統合: Amazon EC2 スポットインスタンスでは、Amazon EC2 の能力の価格をお客様が指定できます。特定のインスタンスタイプを実行するためにお客様が支払いたい最大時間料金を指定することができます。入札価格がその時点のスポット価格を上回っている間はインスタンスを使用し続けることができ、通常はオンデマンド価格の何分の 1 かの支払いで済みます。スポット価格は、インスタンスの需要と供給の関係に基づいて変動します。しかしお客様が、指定した上限価格を超える金額を支払うことはありません。Amazon EMR では、スポットインスタンスの使用が簡単になるため、時間と費用の両方の節約が実現します。Amazon EMR クラスターには HDFS を実行する「コアノード」と、実行しない「タスクノード」があります。スポット価格が上がってインスタンスが失われる場合を考慮すると、HDFS に保管されたデータを失わないためにスポットにはタスクノードが適しています。(コアノードとタスクノードの詳細。)

Amazon EC2 リザーブドインスタンスとの統合: Amazon EC2 リザーブドインスタンスでは、伸縮自在なコンピューティングの利点はそのままで、コストの削減と容量の予約が可能です。リザーブドインスタンスを使用すれば、低額の1度限りの予約金を支払うことによって、そのインスタンスの時間当たりの使用料金について、大幅な割引を受けることができます。Amazon EMR では、リザーブドインスタンスの活用を簡単に行えるため、オンデマンド価格と比較して最大 65% の節約が実現します。

伸縮自在性: Amazon EMR では能力を簡単に追加、削除できるので、余剰の能力をプロビジョニングする必要はありません。たとえば、今後半年の間にクラスターで扱うデータ量が分からない場合や、または処理ニーズが急激に増える可能性があるとします。Amazon EMR ではいつでも簡単に能力を追加、削除できるため、今後の要件を予測する必要も、ピーク需要に備える必要もありません。

Amazon S3 Integration: EMR クラスターは、EMR File System(EMRFS)によって、Hadoop のオブジェクトストアとして Amazon S3 を効率的かつ安全に使用できます。データを Amazon S3 に保存し、複数の Amazon EMR クラスターを使用して同じデータセットを処理できます。各クラスターは特定のワークロードに最適化できるため、1 つのクラスターで要件の異なる複数のワークロードを処理するより効率的です。たとえば、I/O に最適化されたクラスターと、CPU に最適化されたクラスターで、それぞれ Amazon S3 の同じデータセットを処理することができます。さらに、入力および出力データを Amazon S3 に保管することで、不要になったクラスターをシャットダウンすることができます。 

EMRFS は、Amazon S3 からの読み取りと S3 への書き込みのパフォーマンスが優れており、AWS Key Management Service (KMS) またはカスタマー管理型のキーを使用した S3 サーバー側または S3 クライアント側の暗号化をサポートしています。また、メタデータで追跡されたオブジェクトのリストと書き込み後の読み取りの整合性をチェックする、オプションの整合性のあるビューを提供しています。また、Amazon EMR クラスターは、EMRFS と HDFS の両方を使用できるので、クラスターのストレージと Amazon S3 のいずれかを選択する必要はありません。

Amazon EMR では、Amazon S3、Hadoop Distributed File System(HDFS)、Amazon DynamoDB を含む複数のデータストアを利用できます。

DetailsPage_EMR-Diagram

Amazon S3: Amazon S3 は、耐久性の高い、スケーラブル、安全、高速、かつ低価格で使用できるストレージサービスです。Amazon EMR は、EMR File System(EMRFS)によって、Hadoop のオブジェクトストアとして Amazon S3 を効率的かつ安全に使用できます。Amazon EMR では、Amazon S3 に保管された大量のデータをシームレスに処理できるよう Hadoop に多数の改善点を追加しました。また、EMRFS では、整合性のあるビューを使用して、Amazon S3 のオブジェクトのリストと書き込み後の読み取りの整合性をチェックできます。EMRFS では、暗号化された Amazon S3 オブジェクトの処理に S3 サーバー側または S3 クライアント側の暗号化をサポートしており、AWS Key Management Service (KMS) またはカスタムキーベンダーを使用できます。

クラスターを起動すると、Amazon EMR は Amazon S3 からデータをクラスター内の各インスタンスにストリームし、ただちに処理を開始します。Amazon S3 にデータを保管して Amazon EMR でそれを処理するメリットの 1 つは、複数のクラスターを使用して同じデータを処理できる点です。例えば、メモリに合わせて最適化された Hive 開発クラスターと、CPU に合わせて最適化された Pig 運用クラスターがあり、いずれも同じ入力データセットを使用しているとします。

Hadoop Distributed File System (HDFS): HDFS は、Hadoop のファイルシステムです。Amazon EMR の現行のトポロジグループのインスタンスは、次の 3 つの論理インスタンスのグループ、つまり YARN リソースマネージャおよび HDFS 名前ノードサービスを実行するマスターグループ、HDFS データノードデーモンおよび YARN ノードマネージャサービスを実行するコアグループ、YARN ノードマネージャサービスを実行するタスクグループに属します。Amazon EMR では、コアグループのインスタンスに関連付けられたストレージに HDFS がインストールされます。

各 EC2 インスタンスは、「インスタンスストア」と呼ばれる、インスタンスにアタッチされた固定容量のストレージを備えています。また Amazon EBS ボリュームをインスタンスに追加することで、インスタンスのストレージをカスタマイズすることもできます。Amazon EMR では、汎用 (SSD)、プロビジョンド (SSD)、マグネティックのボリュームタイプを追加できます。EMR クラスターに追加された EBS ボリュームでは、クラスターがシャットダウンした後はデータを維持しません。EMR ではクラスターが終了すると、自動的にボリュームがクリーンアップされます。

Hadoop Key Management Server またはお客様自身のキープロバイダーを使用して、HDFS での透過的暗号化を有効にすることもできます。

Amazon DynamoDB: Amazon DynamoDB は高速な完全マネージド型の NoSQL データベースサービスです。Amazon EMR は Amazon DynamoDB と直接統合しているため、すばやく効率的に Amazon DynamoDB に保存されたデータを処理し、Amazon EMR で Amazon DynamoDB、Amazon S3、HDFS の間のデータを転送できます。

その他の AWS データストア: Amazon EMR のユーザーは、Amazon Relational Database Serviceクラウドでリレーショナルデータベースを簡単にセットアップ、運用、拡張できるウェブサービス)、Amazon Glacier(ストレージのセキュリティと耐久性を特徴としたデータのアーカイブやバックアップに適したきわめて低コストのストレージサービス)、Amazon Redshift(高速で完全管理型のペタバイト規模のデータウェアハウスサービス)も使用できます。AWS Data Pipeline は、AWS のコンピューティングサービス、ストレージサービス(Amazon EMR も含め)、オンプレミスのデータソース間で、データを指定間隔で確実に移動および処理するためのウェブサービスです。

Amazon EMR では Hive、Pig、HBase、および Impala などのパワフルかつ実績のある Hadoop ツールをサポートしています。また、Hadoop MapReduce に加えて、Spark や Presto などのブートストラップアクションを使用する分散コンピューティングフレームワークを実行できます。クラスターで動作するアプリケーションとやり取りする際の GUI として、Hue と Zeppelin を使用することもできます。

Hive はオープンソースのデータウェアハウスであり、Hadoop の上で稼働する分析パッケージです。Hive は SQL ベースの言語である Hive QL で運用され、データの構造化、集約、問い合わせを行うことができます。Hive QL は標準的な SQL を超えるものであり、map/reduce 関数や、JSON や Thrift といった複雑で拡張可能なユーザー定義のデータタイプを完全にサポートしています。この能力により、テキスト文書やログファイルといった、複雑で構造化されていないデータソースの処理が可能となります。Hive では Java で書かれたユーザー定義の関数を使用したユーザー拡張が可能です。Amazon EMR では Amazon DynamoDB や Amazon S3 との直接統合など、Hive に多数の改善点を追加しました。たとえば、Amazon EMR では Amazon S3 から自動的にテーブルパーティションを読み込んだり、一時ファイルを使用せずに Amazon S3 のテーブルにデータを書き込んだり、カスタム map/reduce 操作のスクリプトや追加のライブラリといった Amazon S3 のリソースにアクセスしたりすることができます。Hive と Amazon EMR の詳細

Pig は Hadoop の上で実行されるオープンソースの分析パッケージです。Pig は SQL に類似した言語である Pig Latin で運用され、データの構造化、集約、問い合わせを行うことができます。Pig Latin では、SQL に類似した操作と同様、map/reduce 関数および複雑で拡張可能なユーザー定義のデータタイプのためにも、優れたサポートが提供されます。この能力により、テキスト文書やログファイルといった、複雑で構造化されていないデータソースの処理が可能となります。Pig では Java で書かれたユーザー定義の関数を使用したユーザー拡張が可能です。Amazon EMR では、複数のファイルシステムの使用(Pig は通常 1 つのリモートファイルシステムにのみアクセス可能)、カスタム JAR や Amazon S3 からのスクリプトの読み込み(例: 「REGISTER s3:///my-bucket/piggybank.jar」)、文字列と日時の処理に関する追加機能など、Pig に多数の改善点を追加しました。Pig と Amazon EMR の詳細

HBase は、Google の BigTable に基づいて設計されたオープンソースのリレーショナルでない分散データベースです。Apache Software Foundation の Hadoop プロジェクトの一部として開発され、Hadoop Distributed File System (HDFS)上で動作して、BigTable に似た機能を Hadoop で実現します。HBase では、列ベースの圧縮および保存を使用することにより、障害に強く効率的な方法で大量のスパースデータを保存できます。さらに、データがディスクではなくメモリに格納されるので、データ検索が迅速に実行されます。HBase は、シーケンシャル書き込み操作用に最適化されており、バッチ挿入、更新、および削除処理も非常に効率的です。HBase は、Hadoop のファイルシステムを共有して、Hadoop ジョブに対する直接入力および出力として機能することで、Hadoop とシームレスに連携します。また、HBase テーブルに対する SQL のようなクエリ、Hive ベースのテーブルとの結合、および Java Database Connectivity(JDBC)を有効にすることで、Apache Hive とも統合されます。Amazon EMR では HBase を Amazon S3 にバックアップでき、以前に作成したバックアップからの復元も可能です。HBase と Amazon EMR の詳細

Phoenix により、低レイテンシーの SQL が Apache HBase に保存されているデータに対して ACID トランザクション機能を使用できるようになります。パフォーマンスを高めるためにセカンダリインデックスを簡単に作成し、同一の基盤となる HBase テーブルでさまざまなビューを作成できます。Amazon EMR における Phoenix の詳細

Impala は、SQL 構文を使用したインタラクティブなアドホッククエリを行う Hadoop エコシステムのオープンソースツールです。このツールでは、従来のリレーショナルデータベース管理システム (RDBMS) にある超並列処理 (MPP) エンジンに類似した MPP が MapReduce の代わりに活用されます。このアーキテクチャでは、HDFS または HBase テーブルのデータを非常にすばやくクエリできるほか、多様なデータ型を処理するだけでなく実行時にスキーマを提供する Hadoop の機能を活用することができます。このため、Impala を利用して、インタラクティブでレイテンシーが短い分析を行うことができます。また、このアプリケーションでは Java および C++ のユーザー定義関数をサポートするほか、ODBC および JDBC ドライバーを介して BI ツールに接続することができます。Impala は Hive メタストアを使用して、パーティション名およびデータ型などの入力データに関する情報を保管します。Implala と Amazon EMR の詳細

HUE は Hadoop 用のオープンソースのユーザーインターフェイスで、Hive クエリの実行と開発、HDFS のファイルの管理、Pig スクリプトの実行と開発、およびテーブルの管理を簡単に行えます。また Amazon EMR の HUE を Amazon S3 と統合し、Amazon S3 に対して直接クエリを発行することや、HDFS と Amazon S3 間で簡単にファイルを転送することができます。HUE と Amazon EMR の詳細

Spark は、容量の大きなデータセットを高速に処理するための、Hadoop エコシステムのエンジンです。インメモリの耐障害性のある RDD (Resilient Distributed Datasets)、および DAG (Directed Acyclic Graphs) を使用してデータ変換を定義します。Spark には、Spark SQL、Spark Streaming、MLlib、および GraphX も含まれています。Amazon EMR における Spark の詳細

Prestoは、低レイテンシーでアドホックなデータ分析用に最適化されたオープンソースの分散 SQL クエリエンジンです。ANSI SQL 標準をサポートしており、複雑なクエリ、集計、結合、ウィンドウ関数を実行できます。Presto を使用して、Hadoop Distributed File System (HDFS) や Amazon S3 など、複数のデータソースのデータを処理できます。Amazon EMR における Presto の詳細

Zeppelin は、Spark を使用してデータ探索を実行するインタラクティブな共同作業用のノートブックを作成するためのオープンソースの GUI です。Scala、Python、SQL (Spark SQL を使用)、または HiveQL を使用してデータを操作し、結果を迅速に視覚化できます。Zeppelin ノートブックは複数のユーザー間で共有可能で、視覚化した結果を外部のダッシュボードに公開できます。Amazon EMR における Zeppelin の詳細

Oozie は Hadoop のワークフロースケジューラーです。Oozie を使用して、アクションの Directed Acyclic Graphs (DAG) を作成できます。また、Hadoop ワークフローをアクションまたは時間で簡単にトリガーできます。Amazon EMR における Oozie の詳細

Tez は、最適化されたクエリプランと強化されたリソース管理からの高速なパフォーマンスを提供する Hadoop YARN に対する実行フレームワークです。Tez は Hadoop MapReduce ではなく Apache Hive および Apache Pig との併用が可能で、Tez UI を使用して実行計画を可視化できます。Amazon EMR における Tez の詳細

その他: Amazon EMR では、R、Mahout(機械学習)、Ganglia(モニタリング)、Accumulo(安全な NoSQL データベース)、Sqoop(リレーショナルデータベースコネクタ)、HCatalog(テーブルおよびストレージ管理)といった他の人気のあるさまざまなアプリケーションやツールをサポートしています。Amazon EMR チームはブートストラップアクションのオープンソースリポジトリを保守しています。このリポジトリは、追加ソフトウェアのインストールやクラスターの構成を行うために使用でき、独自のブートストラップアクションを作成する際のサンプルにもなります。

MapR ディストリビューションの使用: MapR は、ミッションクリティカルでリアルタイムの本番用途を幅広くサポートする、実績のあるエンタープライズグレードのプラットフォームを備えた Hadoop を提供します。MapR により、かつてない信頼性と使いやすさ、世界最高クラスのスピードが、1 つの統合ビッグデータプラットフォーム内の Hadoop、NoSQL、データベースアプリケーション、およびストリーミングアプリケーションで実現します。Amazon EMR での MapR の使用の詳細

クラスターの調整: クラスターにプロビジョニングする EC2 インスタンスの種類(スタンダード、ハイメモリ、ハイ CPU、ハイ I/O など)を、ご使用のアプリケーションの要件に基づいて選択します。お客様はすべてのインスタンスへのルートアクセス権限を持ち、お客様の要件に合わせてクラスターを自在にカスタマイズできます。サポートされる Amazon EC2 インスタンスタイプの詳細

アプリケーションのデバッグ: クラスターでデバッグを有効にすると、Amazon EMR によってログファイルが Amazon S3 にアーカイブされ、そのログファイルにインデックスが付けられます。その後、グラフィカルインターフェイスを使用して、ログを直観的な方法で閲覧できます。Amazon EMR ジョブのデバッグの詳細

クラスターの監視: Amazon CloudWatch を使用して、Map と Reduce タスクの平均実行数など、23 のカスタム Amazon EMR メトリックスを監視できます。また、これらのメトリックスにアラームを設定することもできます。Amazon EMR クラスターのモニタリングの詳細

繰り返し発生するワークフローのスケジュール設定: AWS Data Pipeline を使用して Amazon EMR に関連する繰り返しのワークフローをスケジュールできます。AWS Data Pipeline は、AWS のコンピューティングサービスやストレージサービス、およびオンプレミスのデータソースの間で、データを指定した間隔で確実に処理および移動するのに役立つウェブサービスです。Amazon EMR と Data Pipeline の詳細

Cascading: Cascading は、Hadoop MapReduce アプリケーションの作成と実行に使用するクエリ API、クエリプランナー、およびジョブスケジューラーを提供するオープンソースの Java ライブラリです。Cascading を使用して開発されたアプリケーションは、他のネイティブ Hadoop アプリケーションと同様に、コンパイルおよびパッケージ化されて標準的な Hadoop 互換 JAR ファイルになります。Cascading と Amazon EMR の詳細

クラスターへのネットワークアクセスの制御: AWS クラウドの論理的に分離されたセクションである Amazon Virtual Private Cloud(VPC)でクラスターを起動することができます。独自の IP アドレス範囲の選択、サブネットの作成、ルートテーブルやネットワークゲートウェイの設定など、仮想ネットワーク環境を完全にコントロールできます。Amazon EMR と Amazon VPC の詳細

ユーザー、アクセス権、および暗号化の管理: IAM Users and Roles などの AWS Identity and Access Management (IAM) ツールを使用してアクセスと権限を制御できます。例えば、特定のユーザーに対してクラスターへの読み取りを許可するが書き込みのアクセス権は与えない、ということが可能になります。また、Amazon EMR によって処理される Amazon S3 またはオンクラスター HDFS のデータにさまざまな暗号化オプションを使用できます。クラスターへのアクセス制御EMRFS 暗号化オプション、および HDFS の透過的暗号化の詳細。

追加のソフトウェアのインストール: ブートストラップアクションを使用することにより、追加のソフトウェアのインストール、およびクラスターのアプリケーションの設定変更を行うことができます。ブートストラップアクションとは、Amazon EMR がクラスターを起動したときにクラスターノードで実行されるスクリプトのことです。ブートストラップアクションは、Hadoop の開始前、およびノードによるデータ処理の開始前に実行されます。カスタムブートストラップアクションを記述することも、Amazon EMR によって提供される、事前に定義されたブートストラップアクションを使用することもできます。Amazon EMR ブートストラップアクションの詳細

データの効率的なコピー: オープンソースツール Distcp の拡張である Amazon EMR の S3DistCp では MapReduce を使用して大量のデータを効率的に移動させることができ、これを使用すれば大量のデータを Amazon S3 から HDFS、HDFS から Amazon S3、Amazon S3 バケット間ですばやく移動させることができます。S3DistCp の詳細

Hadoop ストリーミング: Hadoop ストリーミングは、Hadoop に付属しているユーティリティの 1 つであり、Java 以外の言語で MapReduce 実行可能ファイルを作成できるようになります。ストリーミングは JAR ファイルとして実装されます。Amazon EMR を使った Hadoop ストリーミングの詳細

Custom Jar: Java プログラムを書き、使用する Hadoop のバージョンにコンパイルして Amazon S3 にアップロードします。その後、Hadoop JobClient インターフェイスを使用して Hadoop ジョブをクラスターに送信します。Amazon EMR を使った Cusom Jar の処理の詳細

Amazon EMR は、以下のようなさまざまなサードパーティ製ソフトウェアツールと組み合わせて使用できます。

データ転送

モニタリング

パフォーマンスの調節

Graphical IDE

Hadoop ディストリビューション

BI/ビジュアライゼーション

ビジネスインテリジェンス

データ調査

BI/ビジュアライゼーション

Graphical IDE

BI/ビジュアライゼーション