Amazon EMR
- Amazon EMRというAWSの分散処理フレームワーク提供サービスがある
- 分散処理フレームワークとは、複数のマシンを並列処理することにより大量のデータ処理を短時間で実行できるようにすることができるものである
- 大量のデータとは、例えばアクセスログなどである。ログデータ一つ一つに対して処理を実行する場合、処理速度を10倍にするにはスケールアップにより1台のサーバの性能を10倍にするか、スケールアウトにより複数台のサーバで合計10倍の性能とする方法が考えられる。ログデータが日毎や時間毎に分割されているようなケースであれば、スケールアウトのほうがフィットする。その場合に、分散処理フレームワークの利用がフィットする
- Amazon EMRは、過去に「Amazon Elastic MapReduce」というサービスで提供されていた経緯から命名されている
- EMRのアーキテクチャは次の通り
- EMRは「分散処理基盤」と「分散処理アプリケーション基盤」の2つの機能で構成されている
- EMRは、マスターノード・コアノード・タスクノードという3種類のノードで構成されている
- コアノードを利用して実際のジョブ(処理)を実行する
- タスクノードも実際のジョブ(処理)を実行するが、データ保存領域を持たない
- コアノードなしにタスクノードのみの構成にすることはできない
- マスターノードはコアノード・タスクノードにジョブを振り分ける
- EMRは分散処理基盤として機能する
ETLツール
Kinesis
- Data Streams・Data Firehose・Video Streams・Data Analyticsなど様々な機能がある
- Data Streamsを利用すると、センサーやログなどのストリームデータを変換し、S3バケットやDynamoDBテーブルなどへ格納することができる
Data Pipeline
- オンプレやAWS上の特定の場所へ定期的にアクセスし、S3やRDSなどへ流す
Glue
- S3やDynamoDBなどのデータソースをクロールし、Redshiftに変換して格納するといったことができる
Amazon Athena
- S3内のデータを直接クエリできるサービスである
- 内部的には、PrestoというオープンソースのSQLクエリエンジンが利用されている
Amazon QuickSight
- データの可視化ツールである
- RDB、Redshift、Athenaなどのデータソースと接続し、UIコンポーネントと関連付けて分かりやすく状況が確認できるダッシュボードを作ることができる