伸縮性

Amazon EMR では、必要なキャパシティーを迅速かつ簡単にプロビジョニングでき、キャパシティーを自動または手動で追加、削除できます。これは、処理要件が変動しやすい、または予測不可能な場合に非常に便利です。例えば、処理のほとんどが夜間に発生する場合、日中は 100 個のインスタンス、夜間は 500 個のインスタンスが必要になることがあります。または、短期間に大量のキャパシティーが必要な場合もあるかもしれません。Amazon EMR では、数百、数千個のインスタンスをすばやくプロビジョニングし、コンピューティング要件に合わせて自動的にスケールし、ジョブが完了したら (アイドル状態のキャパシティーに対する支払いを避けるために) クラスターをシャットダウンできます。

elastic

キャパシティーの追加と削除には、以下の主な 2 つのオプションがあります。

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

実行中のクラスターのサイズ変更: Amazon EMR では、実行中のクラスターの自動スケーリング手動によるサイズ変更が簡単に行えます。アイドル状態のキャパシティーがある場合は、クラスターを一時的にスケールアウトする、クラスターに処理能力を追加する、またはクラスターをスケールインすることでコストを節減することもできます。例えば、バッチ処理が発生した場合に数百個のインスタンスをクラスターに追加し、処理完了後に余分なインスタンスを削除できます。クラスターにインスタンスを追加すると、EMR では、プロビジョニングされたキャパシティーを使用できるようになった時点ですぐに使い始められます。スケールイン時には、EMR によりアイドル状態のノードが積極的に選択され、実行中のジョブへの影響を軽減します。

低コスト

Amazon EMR は大量データの処理にかかるコストを節減することを目的としています。低コストを実現する特徴の例として、低料金での秒単位の課金、Amazon EC2 スポットとの統合、Amazon EC2 リザーブドインスタンスとの統合、伸縮性、Amazon S3 との統合があります。

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

Amazon EC2 スポットとの統合: Amazon EC2 スポットインスタンスでは、Amazon EC2 キャパシティーの料金をお客様が指定できます。特定のインスタンスタイプを実行するためにお客様が支払いたい最大時間料金を指定することができます。入札価格がその時点のスポット料金を上回っている間はインスタンスを使用し続けることができ、通常はオンデマンド料金の数分の一程度の支払いで済みます。スポット料金は、インスタンスの需要と供給に基づいて変動します。ただし、お客様が指定した上限価格を超える金額が課金されることはありません。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 のいずれかを選択する必要はありません。

AWS Glue データカタログの統合: AWS Glue データカタログをマネージドメタデータリポジトリとして使用して、Apache Spark や Apache Hive のために外部テーブルのメタデータを保存できます。また、スキーマの自動検出とバージョン履歴も利用できます。これによって、クラスター外部にある 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 DataNode デーモンと YARN ノードマネージャーサービスを実行するコアグループ、YARN ノードマネージャーサービスを実行するタスクグループに属します。Amazon EMR では、コアグループのインスタンスに関連付けられたストレージに HDFS がインストールされます。

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

また、Amazon EMR のセキュリティ設定を使用して HDFS の完全な暗号化を有効にすることも、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 のバージョニングリリースにより、EMR クラスターで Apache Spark と Hadoop エコシステムのアプリケーションを含む最新のオープンソースプロジェクトを簡単に選択して使用できます。ソフトウェアのインストールと設定は Amazon EMR 側で行われるため、インフラストラクチャや管理タスクを気にせずに、データの価値を高めることにより多くの時間をかけることができます。

emr-5.16.0

Hadoop ツール

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

hadoop-apps

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

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 で運用され、データの構造化、集約、クエリの実行を行えます。SQL に類似した操作と同様、Pig Latin もまた、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) 上で動作し、Hadoop に BigTable のような機能を提供します。HBase では、列ベースの圧縮と保存により、耐障害性に優れた効率的な方法で大量の疎データを保存できます。さらに、HBase ではデータがメモリ内にキャッシュされるため、データをすばやく参照できます。HBase は、シーケンシャル書き込み操作用に最適化されており、バッチ挿入、更新、削除処理も非常に効率的です。HBase は Hadoop とシームレスに連携し、ファイルシステムを共有し、Hadoop ジョブへの直接入出力として機能します。また、HBase は Apache Hive と統合されており、HBase テーブルを通した SQL のようなクエリ、Hive ベースのテーブルとの結合、Java Database Connectivity (JDBC) もサポートします。Amazon EMR を使用すれば、Amazon S3 を Apache HBase のデータストアとして使用できるため、コストを削減し、運用の複雑さを軽減できます。HDFS をデータストアとして使用する場合は、HBase を Amazon S3 にバックアップしたり、以前に作成したバックアップから復元したりすることができます。HBase と Amazon EMR の詳細

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

Impala は SQL 構文を使用したインタラクティブなアドホッククエリを行う Hadoop エコシステムのオープンソースツールです。このツールでは、MapReduce の代わりに、従来のリレーショナルデータベース管理システム (RDBMS) で用いられる超並列処理 (MPP) エンジンに類似した MPP が活用されています。Implala と Amazon EMR の詳細

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

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

Flink は高スループットのデータソースでリアルタイムなストリーミング処理を簡単に実行できる、ストリーミングデータフローエンジンです。Flink では、順不同のイベントのイベントタイムセマンティクス、1 回のみのセマンティクス、背圧制御、ストリーミングアプリケーションとバッチアプリケーションの両方の記述用に最適化された API をサポートしています。EMR での Flink の詳細

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

その他の機能

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

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

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

イベントに対応: Amazon CloudWatch Eventsの Amazon EMR イベントタイプを使用して、Amazon EMR クラスターの状態の変化に対応できます。すぐに設定できる簡単なルールを使用して、ルールに一致したイベントを Amazon SNS トピック、AWS Lambda 関数、Amazon SQS キューなどに振り分けることができます。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 の詳細

深層学習: Apache MXNet などの一般的な深層学習フレームワークを使用して、深層ニューラルネットワークを定義、トレーニング、デプロイできます。これらのフレームワークは、Amazon EMR クラスターで GPU インスタンスと共に使用できます。Amazon EMR での MXNet の詳細

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

ユーザー、アクセス権、暗号化の管理: IAM ユーザーや IAM ロールなどの AWS Identity and Access Management (IAM) ツールを使用してアクセスとアクセス許可を制御できます。例えば、特定のユーザーに対してクラスターへの読み取りを許可するが書き込みのアクセス権は与えないといった制御を行えます。また、Amazon EMR のセキュリティ設定を使用すれば、Amazon S3 暗号化への対応や Kerberos 認証など、保管中および移動中の暗号化に関するさまざまなオプションを設定できます。クラスターへのアクセス制御Amazon EMR 暗号化オプションの詳細。

追加ソフトウェアのインストール: 追加ソフトウェアをクラスターにインストールするために、ブートストラップアクションや Amazon Linux を実行しているカスタム Amazon マシンイメージ (AMI) を使用できます。ブートストラップアクションは、Amazon EMR がクラスターを起動したときにクラスターノードで実行されるスクリプトであり、Hadoop が起動され、ノードがデータ処理を開始する前に実行されます。カスタム Amazon Linux AMI にソフトウェアを事前にロードして使用することもできます。Amazon EMR のブートストラップアクションカスタム Amazon Linux AMI についての詳細。

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

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

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

サードパーティ製ツール

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

データ転送
モニタリング
パフォーマンスのチューニング
Graphical IDE
Hadoop ディストリビューション
BI/ビジュアライゼーション
ビジネスインテリジェンス
データ調査
Tableau_logo
BI/ビジュアライゼーション
logo-talend-400
Graphical IDE
200x100_Jaspersoft_Logo
BI/ビジュアライゼーション

Amazon EMR の料金の詳細

料金表のページを見る
構築を始めましょう。
Amazon EMR の開始方法
ご不明な点がおありですか?
お問い合わせ