🐣

Amazon EMRとは何だ

に公開

EMRとは

「ビッグデータ処理に必要な多様なフレームワークを簡単に呼び出せる」ツールなのだろうと思う。

概要

  • ビッグデータを活用する際に良く使用されるフレームワークがいくつかある。
  • 例えば、
    • Apache Spark:
      クラスタコンピューティング(複数のマシンで処理分散してコードを実行する)用のフレームワーク。

    • Trino:
      複数の異なるデータソース(S3やRedShiftなど)にある大規模なデータをクエリ(絞り込み抽出などが)できるオープンソースの分散SQLクエリエンジン
      ・・・他、こうしたフレームワークが無限にあると思われる。

    • 普通はビッグデータ処理(DBからデータを取り出して→データを整形→分析)の中でそれぞれの段階に適したフレームワークを呼び出して使いながらデータの処理・分析をするが、複数のフレームワークをあちこち使うので手間がかかっていた。そこでEMRは、こうしたフレームワークを簡単に呼び出すことができるようにしました。ということらしい。さらにDBも紐づけられるのでデータの取り出し等も簡単にできるし、DBはS3などのスケールアウトをできるようにしているのでビッグデータが増えていっても大丈夫、、云々各特徴が述べられている。

上記の理解に至るまで

  • 色々な解説記事を読んだが、DBの一種、オーケストレーションサービス、複数のデータストア(S3やRedShiftやHDFS)を活用できる、、、云々。おそらくEMRの一面を説明しているのだが結局なんのサービスかわからない。
  • こういうときは信頼できるリソースに当たってみないと始まらないので探すと、Re:InventにてEMRが初めて発表されたときのスピーチを書き起こした記事があった。これを見れば簡単に何がしたいのか説明していそう。
  • 後半は特徴を話していてスケーラビリティ云々なので重要じゃなかった。
  • 具体例がわかりやすいかもと思い導入事例部分を読んだが、「データ量が2倍になったにも関わらずコストが削減された」云々、、どんなサービスなのかを知ることはできず。
  • もう少し手前のサービス概要でまとまっているはずだと思い、読むと、以下の要約を発見

データ処理・分析サービスの重要な部分を担っているのがAmazon EMRです。Amazon EMRは、Apache SparkとTrinoのパフォーマンス最適化ランタイムを提供し、ビッグデータや分析において最高の価格性能比を実現します。

  • データ処理・分析サービスって何を示しているのか知らないので、続く「Apache SparkとTrinoのパフォーマンス最適化ランタイムを提供」に注目。それぞれ聞いたことがないサービスなので調べると、ビッグデータ処理に使うフレームワークのようだ。
  • もう少し前の方を読んでいくと、

クエリ分析には、TrinoなどのSQLエンジンを使用できます。Managed Workflow for Apache Airflowを使用すれば、インフラストラクチャを管理することなく、これらの異なるツールやソフトウェアを全てオーケストレーションできます。

  • 「これらの異なるツールやソフトウェアを全てオーケストレーションできます。」とあるので、異なるツールというのは先ほどのフレームワークのことなのだろうと思う。これらをオーケストレーションできるというのは好きに呼び出して使えるということなので、こうしたフレームワークを今までオーケストレーションするものがなかったが、EMRがそれを実現したよ。ということか。
  • 以上です。もっと色々書いてあったのですが大体概要が知れたらよかったので読んでいません。。
  • 理解が間違えていたらコメントで教えてください。

参考

https://zenn.dev/kiiwami/articles/0dce5781f709ec8d

Discussion