Amazon EMR(Elastic MapReduce)は、
ビッグデータの処理・解析を簡単・スケーラブルに実行できるマネージドサービスです。
HadoopやSparkなどのオープンソースのビッグデータフレームワークを使って、大量データの処理、分析、変換、機械学習などをAWS上で簡単に実行できます。
🧠 一言でいうと…
「HadoopやSparkをAWS上で手間なく実行できるサービス」
🔧 対応している主なフレームワーク
| フレームワーク | 用途 |
|---|---|
| Apache Hadoop | 分散処理の基盤(MapReduce) |
| Apache Spark | 高速なインメモリ分散処理エンジン |
| Apache Hive | SQLライクにHadoopを操作 |
| Presto/Trino | 高速な分散SQLクエリエンジン |
| Apache HBase | 分散型のNoSQLデータベース |
| Apache Flink | ストリーム処理エンジン |
| Jupyter Notebook | データ分析・ML用のインタラクティブ環境 |
🛠️ Amazon EMRの特徴
| 特徴 | 説明 |
|---|---|
| ✅ スケーラブル | 数台〜数百台までノードを自動でスケーリング可能 |
| ✅ 安価 | スポットインスタンスでコスト削減も可能 |
| ✅ 柔軟な構成 | クラスタの構成(マスターノード、コア、タスクノード)を自由に選べる |
| ✅ S3連携 | 入出力データをS3と連携可能(EMRFS) |
| ✅ セキュア | IAMやVPC、Kerberosなどのセキュリティ機能も完備 |
| ✅ ステップ実行 | バッチ処理をステップとして順に実行できる |
🗂️ 主なユースケース
| ユースケース | 説明 |
|---|---|
| ビッグデータ処理 | ログやIoTデータのバッチ分析(Hadoop, Spark) |
| データレイク分析 | S3上のデータをPrestoやHiveで分析 |
| 機械学習 | Spark MLlibやJupyterでの分散学習 |
| ETLパイプライン | データ抽出・変換・ロード処理(Glue代替) |
📊 アーキテクチャのイメージ
S3(データ) ←→ EMRクラスタ(Spark/Hadoopなど) ←→ 分析結果をS3やRDSへ
クラスタは必要なときだけ起動して、処理が終わったら削除することもできます(コスト最適化)。
💡 他の選択肢との比較(用途別)
| 目的 | サービス | 備考 |
|---|---|---|
| 高速な分散バッチ処理 | ✅ EMR(Spark) | 柔軟かつスケーラブル |
| データ変換中心のETL | AWS Glue | ノーコードでも可能 |
| ストリーム処理 | Kinesis + Flink(on EMR) | 近リアルタイム分析 |
| データウェアハウス | Amazon Redshift | SQL分析に特化 |
✅ まとめ
| ポイント | 説明 |
|---|---|
| 何ができる? | HadoopやSparkなどを用いたビッグデータ分析 |
| 何が便利? | 自動スケーリング、S3連携、豊富なOSSサポート |
| 向いている用途 | ログ集計、機械学習前処理、大規模バッチ分析など |