Más contenido relacionado
La actualidad más candente (20)
Similar a Serverless analytics on aws (20)
Más de Amazon Web Services Japan (20)
Serverless analytics on aws
- 1. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Makoto Shimura, Analytics Specialist SA
2018.10.05
Serverless Analytics on AWS
- 2. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
自己紹介
志村 誠
アナリティクススペシャリスト ソリューションアーキテクト
• データ分析・機械学習系サービスを担当
• 前職はログ解析基盤構築・データ分析等
• 好きなサービス
• Amazon Athena
• AWS Glue
• Amazon SageMaker
- 3. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Agenda
• サーバーレスとは?
• AWS のサーバーレス分析サービス
• サーバーレス分析のアーキテクチャパターン
• 他サービスとの使い分け
• 下回りを気にしない機械学習
- 4. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サーバーレスとは?
サーバーを気にすることなく
アプリケーションを構築し実行
- 5. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
コンピューティングの進化
データセンタ内の
物理サーバ
データセンタ内の
仮想サーバ
クラウド上の
仮想サーバ
- 6. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
コンピューティングの進化
データセンタ内の
物理サーバ
データセンタ内の
仮想サーバ
クラウド上の
仮想サーバ
・高い使用率
・プロビジョニング速度
の改善
・改善されたアップタイム
・ディザスターリカバリ
・ハードウェアの独立性
・投資コストと運用コスト
のトレード
・よりスケール
・より早い開発スピード
・メンテナンスの削減
・より高い可用性と耐障害性
- 7. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
いまだ残る制限
クラウド上の
仮想サーバ
・仮想マシンの管理が必要
・キャパシティや利用率の管理が必要
・ワークロードのサイズを変更が必要
・可用性や耐障害性を管理する必要
・断続的なジョブを実行するには高コスト
- 8. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サーバーレスへの進化
サーバーレス
クラウド上の
仮想サーバー
データセンター内の
物理サーバー
データセンター内の
仮想サーバー
- 9. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サーバーは管理しないほうが簡単
こういった責任からの開放
プロビジョニングと利用
可用性と耐障害性
スケーリング
運用と管理
- 10. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サーバーレスはよりセキュア
・パッチが適用されていない
サーバーは存在しない
・SSH不要 / 不可
・すべてのリクエストは認可され,
監査可能
- 11. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サーバーレスな分析とは?
下回りを気にせず,やりたいことに集中
• データ収集: 設定だけで,あとは自動でデータを収集
• データ管理: データのスキーマを自動で登録・更新
• ETL: 処理を記述したスクリプトだけで,前処理を実行
• クエリ: SQL だけで自由に分析
• 可視化: ブラウザから簡単に GUI で可視化
- 12. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS のサーバーレス分析サービス
- 13. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS の分析サービス
Amazon Kinesis
Data Streams
収集 管理 ETL 分析・可視化 機械学習
AWS Glue
Amazon Kinesis
Data Firehose
Amazon EMR
AWS Glue
AWS Data
Pipeline
Amazon Athena
Amazon Redshift
Amazon Kinesis
Data Analytics
Amazon ES
Amazon
QuickSight
Amazon SageMaker
- 14. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS のサーバーレス分析サービス
Amazon Kinesis
Data Streams
収集 管理 ETL 分析・可視化 機械学習
AWS Glue
Amazon Kinesis
Data Firehose
Amazon EMR
AWS Glue
AWS Data
Pipeline
Amazon Athena
Amazon Redshift
Amazon Kinesis
Data Analytics
Amazon ES
Amazon
QuickSight
Amazon SageMaker
- 15. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Kinesis Data
フルマネージド型リアルタイム大規模ストリーミング処理
KDS: ストリームデータを収集し,後段で各種分析やデータ保存を実施
KDF: ストリームを収集し,S3 / Redshift / ES / Splunk に簡単に配信
KDA: 上記 2 つからストリームデータを取得して SQL を実施
Amazon Kinesis
Data Streams
Amazon Kinesis
Data Firehose
Amazon Kinesis
Data Analytics
* Kinesis Processing Unit,1 KPU は 4GB メモリ,1 vCPU,
および対応するネットワーク能力を表す
- 16. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Kinesis Data
サーバーレスによってストリームデータの収集・配信・分析のみに集中
KDS: 利用シャード数を指定してリソースを確保
KDF: データ量に応じて自動でスケール
KDA: クエリ実行時のリソースを KPU* として確保
Amazon Kinesis
Data Streams
Amazon Kinesis
Data Firehose
Amazon Kinesis
Data Analytics
* Kinesis Processing Unit,1 KPU は 4GB メモリ,1 vCPU,
および対応するネットワーク能力を表す
- 17. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Glue
完全マネージド型 ETL サービス
大規模データに対して,Spark / Python ジョブによる ETL を実行
データカタログを持ち,入力 / 出力のデータソースを管理
定期的にクローラーを走らせることで,データソースのスキーマを更新
多段のジョブフローを定義して,スケジュール実行
- 18. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Glue
サーバーレスによってデータソースの管理と ETL のみに集中
Spark ジョブを実行するためのクラスターを管理・運用する必要なし
Python ジョブも同様に実行環境を意識する必要はない
ジョブ実行時に必要なリソースは,DPU として指定すれば自動で確保
クローラーやスケジューラ,ワークフローもすべて Glue が管理
* Data Processing Unit,1 DPU につき 16 GB メモリ
4 vCPU が割り当てられる
- 19. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Athena
インタラクティブなクエリサービス
クエリエンジンとして Presto を用い,S3 上のデータに直接クエリ
数十 TB クラスのデータに対しても高速にクエリを実行
Glue データカタログと連携しており,すぐに SELECT 文を実行可能
BI ツールと連携して,S3 に格納したデータをすぐに可視化
- 20. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Athena
サーバーレスによって SQL クエリの実行のみに集中
Presto クラスターは AWS 側で管理
クエリ実行時に,使用リソースを指定する必要もない
スキャンデータ量のぶんだけ課金*
* 1TB スキャンにつき 5$ の料金.S3 上にデータが圧縮して置かれている
場合,圧縮データサイズに対して課金
- 21. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon QuickSight
高速な SPICE エンジンと直感的な操作,専門家不要の BI
AWS 内外のさまざまなデータソースと簡単に連携
わかりやすい UI を持ち,マウスだけで高速な可視化を実行可能
セッション単位のリーダーライセンスにより,大きな組織でもコスト効率よく情報
を共有することが可能*
* 1 セッション 30 分で,セッションあたり $0.30.最高 $5 の上限が
あるので,使わなければ $0 かつ金額も FIX 可能
- 22. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon QuickSight
サーバーレスによってデータの可視化のみに集中
BI サーバ自体を AWS が運用するので,サーバ管理が不要
利用ユーザー数が増えても,サーバ増設等を考える必要はない
SPICE* にデータを取り込むことで,より高速な動作
• Super-fast, Parallel, In-memory, Calculation Engine の略で,
QuickSight 内部に腹持ちするデータストアのこと
- 23. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サーバーレス分析の
アーキテクチャパターン
- 24. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Glue ベースの S3 データレイク
• 各種データソースのカタログを Glue で一元的に管理
• データカタログは DynamoDB にも対応(7/10)
• DX 経由で JDBC 接続可能なオンプレミス DB も,カタログに登録可能
• S3 上のデータを Athena / Redshift Spectrum / EMR で分析
- 25. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Glue でパーティションの自動更新
• 従来は,新しい Athena テーブルのパーティション認識のために,MSCK REPAIR
TABLE / ALTER TABLE ADD PARTITION を実行する必要があった
• Glue クローラーをスケジュール実行することで,常に最新のパーティション状態を
認識させることが可能に
• クローラーの設定で InheritFromTable を選択することで,クロール時にパーティシ
ョン情報が自動でテーブル情報と同じものを使うように
- 26. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Glue で低レイテンシの Parquet 変換を実施
• CSV / TSV / JSON 等のログファイルを Parquet に変換するために,従
来は EMR などを用いる必要があった
• Glue なら GUI 操作のみでも Parquet 変換ジョブを作成可能
• S3 ファイル追加のイベントトリガーで Lambda を起動して,Glue ジョブを
実行すれば,低レイテンシの変換処理が可能に
- 27. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Firehose 経由のログにニアリアルタイムでクエリ
• Kinesis Firehose は year/month/day/hour という S3 キーの形で,
Parquet データフォーマットで出力(5/10)
• Parquet データは Athena から高速かつ効率的にクエリを実行可能
• ログが置かれたら,すぐに分析クエリを投げることができる
- 28. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Step Functions を使ったジョブフローの構築
• Step Functions でジョブフローを構築し,その中で Glue ジョブやそのほ
かのジョブを実行
• Athena ETL + 集計クエリのフローも当然可能
• 3rd Party スケジューラ製品からジョブをキックすることも可能
Start
Glue ETL
Execute
Is Glue Job
Finished ?
load to RDS
Wait 1m
Yes
No
Is load
Finished ?
Wait 1m
Yes
No
End
Is load
Succeed ?
Yes
Send SNS
notification
No
- 29. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
DMS によるマスタデータ出力を Athena で分析
• RDS 上で利用しているマスタテーブルの更新履歴を,DMS + CDC を使
って,S3 に逐次出力
• マスタの履歴テーブルを作って,これを取り込むのがベター
• Firehose 経由で S3 に送られてくる行動ログデータと JOIN することで,
ニアリアルタイムな分析システムを構築
- 30. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
他サービスとの使い分け
- 31. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
使い分けのポイント
• Glue / Athena は,あえて選択肢を絞ったり,チューニングの要素を絞っ
たりすることで,運用の負荷を下げ,本来の目的(ETL / 分析)に集中で
きるようにしている
• まずはサーバーレス分析サービスでやりたいことが実現可能か,ワーク
ロードをサービスに合わせられるかを考える
• それらが無理なときのみ,EMR / Redshift といったサービスの利用を考
える
- 32. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Glue では対応できないこと
• Spark 以外のアプリケーションを使ったジョブの実行
• 実行する Spark バージョンの固定
• Spark Job executer メモリサイズ等の設定変更
• ジョブ実行時のスタートアップタイムのコントロール
Glue はサーバーレスの ETL サービスであり
利用者側で制御できない部分が存在する
- 33. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
EMR + Spark / Hive という選択肢
• Hive の既存資産を活用したい場合は EMR を使用
• 詳細なチューニングを行うことで,メモリヘビーな Spark ジョブを実行した
り,パフォーマンスを向上させたりすることが可能
• クラスタを前もって立ち上げておくことで,すぐにジョブを実行させることが
可能
+
- 34. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Athena では対応できないこと
• ピークタイミングのノード数追加
• Presto のパラメタ設定
• 実行する Presto を特定バージョンに固定
• 利用料金の固定
• 詳細なセキュリティ設定や権限設定
Athena はサーバーレスのクエリサービスであり
利用者側で制御できない部分が存在する
- 35. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Athena が向いていない処理
• リトライ機構がなく,データを絞って高速にスキャンするアーキテクチャのため,バ
ッチ処理には向かない
• 分析処理でも,大量データを長時間処理するのには向かない
• Athena のデフォルトのクエリタイムアウト時間は 30 分(上限緩和可能)
ユースケース 適したサービス
大規模なデータに対して,フルスキャンを定期的に行う処理 EMR
テンポラリテーブルを活用した多段のETL処理 EMR, Glue
サブクエリやJOINを駆使した複雑な集計処理 Redshift
高頻度なレポーティングのための大量の分析処理 Redshift
- 36. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Redshift + Spectrum という選択肢
• ホットデータに対する高頻度の重たいワークロードが主体の場合には,Redshift
を使う方が適切.詳細なパフォーマンスチューニングや,
WLM/QMR/SQA/Result Caching 等の機能を利用可能
• その上で Spectrum を使って,S3 上の大量のコールドデータに対するアクセシビ
リティを確保
• Redshift は VPC に閉じた分析環境の構築,テーブルごとの詳細な権限設定等
が可能
• 多種多様な BI ツールが対応
- 37. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Presto on EMR という選択肢
• マルチデータソースアクセスや,バージョン固定,CTAS,詳細なチューニ
ング等が可能
• VPC に閉じた形の利用,Kerberos 認証,また詳細な EMRFS 認可機能
を用いてセキュアなアクセスを実現可能
• インスタンスフリートやスポットブロックを活用することで,利用時のコスト
を削減することも可能
+
- 38. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
下回りを気にしない機械学習
- 39. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
機械学習のサイクルにおけるよくある課題
開発 & 学習 推論
エンジニアがプロダクシ
ョン環境に構築
エンドポイントを作成
通常の API サーバ
A/B テストの仕組み
データサイエンティストが開発環境で作業
開発と学習を同じ 1 台のインスタンスで実施
Deep Learning であれば GPU インスタンスを使
用
- 40. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
機械学習のサイクルにおけるよくある課題
開発 & 学習 推論
エンジニアがプロダクシ
ョン環境に構築
エンドポイントを作成
通常の API サーバ
A/B テストの仕組み
データサイエンティストが開発環境で作業
開発と学習を同じ 1 台のインスタンスで実施
Deep Learning であれば GPU インスタンスを使
用
開発
• 学習時に合わせたハイスペックのインスタンスで開発もするため,
コスト効率が悪い
学習
• 環境構築が大変なので,開発と同じインスタンスで 1 つのインスタン
スを使いまわしがち
• 学習用のインスタンスが 1 つしかないため,大量の学習ジョブも
1 つずつ順番に実行するしかなく,時間がかかる
• 1 ジョブあたりの学習時間を減らすために,分散学習環境を構築する
のは,さらに手間がかかって辛い
推論
• API 予測サーバを使いたいだけなのに,環境構築・管理運用・スケー
ラビリティ等考えないといけないことが非常に多い
- 41. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
- 42. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SageMaker とは
データサイエンティスト・機械学習エンジニアが機械学習のプロセスを
高速に回すためのサービス
• 簡単な環境構築
• 複数ジョブを同時に実行
• 並列分散ジョブを実行
• エンドポイントを構築
- 43. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SageMaker が提供するアーキテクチャ
開発 学習 推論
SageMaker API を
叩いてジョブを実行
複数ジョブを同時実行
分散学習も簡単に実行
インスタンスの構築・実行
・破棄は自動
コンソールから起動
主要ライブラリは
プリインストール済
開発用サンドボックスな
のでインスタンスを意識
する必要あり
SageMaker API から
エンドポイント作成
オートスケーリング
A/Bテスト
インスタンスの管理運用
はほぼ存在しない
Jupyter Notebook Docker コンテナ Docker コンテナ
- 44. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
さまざまなフレームワークやアルゴリズムをサポート
1. SageMaker のビルトインアルゴリズムを使う
2. AWS がコンテナを用意しているフレームワークを使う
1. Tensorflow
2. Chainer
3. PyTorch
4. MXNet
3. 機械学習のコードとライブラリを含んだコンテナを作成
New!!
- 46. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サーバーサイドのリアルタイム推論
ユーザーの属性や行動履歴に応じた,
リアルタイムのコンテンツ推薦
Kinesis
Firehose
S3
SageMaker
Glue
Athena QuickSight
App
Servers
- 47. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サーバーサイドのバッチ推論
EC サイトで商品ページを表示したら,
関連するおすすめアイテムを表示
Kinesis
Firehose
S3
EMR
Glue
Athena QuickSight
App
Servers
DynamoDB
- 48. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
エッジサイドのリアルタイム推論
工場の生産ラインにカメラを設置し,
撮影した画像から不良品を判定
Camera Device
Detection App
GPU
Greengrass Core
Camera
AWS IoT
Glue
Athena QuickSight
S3 SageMaker
Greengrass
- 49. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
まとめ
- 50. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
まとめ
• AWS にはさまざまな分析サービスがあるが,特にサーバー
レス分析サービスを活用することで,やりたいことに集中可
能になる
• まずはサーバーレスの選択肢を考えて,それらがはまらない
ときに他のサービスを検討する
• 機械学習も SageMaker を利用することで,下回りを考えず
にシステムを構築できるように