クラウド上のデータ活用デザインパターン
アマゾンウェブサービスジャパン株式会社
ソリューションアーキテクト, 志村 誠
2017.06.30
© 2017, Amazon Web Services, Inc. or its affiliates. All rights reserved.
自己紹介
2
所属:
アマゾンウェブサービスジャパン株式会社
業務:
ソリューションアーキテクト
(データサイエンス領域)
経歴:
Hadoopログ解析基盤の開発
データ分析
データマネジメントや組織のデータ活用
 
志村 誠 (Makoto Shimura)
Agenda
• データ分析の特徴
• オンプレミス環境でありがちな問題
• AWS 上のデータ活用環境
• AWS におけるデータ活用のデザインパターン
• AWS 上のデータ活用事例
3
データ分析の特徴
4
データ分析の特徴
5
試行錯誤の回数
必要リソースの変動
必要なツールやリソースのバラエティ
試行錯誤の回数
• データ分析は,基本的に試行錯誤を伴う
– 元データに対する前処理
– モデル開発における手法やパラメタの比較検討
– 結果をもとにしたモデルの継続的な改善
• この試行錯誤の回数をいかに高速に積み重ねる
かが,良い結果を導きだすために重要
6
必要リソースの変動
• フェーズによって必要なリソースが異なる
– モデル開発のときは,小さなデータセットで高速に
プロトタイピングを行う
– ステージング検証,本番導入のときには大規模なリ
ソースを必要とする
7
必要なツールやリソースのバラエティ
• データ分析にはさまざまなツールがある
– 可視化-基礎集計のための SQL / パイプライン処理ツール
– ディープラーニングフレームワーク or
Hadoop クラスタ
– モデルを組み込んだアプリケーション
• ツールやモデルによって必要リソースも異なる
– CPU / GPU / メモリ / IO
– 単一インスタンス / クラスタ / 組み込み
8
データ分析をうまく進めるには
適切なツールやリソースを確保して
試行錯誤のサイクルを高速に回す必要がある
オンプレミス環境でありがちな問題
10
オンプレミス環境でのデータ分析は
さまざまな「柔軟性」がないために
うまくサイクルを回せないことが多い
柔軟性の問題
• 時間の柔軟性
• アーキテクチャの柔軟性
• リソースの柔軟性
• ワークロードの柔軟性
12
時間の柔軟性
13
ハードウェアの減価償却サイクルが長く
技術が進歩するスピードやデータ量の増加に追従できない
アーキテクチャの柔軟性
14
既存のアーキテクチャに投資してしまっており
そこに付け加える形での活用を前提に考えがち
リソースの柔軟性
15
CPU とストレージが不可分で片方だけ追加できない
需要に合わせてリソースを変動させることができない
ワークロードの柔軟性
16
ワークロードにより異なるさまざまなリソースを
適宜用意するのが難しい
オンプレミス環境でのデータ分析は
さまざまな「柔軟性」がないために
うまくサイクルを回せないことが多い
AWS 上のデータ活用環境
18
データ活用に適した AWS の特徴
19
Agility: 試行錯誤を簡単に.
大規模でもスモールスタートで
も同じようにデータ処理
Scalability: キャパシティや
機能制約を気にすることなく
,いつでもジョブを実行
Get to Insights Faster: デー
タの前処理ではなく,データ分
析にフォーカスできるように
Broadest and Deepest
Capabilities: 90以上のサー
ビスを活用して,あらゆるワー
クロードでデータ処理
Low Cost: 従量課金制なの
で,必要なコストは使ったぶ
んだけ払えば良い
Data Migrations Made
Easy: ペタバイトスケールのデ
ータまで素早く効率的にクラウ
ドに移行可能
Amazon S3
Data Lake
Batch Analytics
Amazon Kinesis
Streams & Firehose
Hadoop / Spark
Amazon Redshift
Data Warehouse
Amazon DynamoDB & ElastiCache
NoSQL DB & Redis
Relational Database
Amazon EMR
Amazon Aurora
Amazon Machine Learning
Machine Learning
Any Open Source Tool
of Choice on EC2
DataSources
Amazon S3を中心としたデータレイク
Clusterless SQL Query
Amazon Athena
TransactionalData
Amazon S3
Data Lake
Batch Analytics
Amazon Kinesis
Streams & Firehose
Hadoop / Spark
Amazon Redshift
Data Warehouse
Amazon DynamoDB & ElastiCache
NoSQL DB & Redis
Relational Database
Amazon EMR
Amazon Aurora
Amazon Machine Learning
Machine Learning
Any Open Source Tool
of Choice on EC2
DataSources
Amazon S3を中心としたデータレイク
Clusterless SQL Query
Amazon Athena
TransactionalData
すべてのデータを1ヶ所に集めて保存
データストアとデータ処理の分離
用途に応じた適切な処理方法の選択
Amazon S3
高い耐久性と可用性を持つスケーラブルなオブジェクトストレージ
• 99.999999999%の耐久性と,99.99%の
可用性を持つ設計
• 暗号化技術(SSE, CSE)にも対応し,安
全にデータを保存
• 利用したデータのぶんだけ従量課金
• 多くのAWSにとって仮想的なデータレイヤ
Amazon Kinesis
Amazon Kinesis
Streams
ストリームデータを
処理・分析するための
データを格納
Amazon Kinesis
Firehose
ストリームデータを
S3, Redshift, ESに
簡単にロード
Amazon Kinesis
Analytics
ストリーミングデータを
標準的なSQLクエリで
簡単に分析
ストリームデータを収集・処理・配信するためのマネージドサービス群
Amazon EMR
• 運用コストでHadoopを使用
• ジョブに応じてクラスタのリサイズが可能
• S3上のデータを直接読み込んでジョブを
実行し,結果をS3に吐き出せる
• Spark, Hive, Presto, Hbaseなどさまざま
なHadoopエコシステムを利用可能
• Jupyter や Rstudio 等必要なソフトウェ
アを入れた形で起動可能
• 大規模データのETLや機械学習処理などの
ワークロードに適している
フルマネージドでスケーラブルなHadoopクラスタ
Amazon Athena
25
フルマネージドでS3上のデータに対してSQLクエリを実行
• フルマネージドで運用コストがかからない
• Prestoベースで標準SQLが実行可能
• 走らせたクエリのぶんだけ従量課金
• S3に貯めたWebサーバのログに対してク
エリを投げてサービス障害の原因を探った
り,手軽にアドホック分析をおこなう
Amazon Redshift
フルマネージドでスケーラブルなデータウェアハウスサービス
Leader node
Compute nodes
SQL Client / BI Tools
JDBC / ODBC Driver
• MPPアーキテクチャとカラムナのデ
ータ格納により,スケーラブルで高
速なクエリが実行可能
• データストアを最大2PBまで拡張
• JDBC/ODBC経由でさまざまなBIツ
ールと連携
• BIツールと連携して,データウェア
ハウスとして分析の中心に
Amazon Redshift Spectrum
Redshift から S3 上のデータに直接クエリできる拡張機能
Leader node
Compute nodes
SQL Client / BI Tools
JDBC / ODBC Driver
• Redshift クラスタから,直接 S3 上
のデータにクエリを投げられる
• Redshift 内のデータと JOIN するこ
とも可能
• 利用頻度の低いコールドデータを S3
に置いて Spectrum 経由でアクセス
し,ホットデータのみ Redshift 内に
ロードしておく
• 複数の Redshift クラスタから同じ
S3 上のデータを読み込む
P2 インスタンス + Deep Learning AMI
• インスタンスあたり最大 16個の GPU (NVIDIA Tesla K80)を使う
ことで,ディープラーニングのモデル構築にかかる時間を大幅に短
縮可能
• Deep Learning AMI によって,主要フレームワークがすべてプリ
インストールされた状態で,インスタンスが立ち上がる
28
Instance
Name
GPU
Count
Memory GPU
Memory
Network
Performance
P2.xlarge 1 61GiB 12 GiB High
P2.8xlarge 8 488GiB 96 GiB 10 Gigabit
P2.16xlarge 16 732GiB 192 GiB 20 Gigabit
AWS におけるデータ活用のデザインパターン
29
BI パイプラインパターン
データサイエンスパイプラインパターン
パイプライン
マルチクラスタパターン
ホットデータパターン
ラムダアーキテクチャパターン
複数レイヤの分析
マルチノードパターン
マルチツールパターン
スタンプパターン
分析の柔軟性
AB テストパターン
データマネジメントパターン
カタログサーチパターン
品質の担保
BI パイプラインパターン
DS パイプラインパターン
パイプライン
マルチクラスタパターン
ホットデータパターン
ラムダアーキテクチャパターン
複数レイヤの分析
マルチノードパターン
マルチツールパターン
スタンプパターン
分析の柔軟性
AB テストパターン
データマネジメントパターン
カタログサーチパターン
品質の担保
BI パイプラインパターン
32
• Redshift および Athena で S3 上のさまざまなデータを可視化
• 既存のデータウェアハウス / BI 環境を活用
• 必要なデータはすぐにアクセスでき,簡単に可視化できる環境
S3 S3EMRData
Source
Redshift QuickSight
BI パイプラインパターン
33
• Redshift および Athena で S3 上のさまざまなデータを可視化
• 既存のデータウェアハウス / BI 環境を活用
• 必要なデータはすぐにアクセスでき,簡単に可視化できる環境
• Athena で生データにも直接アクセス
S3 S3EMRData
Source
Redshift QuickSight
Athena
リブセンスさま
アナリティクスのためのデータパイプライン
https://speakerdeck.com/livesense/ribusensufalsedetafen-xi-ji-pan-falsequan-mao
データサイエンスパイプラインパターン
35
• Kinesis 経由で取得したストリームデータに前処理 & 機械学習モデ
ルを適用
• モデルの適用結果をすぐに API 経由で利用できるようにする
• S3 に貯めたデータを使って,定期的にモデルを更新
Data
Source
Kinesis
Streams
EMR
S3
Dynamo DB Lambda API Gateway
Hearst さま
クリックストリームを高速に分析する
https://www.slideshare.net/AmazonWebServices/bdt306-how-hearst-publishing-manages-clickstream-analytics-with-aws
BI パイプラインパターン
DS パイプラインパターン
パイプライン
マルチノードパターン
マルチツールパターン
スタンプパターン
分析の柔軟性
AB テストパターン
データマネジメントパターン
カタログサーチパターン
品質の担保
マルチクラスタパターン
ホットデータパターン
ラムダアーキテクチャパターン
複数レイヤの分析
マルチクラスタパターン
• ワークロードに応じて,最適なスペックのクラスタを使用
• 各コンピュートリソースが明確に分かれており,互いに影響を与える
ことなく,並列で処理を実行可能
S3
EMR
(ETL)
EMR
(部署 A クエリ)
EMR
(部署 B クエリ)
EMR
(ユーザ A 機械学習)
EMR
(ユーザ B 機械学習テスト)
EMR
(ユーザ B 機械学習 本番)
FINRA さま
S3 上のデータに対して複数の EMR で分析を実施
https://www.slideshare.net/AmazonWebServices/bdt305-amazon-emr-deep-dive-and-best-practices
ホットデータパターン
40
• 蓄積したデータについて,直近のホットデータとコールドデータで
アクセスの方法を変える
• コストを下げつつ,全データへのアクセシビリティを確保
S3
(過去データ)
Redshift
(直近3ヶ月データ)
Spectrum
経由でアクセス
NASDAQ さま
ホットデータは Redshift / コールドデータは Presto
https://www.slideshare.net/AmazonWebServices/bdt314-a-big-data-analytics-app-on-amazon-emr-amazon-redshift
ラムダアーキテクチャパターン
42
• 取得したデータについて,スピードレイヤーとバッチレイヤーの 2系統で処理
を行う
• サービスの状態をモニタリング対応しつつ,貯めたデータをじっくり分析
Kinesis
Stream
Data
Source
Kinesis
Analytics
Kinesis
Firehose
Elasticsearch
Service
S3Kinesis
Firehose
Redshift QuickSight
SmartNews さま
スピードレイヤーとバッチレイヤーによる可視化
https://www.slideshare.net/smartnews/20160127-building-a-sustainable-data-platform-on-aws
BI パイプラインパターン
DS パイプラインパターン
パイプライン
AB テストパターン
データマネジメントパターン
カタログサーチパターン
品質の担保
マルチクラスタパターン
ホットデータパターン
ラムダアーキテクチャパターン
複数レイヤの分析
マルチノードパターン
マルチツールパターン
スタンプパターン
分析の柔軟性
マルチノードパターン
45
• パラメタやデータを変えて,複数のモデルを並列で走らせる
• AWS Batch で複数の ECS コンテナを立ち上げ,ディープラーニング
モデルのハイパーパラメータ探索を行う
S3Batch
ECS Worker
ECS Worker
ECS Worker
マルチツールパターン
46
• Zeppelin / Jupyter / Rstudio 等で必要なデータを深く分析
• 用途に応じて柔軟にクラスタサイズを変更して,マシンリソースを確保
• モデル作成に必要なデータは,生データまでさかのぼって取れるように
S3 S3EMRData Source
EMR
EMR
P2 instance
Netflix さま
さまざまなツールを用いてデータを活用
https://www.slideshare.net/AmazonWebServices/aws-reinvent-2016-netflix-using-amazon-s3-as-the-fabric-of-our-big-data-ecosystem-bdm306
スタンプパターン
48
• あらかじめ自分たちのモデル構築に必要な環境を,AMI の形で構築して
おくことで,同じ環境を簡単に構築可能
• Deep Learning AMI をベース + 独自のパッケージを追加
S3
P2 instance
(モデル A)
P2 instance
(モデル B)
P2 instance
(モデル C)
BI パイプラインパターン
DS パイプラインパターン
パイプライン
マルチクラスタパターン
ホットデータパターン
ラムダアーキテクチャパターン
複数レイヤの分析
マルチノードパターン
マルチツールパターン
スタンプパターン
分析の柔軟性
AB テストパターン
データマネジメントパターン
カタログサーチパターン
品質の担保
AB テストパターン
• 複数の機械学習モデルを並行稼働させ,パフォーマンスをみ
ながら採用するモデルを決める
• 各モデルへのトラフィック配分の変更や切り戻しも容易
Client API Gateway Lambda ELB EC2 ECS EMR
or or
EC2 ECS EMR
or or
90%
10%
データマネジメントパターン
• データだけでなく,メタデータも合わせて管理
• 生データも加工済みデータも S3 に置いて,再利用性を高く保つ
S3
EMR
Data Source
Dynamo DB
Kinesis
Firehose
Data Source
Data Source
カタログサーチパターン
• データだけでなく,メタデータも合わせて管理
• メタデータを ES に突っ込んで検索可能にしておく
Kinesis
Firehose
Data Source S3
Dynamo DB
Lambda
Elasticsearch
Service
JINS さま
データの登録と検索
53 https://d0.awsstatic.com/events/jp/2017/summit/devday/D4T8-2.pdf
AWS 上のデータ活用事例
54
Cookpad さまの機械学習基盤
55 https://d0.awsstatic.com/events/jp/2017/summit/slide/D3T5-2.pdf
Cookpad さまの機械学習基盤
• 画像のアップロード,判定処理には時間がかかる(〜数百ms
)ため,非同期の判定処理を実装
• アプリケーションサーバと,学習・推論処理を行うサーバで
は,必要な計算機環境が大きく異なる
56
料理画像のアップロード 画像認識処理と結果の返却
Cookpad さまの機械学習基盤
• 本番環境と開発環境を分け,適切な権限管理とセキュリティを設定
• Packer による GPU インスタンスのプロビジョニングや,アイドルイ
ンスタンスの監視
57
日本経済新聞社さまの AI 記者
• 決算サマリーを自動生成して配信
• 2017/1/25-5/26 で 6787 サマリーを生成,1-2 分で記事を公開
58 https://d0.awsstatic.com/events/jp/2017/summit/slide/D4T5-3.pdf
日本経済新聞社さまの AI 記者
59
日本経済新聞社さまの AI 記者
• 編集現場では,仕事を取られるという意識はなく,サポートとして
の期待が大きい
• 速報や定型業務を AI に任せて,より付加価値の高い業務に集中
60
まとめ
61
まとめ
• AWS を活用することで,必要なツールやリソ
ースを柔軟に確保し,高速な試行錯誤のサイク
ルを回すことが可能に
• データ活用システムを構築する際には,デザイ
ンパターンや事例を参考にして,よいアーキテ
クチャを実現
62
63

クラウド上のデータ活用デザインパターン