AWSの導入を進めている企業は増えてきており、AWSに携わるエンジニアも増えてきていますが、「Amazon EMR」というサービスについてはどのような機能か把握出来ていない方も多いのではないでしょうか。
本記事では、ビッグデータの解析に利用出来るAWSサービス「Amazon EMR」についてご紹介していきます。
AWSのサービス Amazon EMRとは
Amazon EMRは、Amazon Elastic MapReduceの略称で、Apache SparkやHive、 Prestoなどのビッグデータワークロードを簡単に実行するためのプラットフォームです。
オープンソースのソフトウェアを活用して大量のデータを迅速に処理・分析し、機械学習に適用することが出来ます。
概要
Amazon EMRでは「分散アプリケーション」と「分散処理基盤」により、ビッグデータを扱います。
Hadoopクラスター上で分散アプリケーションを実行するための構築や運用が簡単な操作だけで実現出来ます。
また分散処理基盤という機能が採用されており、サーバーや通信に必要となる回線の運用やクラスターの設定など従来であれば手間の掛かる作業だったものをAmazon EMRに任せることが出来るようになるのです。
用語一覧
Amazon EMRを理解する上では欠かせない関連用語についても確認しておきましょう。
- クラスター
- MapReduce
- Hadoop
- Spark
クラスター
EC2インスタンスのグループを指し、クラスターグループのインスタンスをノードと呼びます。
ノードには「マスターノード」「コアノード」「タスクノード」の3種類に分かれ、マスターノードがクラスターグループのリーダー的な役割です。
最小限マスターノードは必要で、Hadoop File Systemにデータを保存するコアノードや、タスクの実行だけが可能なタスクノードはオプションで利用出来ます。
MapReduce
ビッグデータを効率的に分散処理するために、グーグルが開発したプログラミングモデルで、2004年に導入されました。
処理の計算工程を「Map」と「Reduce」の2ステップで構成されています。
処理は上述したクラスター上で実施され、キーと値のペアに変換する「mapping」から中間処理にあたる「Shuffling」「sort」「combine」の処理を経由して、マスターノードへ送る「reducing」と順に処理が行われます。
Hadoop
上述したHadoop File SystemとMapReduceなどにより構成されたビッグデータの分散処理を行うオープンソースソフトウェアがHadoopです。
Hadoopはフレームワークやプログラム基盤に位置づけられ、ビッグデータに対する処理速度向上のために利用されます。
Spark
同じく分散処理基盤のオープンソースとして提供されているのが「Spark」で、データの格納場所をHDDやSSDではなくメモリに展開することにより、Hadoopよりも処理速度が大幅に上がっています。
Hadoopが苦手とするリアルタイム処理を得意としており、同じデータを何度も利用するような処理で最適なプラットフォームです。
HadoopとSparkは相互利用することで、お互いの得意分野を活かすことが可能で、高速で安全なシステムを安価で構築出来るようになります。
AWS EMRの特徴
ビッグデータの解析にAmazon EMRを利用するメリットとサービスの特徴についても確認していきましょう。
低コスト
Amazon EMRの目的として、ビッグデータの処理にかかるコストを削減することが挙げられています。
従量課金制が採用されており1秒単位での課金となり、上限を設定しておけば支払額が超えることはありません。
利用料は低価格に設定されており、スモールインスタンスを使用している場合、0.015USD/時間から利用を始めることが可能です。
使いやすさ
Amazon EMR Notebookという機能を利用することで、チーム内で共同作業をしながらデータの可視化・分析を進めることが出来ます。
クラスターの設定やプロビジョニングはAmazon EMRが行ってくれるため、ユーザーはデータ分析に集中することが可能です。
柔軟性
Auto Scalingの機能により、クラスターサイズを自動的に調整してくれる点も大きな特徴です。
プロビジョニング結果によって利用するインスタンス数も簡単に増減させることが出来ます。
またAmazon EMRではクラスターの再起動をせずにアプリケーションを再構築することが出来る点もメリットです。
安全性
Amazon EMRでは送受信時や認証の暗号化などを簡単に利用することができ、安全性の高いサービスといえます。
ファイアーウォールの設定に関してもAmazon EMRが自動的に構成してくれるため、セキュアな環境を維持することが可能です。
AWS EMRの利用用途
では実際にAmazon EMRがどのような利用用途で活用されるのかご紹介しておきましょう。
機械学習
「Apache Spark MLlib」や「Apache MXNet」といった機械学習ツールがAmazon EMRには組み込まれているため、簡単な設定で利用することが可能です。
Amazon EMRでは、分散処理基盤を活用したビッグデータの高速分析が可能ですので、スケーラブルな機械学習のアルゴリズムを実行することが出来ます。
またAWSの統合開発環境である「Amazon SageMaker Studio」に接続することで、分析・レポート作成・モデルトレーニングなどを実行することも可能です。
大規模データ変換
Amazon EMRでは、ビッグデータに対するデータ抽出や変換・読み込みといったワークロードを分散処理基盤を活用して効率的に実施することが出来ます。
AWSの低コスト運用によりコストを抑えた上で効率的な処理が実施でき、自動化も簡単に設定出来ることから業務効率が大幅に向上することが期待出来ます。
リアルタイムストリーミング
「Apache Flink」と「Apache Spark Streaming」を組み合わせることで、Amazon Kinesisなどといった規定のデータソースからストリーミングされるデータをリアルタイムに分析することが出来るようになっています。
また耐障害性と高可用性を備えたストリーミングデータのパイプラインをAmazon EMRに構築することが可能です。
変換済みのデータセットに関しても他のAWSサービス(S3など)を活用することで、永続的にデータを保存することが出来るため、長期に渡り業務分析に活かすことが出来ます。
さいごに: AWS EMRを使ってビッグデータ分析を手軽に始めよう
本記事では、ビッグデータの分析に活用出来るAWSのサービス「Amazon EMR」についてご紹介してきました。
ビッグデータ分析というと、複雑な設定が必要で知識はもちろん時間的なコストも高いと感じる企業も多いかと思いますが、Amazon EMRを利用したビッグデータ分析であれば従来に比べてかなり手軽に始められるようになっています。
Amazon EMRを利用してビッグデータの分析を自動化・簡略化し、これまで敷居の高かったビッグデータの分析を利用してぜひ業務効率化を図ってみてください。