Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
AWS Lambdaによる
データ処理理の⾃自動化とコモディティ化
@ビッグデータオールスターズ 2015.08.01
Yuta  Imai
Solutions  Architect,  Amazon  Data  Services  Japan
2
⾃自⼰己紹介
•  今井  雄太(いまい  ゆうた)
•  Solutions  Architect
•  ゲーム、広告業界のお客様を
主に担当しています。
3
アジェンダ
•  AWS  概要
•  AWS  Lambda
•  AWS  Lambdaとビッグデータサービス
•  事例例など
•  まとめ
4
5
世界中のデータセンタ群(リージョン)
どのリージョンでも同じ使い勝⼿手
同じやり⽅方で⽇日本から利利⽤用可能
11のリージョン
1. US  EAST  (Virginia)
2. US  WEST    (N.  California)
3. US  WEST  2  (Oregon)
4. EU  WEST  (Ireland)
5. JAPAN  (Tokyo)
6. South  America  (Sao  Paulo)
7. ASP  1  (Singapore)
8. ASP  2  (Sydney)
9. GovCloud  
10. BJS  1  (Beijing  China)  limited  preview
11. EU  (Frankfurt)
28のアベイラビリティ・ゾーン(AZ)
50以上のエッジロケーション
6
AWS  のイノベーションの速度度  
2014年年には516のメジャーな新機能や新サービスがリリースされました
24 48 61 82
159
280
516
2008 2009 2010 2011 2012 2013 2014
7
TECHNICAL &
BUSINESS
SUPPORT
Account
Management
Support
Professional
Services
Solutions
Architects
Training &
Certification
Security
& Pricing
Reports
Partner
Ecosystem
AWS
MARKETPLACE
Backup
Big Data
& HPC
Business
Apps
Databases
Development
Industry
Solutions
Security
MANAGEMENT
TOOLS
Queuing
Notifications
Search
Orchestration
Email
ENTERPRISE
APPS
Virtual
Desktops
Storage
Gateway
Sharing &
Collaboration
Email &
Calendaring
Directories
HYBRID CLOUD
MANAGEMENT
Backups
Deployment
Direct
Connect
Identity
Federation
Integrated
Management
SECURITY &
MANAGEMENT
Virtual Private
Networks
Identity &
Access
Encryption
Keys Configuration Monitoring Dedicated
INFRASTRUCTURE
SERVICES
Regions
Availability
Zones Compute
Storage
Objects, Blocks,
Files
Databases
SQL, NoSQL,
Caching
CDNNetworking
PLATFORM
SERVICES
APP
Mobile
& Web
Front-end
Functions
Identity
Data Store
Real-time
DEVELOPMENT
Containers
Source
Code
Build
Tools
Deployment
DevOps
MOBILE
Sync
Identity
Push
Notifications
Mobile
Analytics
Mobile
Backend
ANALYTICS
Data
Warehousing
Hadoop
Streaming
Data
Pipelines
Machine
Learning
8
AWS  Lambda
Run  your  code  in  the  cloud.
アップロードした関数をイベントドリブンに呼び出
してくれるサービス。
9
インフラの管理理が不不要
•  ビジネスロジックにフォーカスで
きる
•  コードをアップロードするだけで、
あとはAWS  Lambdaが以下をハ
ンドリング
–  キャパシティ
–  スケール
–  デプロイ
–  耐障害性
–  モニタリング
–  ロギング
–  セキュリティパッチの適⽤用
10
オートスケール
•  イベントの発⽣生レートに合わせて
⾃自動でスケール
•  プロビジョニング中や完了了を気に
する必要なし
•  コードが稼働した分だけのお⽀支払
い
11
Bring  your  own  code
•  Node.js,  Javaで書かれたコード
を実⾏行行
•  コード内では以下も可能
–  スレッド/プロセスの⽣生成
–  バッチスクリプトや何らかの実⾏行行
ファイルの実⾏行行
–  /tmpのread/write
•  各種ライブラリも利利⽤用可能
–  ネイティブライブラリも可能
–  利利⽤用するライブラリを⼀一緒にアップ
ロード
12
細やかな料料⾦金金体系
•  100ミリ秒単位でのコンピュート
時間に対する価格設定
•  リクエストに対する低額の課⾦金金
•  ⼗十分な無料料枠
よく語られるユースケース
14
イメージリサイズ、サムネイル⽣生成  
•  S3に画像がアップロードされたときにサムネイ
ルの⽣生成やリサイズを実⾏行行
AWS LambdaAmazon S3 Bucket イベント
元画像 サムネイル画像
1
2
3
15
値チェックや別テーブルへのコピー
•  DynamoDBへの書き込みに応じて値チェックを
しつつ別テーブルの更更新やプッシュ通知を実⾏行行
AWS Lambda
Amazon DynamoDB
Table and Stream
プッシュ通知
別テーブルを更新
今⽇日はもう少しデータ処理理に⽬目を向けて・・・
Webアプリケーションにおけるデータフロー
S3
Amazon S3
Consumer
Game DB
Game
Servers
Kinesis
Amazon
Redshift
Amazon
Elastic
MapReduce
DSV
JSON
データフローには多くのIf..Then..が
S3
Amazon S3
Consumer
Game DB
Game
Servers
Kinesis
Amazon
Redshift
Amazon
Elastic
MapReduce
DSV
JSON
これまでは・・・
•  ストレージにデータをアップロード。更更にその
事実をメッセジキューに積んで、待ち受けてい
る後続のワーカーがそれを読み取って処理理
•  定期的にストレージをポーリングして新しい
ファイルがあれば処理理
これまでは・・・
Worker⽤用のサーバー⽤用意して、そこにアプリケー
ションデプロイして・・・
While  trueなプロセスが落落ちないように
Supervisord動かして・・・
管理理の⼿手間がかかり、更更にアプリケーションエン
ジニアだけで実現しずらかった。
If..Then..  with  AWS  Lambda!
S3
Amazon S3
Consumer
Game DB
Game
Servers
Kinesis
Amazon
Redshift
Amazon
Elastic
MapReduce
DSV
JSON
多くのIf..Then..は
Lambdaで⾃自動化できる ( )
22
If..Then..  with  AWS  Lambda!
With  your  code!
AWS  ビッグデータ関連サービスの概要
24
ビッグデータパイプライン
Data
 Answers
Collect	
   Process	
   Analyze	
  
Store	
  
25
Collect	
   Process	
   Analyze	
  
Store	
  
プリミティブなパターン
Data Collection
and Storage
Data
Processing
Event
Processing
Data
Analysis
26
プリミティブなパターン
S3

Kinesis

DynamoDB

AWS  Lambda


KCL  Apps

EMR
EMR Redshi>
Machine
Learning
Collect	
   Process	
   Analyze	
  
Store	
  
Data Collection
and Storage
Data
Processing
Event
Processing
Data
Analysis
27
プリミティブなパターン
S3

Kinesis

DynamoDB

AWS  Lambda


KCL  Apps

EMR
EMR Redshi>
Machine
Learning
Collect	
   Process	
   Analyze	
  
Store	
  
Data Collection
and Storage
Data
Processing
Event
Processing
Data
Analysis
AWSのビッグデータ関連サービスは
ビルディングブロック群
やりたいことに合わせて柔軟に組み⽴立立てができる
28
AWS  Lambda  as  a  pipeline  glue
Collect	
   Process	
   Analyze	
  
Store	
  
Data Collection
and Storage
Data
Processing
Event
Processing
Data
Analysis
29
たとえばデータストアのイベント処理理
ファイル:  media,  log  files  (sets  of  records)
ストリーム:  records  (eg:  device  stats)
トランザクション:  DBへのRead/Write
30
S3
Kinesis
DynamoDB
たとえばデータストアのイベント処理理
S3  Event  Notifications
Kinesis  stream
DynamoDB  Streams
AWS  Lambda
たとえばデータストアのイベント処理理
S3  Event  Notifications
Kinesis  stream
DynamoDB  Streams
AWS  Lambda
Consumer
継続的な処理には継続的なConsumerを
挟んだほうがよいことも
たとえばデータストアのイベント処理理
AWS  Lambdaを使ったデータ処理理の事例例
34
Expedia
Pipelineのオーケストレーション
http://blogs.aws.amazon.com/bigdata/post/Tx1R28PXR3NAO1I/How-Expedia-
Implemented-Near-Real-time-Analysis-of-Interdependent-Datasets
35
TempTracker
AWSクラウドでの
蜂の巣箱のモニタリング
36
温度度センサー
ボード
“raspberry  pi”    
マイクロサーバー
防⽔水のボックス
37
Python  (boto)
DynamoDBKinesis  
App
Kinesis
収集
ダッシュボード
Lambda
イベント
ソース
SNS
TempTracker:  IoT  センサーデータ収集例例
38
蜂の巣箱内の温度度
蜂の巣箱外の温度度
39
Scalable  &  Responsive  Big  Data  Interface  with  
AWS  Lambda  at  FireEye
http://blogs.aws.amazon.com/bigdata/post/Tx3KH6BEUL2SGVA/Building-Scalable-and-Responsive-Big-Data-Interfaces-
with-AWS-Lambda
•  Lambda+S3で、
サーバを全く使わな
い分析環境
–  脅威分析、異異常検知等
•  Web  UIへのクエリを
複数のLambda  
functionを⾮非同期に
呼び出して処理理
40
API
Gateway
Slack
Lambda
ECS
Lambda S3
Aurora
Outgoing Webhook
-  cluster name
-  # of tasks
-  commands
RunTasks
-  cluster name
-  # of tasks
-  commands as environment variables
-  output location
Output STDOUT as file
Spin up containers and run tasks
Incoming Webhook
-  Read file from S3 and emit it to Slack
データ処理理ではないけれども・・・  Sysbenchの分散起動を
Slack+AWS  API  Gateway+AWS  Lambda+Amazon  ECSで実装
まとめ
42
AWS  Lambda
⾃自動化
•  多くのデータ処理理で必要とされる「イベント駆
動」を簡単に実現してくれる
コモディティ化
•  Amazon  EMRやAmazon  ECSとの組み合わせに
より、HadoopやSparkのジョブなどをよりプロ
グラマブルに利利⽤用できる
43
AWS  Lambda  enables...
AWS Lambda
If Then
Amazon
DynamoDB
Amazon Kinesis
Amazon S3
Amazon EMR
Amazon
Redshift
Amazon
Machine Learning
Amazon
API Gateway
Amazon ECS
With  your  code!

More Related Content

AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化