Introducing Serverless Computing Keisuke Nishitani (@Keisuke69) Amazon Web Services Japan K.K. Aug 2, 2016
Introducing Serverless ComputingKeisuke Nishitani (@Keisuke69)
Amazon Web Services Japan K.K.Aug 2, 2016
ProfileKeisuke NishitaniSolutions 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
31.ファイルストレージを
提供するAmazon S32.処理ロジックを提供す
る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
ec2runInstance
ecsstartTask
beanstalkupdateApp
kinesissplitShard
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
RTMPWowza 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 clientHLS
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 tenMobile 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スロット受け付け予定✤ 要事前登録✤ もちろん無料✤ 告知サイトならびに登録ページは近⽇公開!