KEMBAR78
Introducing Serverless Computing (20160802) | PDF
Introducing Serverless Computing
Keisuke Nishitani (@Keisuke69)
Amazon Web Services Japan K.K.
Aug 2, 2016
Profile
Keisuke Nishitani
Solutions Architect, Amazon Web Service Japan K.K
@Keisuke69 Keisuke69
✤ ソリューションアーキテクト
✤ クラウドを使ったアプリ開発とかモバイル開発の話しをよくします
✤ モバイルニンジャ1号機
✤ RESTおじさん
✤ Lambda Wizards
✤ 餃⼦の王将エヴァンジェリスト(⾃称)
✤ ⾳楽が好きです、フジロッカーです、今年も⾏きます
✤ でもサマソニも毎年⾏きます
✤ ⼩説⼤好き、マンガ⼤好き、空想好き
✤ ブログ: http://keisuke69.hatenablog.jp/
Keisuke69 Keisuke69Keisuke69x
What is Serverless Computing?
AWSのComputeサービス
Amazon EC2 Amazon ECS AWS Lambda
スケールの単位
インスタンス アプリケーション ファンクション
抽象化
ハードウェア OS ランタイム
使いドコロ
AWSのComputeサービス
Amazon EC2 Amazon ECS AWS Lambda
スケールの単位
インスタンス アプリケーション ファンクション
抽象化
ハードウェア OS ランタイム
使いドコロ • OS、ネットワーク、
ストレージのレベルで
構成を制御したい
• 好みのOSを利⽤した
い
• OS以上の全てを⾃分
でコントロールしたい
• サーバを⾃分で構成し
て実⾏したい
• アプリケーションの構
成を制御したい
• スケールを⾃分でコン
トロールしたい
• 必要なときだけコード
の実⾏を⾏いたい
• インフラの構成・管理
を⾏いたくない
AWSのComputeサービス
Amazon EC2 Amazon ECS AWS Lambda
スケールの単位
インスタンス アプリケーション ファンクション
抽象化
ハードウェア OS ランタイム
使いドコロ • OS、ネットワーク、
ストレージのレベルで
構成を制御したい
• 好みのOSを利⽤した
い
• OS以上の全てを⾃分
でコントロールしたい
• サーバを⾃分で構成し
て実⾏したい
• アプリケーションの構
成を制御したい
• スケールを⾃分でコン
トロールしたい
• 必要なときだけコード
の実⾏を⾏いたい
• インフラの構成・管理
を⾏いたくない
Serverless
AWS Lambdaのユースケース
Real-time File Processing
✤ イメージのサムネイル⽣成やビデオの変換
✤ ドキュメントのメタデータをインデックス化
✤ ログの処理
✤ メディアコンテンツのバリデーション
元画像 サムネイル画
像
1
2
3
1.ファイルストレージを
提供するAmazon S3
2.処理ロジックを提供す
るAWS Lambda
Real-time Stream Processing
✤ クライアントのアクティビティトラッキング
✤ クリックストリーム分析
✤ メトリクス⽣成
✤ データクレンジング
✤ ログフィルタリング
✤ インデクシング
✤ デバイスデータのテレメトリと測定
1. ストリームデータの保存を提供
するAmazon Kinesis
2. データ処理アプリケーションと
してのAWS Lambda
Extract, Transform and Load
✤ データバリデーション
✤ バックアップ
✤ 分析
1. NoSQLデータストアを提供する
Amazon DynamoDB
2. 変換およびロード処理を実⾏する
Amazon Lambda
3. DWHを提供するAmazon Redshift
Serverless Web and Mobile Applications
✤ 静的コンテンツを提供するAmazon S3
✤ 動的コンテンツを提供するAWS Lambda
✤ HTTPアクセスを提供するAmazon API Gateway
✤ NoSQLデータストレージを提供するAmazon DynamoDB
AWS Lambdaの
動的コンテンツ
Amazon
DynamoDBに格納
されたデータ
API Gateway
Amazon S3の
静的コンテンツ
ブラウザ
新しいアプリケーションエコシステム:
Alexaアプリ + Slack = Serveless bot!
Alexa、"今からデモを
送る"をSlackで送信し
て
スケジュールされたポーリングにより
メッセージを取得
Kevinから、
"成功を祈る!"
(Slack APIを使って)
メッセージをアップロード
チーム
(チャネルユーザー)
Slack
Real-Time Message Handling
New message
published
Amazon SNS AWS Lambda
Amazon SNS
Amazon Kinesis
Audit CloudTrail Activity
AWS
Lambda
Amazon S3Amazon CloudTrail
Amazon SNS
AWS IAM
Automated Infrastructure Management
AWS
Lambda
Amazon
SNS
Amazon
CloudWatch Alarm
ec2
runInstance
ecs
startTask
beanstalk
updateApp
kinesis
splitShard
Any API call
https://aws.amazon.com/blogs/compute/scaling-amazon-ecs-services-automatically-using-amazon-cloudwatch-and-aws-lambda/
Forward AWS Events to External Endpoints
http://danilop.net/aws/2015/07/26/sns2ifttt/ |			https://github.com/danilop/SNS2IFTTT
AWS
Lambda
Amazon
SNS
IFTTT via
the Maker
channel
Amazon
CloudWatch Events
Auto Scaling
Deploy Lambda Functions
https://aws.amazon.com/blogs/compute/dynamic-github-actions-with-aws-lambda/
AWS
Lambda
Amazon
SNS
GitHub Repo
lambda
createFn ()
事例
VidRoll
課題
• EC2の管理が難しくなりつ
つあった
• ITインフラではなくビジネ
スへのフォーカスが必要
解決⽅法
• プレイヤーがAPI Gateway
経由でLambdaを実⾏
• 動画のリアルタイム変換に
も利⽤
ベネフィット
• ⽣産性が向上し、収益が10
倍になっても、エンジニア
の追加なし
Legacy Architecture
Limelight
Edge
Laptop
Encoders
RTMP
Wowza Transmux
Servers
Wowza Transcode
Servers
Wowza Record
Servers
RTMP
RTMP
RTMP
Auto
Uploader
MP4 HLS
S3 VOD
bucket
CloudFront mobile client
Live Streaming
VOD
CloudFront mobile client
HLS
HLS
Current Architecture
Laptop
Encoders
HLS
S3
Playback
VOD Stream
mobile client
CloudFront
Streaming
Live stream
mobile client
CloudFront S3 Ingest
480p
Transcode
HQ Copy
360p
Transcode
Audio-only
Transcode
Thumbnail
QOS
Analytics
Cascading Lambda Functions
easy ten
Mobile app that helps you learn
10 new, foreign words a day
Users have learned
170 000 000+
new words
1 200 000+
downloads
• Featured in 85+ countries
• Top 5 grossing apps overall (Russia)
• Top 8 grossing apps overall (Brazil)
スクリーンショット
これまでのアプローチ
✤ モノリシックなアプリを複数のEC2インスタンス
上で稼働
✤ 複雑なデプロイ。⼀⾏の変更でも全体の再デプロ
イが必要
✤ スケーラビリティ/俊敏性と新機能のバランスを取
る必要があり頻繁なリリースが
できない
Lambda consumer
S3
Mobile
Analytics
DynamoDB
SQS
Amazon
EMR
Amazon
Cognito
Amazon
Kinesis
Mobile app
Amazon
Redshift
Lambda interface
S3 dump
DynamoDB log
Microservice Core
⽇本のお客様も
オフィスアワーやります
✤ 8⽉19⽇(⾦)にオフィスアワー(個別技術相談会)を開催します
✤ Serverlessなシステムに関するアーキテクチャ相談
✤ 1スロット、45分で7スロット受け付け予定
✤ 要事前登録
✤ もちろん無料
✤ 告知サイトならびに登録ページは近⽇公開!
Introducing Serverless Computing (20160802)

Introducing Serverless Computing (20160802)