(レポート) BDT208: Amazon EMRの技術紹介 #reinvent

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

平田です。EMRについて興味があったので、re:Inventのセッションをまとめてみました。

このセッションの目的

BDT208 1

  • EMRに関するの技術の紹介
  • 基本的な思想
  • EMRの特徴
  • 2PB規模のオンプレミスのHadoopクラスタからAWSへの移行についての経験
  • Spark, Hadoopなどのフレームワークについての紹介はしない

Amazon EMRについて

BDT208 2

  • Managedな環境
  • MapReduce, Apache Spark, Prestoなどが利用できる
  • 数分でクラスタを構築可能
  • オープンソースのディストリビューションとMapRに対応
  • クラウドの拡張性を最大限に利用できる
  • セキュリティに関する機能も組み込まれている
  • 時間(hour)毎の課金と任意のタイミングでの保存
  • 自由度の高い拡張

    つまり、簡単・セキュアかつ費用効果の高いデータ処理フレームワークを構築するAWSサービス

クラスタ構築に必要なステップ

  1. インスタンスの選択
  2. 利用するソフトウェアの選択
  3. アクセス方法の選択

1. EMRクラスタの構成例

BDT208 3

  • Master Node
    • 名前解決
    • リソース管理
  • Slave Node (3種類)
    • Core Node
      • 中間データの保存
    • Task Node
      • データ処理の実行
        • 最低限要求されるリソースはリザーブドインスタンスで
        • 一時的なリソース増強はスポットインスタンスで

2. インスタンスタイプの選択

  • Generalタイプ (m1, m3系)
    • バッチ処理
  • CPU タイプ (c3, cc1, cc2系)
    • 機械学習
  • Memory タイプ (m2, r3系)
    • インメモリ処理 (Spark, Presto)
  • Disk/IO タイプ (d2, i2)
    • 大容量HDFS

3. ソフトウェアの選択

  • 良く利用されるソフトウェアをまとめたQuick Bundleを提供
  • 個別にソフトウェアをインストールするカスタマイズもある
  • Hadoop系のソフトウェアが利用可能

アクセスセキュリティの設定

  • Role や Security Groupを指定する事で各ノードに制限を加える事ができる

EMRでのデータ処理

BDT208 4

  • EMRでは、様々なデータソースから処理を行うことができる
    • HDFS
    • EMRFS(S3)
    • Dynamo DB
    • Kinesis

オンプレミス環境の場合

BDT208 5

  • CPUとDiskは1セット
  • 計算量に応じて、必要となるDisk容量は増加する
  • 計算のピークに合わせて常に一定のリソースを確保しなければならない
  • 複数のソフトウェアを走らせる場合、リソースの奪い合いが起こる
    • CPUとDiskは1セットなので、一方のみを優先的に割り当てるということができない

BDT208 6

EMRの場合

EMRではこの問題をどう解決したか? -> EMRFS

BDT208 7

  • 計算資源(CPU)と記憶媒体(Storage)の分離
    • StorageにはS3を利用

BDT208 8

  • EMRFSの特徴
    • S3を記憶媒体として利用
    • S3から直接データをストリーム
    • HDFSは処理の中間で利用
    • 高いread/write性能とエラーハンドリングを実現
    • 読み取り一貫性

EMRのメリット1 : S3(Storage)との接続 / 切断

BDT208 9

  • EMRを停止してもS3上のデータは残り続ける
    • 自動停止などが可能に
    • EMRによる処理を中間としたデータパイプラインが簡単に作れる
      • 一時的な処理の際にのみEMRを利用

EMRのメリット2 : クラスタのリサイズ

BDT208 10

  • どうすればコストを抑えてクラスタを拡張できるか
    • Spot Instanceの利用
      • EMRでは、指定した価格・数量に応じて、自動的にSpot Instanceを購入する仕組みがある
        • Spot Instanceの価格設定を支援するツールも準備されている (The Spot Bid Advisor)
      • ただし、Spot Instanceは突然停止する場合がある。
        • Task Nodeとしての利用なら、停止の影響は少ない
          • 別ノードでジョブを再実行することでリカバリ可能
      • スポットインスタンスを有効に用いることで、処理時間の短縮と費用の削減を両立できる
      • 計算量に応じた柔軟なリソース割り当て

BDT208 11

EMRの特徴まとめ

BDT208 12

  • 高速なクラスタのプロビジョニング
  • Hadoop,Spark,Prestoなどのアプリケーションの利用
  • 標準的なOSSのパッケージング
  • 計算リソースとストレージの分離 / 個別のスケーリング
  • 要求に応じたクラスタのリサイズ
  • Spot Instanceを利用したコスト削減

おわりに

EMRの特徴や構成・機能の詳細について非常によくまとまっていて、勉強になりました。