Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
AWS	Lambda	Hands-on
- AWS	Lambda,	API	Gateway	-
アマゾン ウェブ サービス ジャパン
パートナー ソリューション アーキテクト
酒徳 知明 (Sakatoku Tomoaki)
⾃⼰紹介
酒徳 知明(さかとく ともあき)
エコシステム ソリューション部
パートナー ソリューション アーキテクト
仕事
• エンタープライズ SIパートナー様のご⽀援
• ISVパートナー様のご⽀援
本⽇お話する内容
• サーバーレス アーキテクチャを⽀えるAWS サービス
• Amazon Lambda
• API Gateway
• サーバレス アーキテクチャとエコシステム (demo)
• mackerel
• Twilio
• ハンズオン
aws mackerel twilio_handson_public
サーバーレス アーキテクチャを⽀える
AWS サービス
Amazon	Lambda
API	Gateway
Networking AnalyticsCompute
Storage & Content Delivery
Developer Tools Management Tools
Security & Identity
Mobile Services Database Business Productivity,
Desktop & App Streaming
S3 CloudFront EFS Glacier
Storage G
ateway
AppStream
CloudSearch
SESSQS
Mobile A
nalytics
Cognito Device Farm
SNS
RDS DynamoDB ElastiCache RedShift WorkSpaces WorkDocs WorkMail
Lambda ECSEC2 VPC Direct Connect Route 53 EMR Data Pipeline KinesisELB QuickSight Elasticsearch
Service
CodeCommit
CloudWatch Cloud
Formation
CloudTrail Config OpsWorks ServiceC
atalog
IAM Directory
Service
Trusted A
dvisor
WAFSnowball
DMS
IoT
IoT
Game Dev
Mobile Hub
ElasticBeanstalk
ACM Inspector
GameLift
CodePipeline
CodeDeploy
AWS が提供するサービス
Lightsail AWS Batch
Application
Discovery Service
SMS
Pinpoint
Application Services
API Gateway Elastic Transcoder SWF Step Functions
Messaging
Migration
X-Ray
CodeBuild
AI
LexPolly Rekognition Machine
Learning
KMS ShieldOrganizations
“No server is easier to
manage than no server”
-Werner Vogels, CTO Amazon-
AWSのサーバーレス プラットフォーム
Amazon	ECS
(コンテナサービス)
AWS	Lambda
(コード、ファンクション)
Amazon	EC2
(仮想サーバー)
インスタンス単位 コンテナ単位 ファンクション単位
• 必要なときのみのコー
ドの実⾏
• インフラの構成、管理
からの開放
• サーバー環境の管理を
⾏いたい
• スケール ロジックをカ
スタマイズしたい
• OS,ネットワーク、ス
トレージを管理したい
• OSより上位レイヤーを
管理したい
AWS	Lambdaとは
特徴 (http://aws.amazon.com/jp/lambda/)
• OS、キャパシティ等インフラの管理不要
• S3、Kinesis、SNS等でのイベント発⽣を元
にユーザが⽤意したコード(Node.js)を実
⾏
• ユーザアプリからの同期/⾮同期呼び出し
価格体系 (http://aws.amazon.com/jp/lambda/pricing/)
• コード実⾏時間(100ms単位)
• Lambdaファンクションへのリクエスト回数
• 1⽉あたり100万リクエスト、400,000GB/秒
が無料で利⽤可能
イベントをトリガーにコードを実⾏するコンピュートサービス
AWS LambdaAmazon S3 Bucket イベント
元画像 サムネイル画像
1
2
3
AWS LambdaAmazon DynamoDB
Table and Stream
プッシュ通知
別テーブルを更
新
■イメージのリサイズやサムネイルの作成
■値チェックや別テーブルへのコピー
aws mackerel twilio_handson_public
Node.js,	Java,	Python,	C#
aws mackerel twilio_handson_public
従来型アーキテクチャとAWS Lambdaの⽐較
S3へファイルアップロードされたら解析するようなユースケース
1) ポーリング
2) object 設置 3) object 情報取得
4) 処理queue作成
5) 処理queue ポーリン
グ
6) 実際にやりたい処理
処理量に併せてinstanceの
増減管理
EC2インスタンス不要
・EC2 コスト
・EC2スケーラビリティ試験
・監視
・リアルタイム性の向上
従来型アーキテクチャの6)のコードのみ
・コード圧縮可能
1) Object 設置
2) AWS Lambda起動
従来型アーキテクチャ AWS Lambda
Amazon	S3 Amazon	
DynamoDB
Amazon	
Kinesis
AWS	
CloudFormation
AWS	CloudTrail Amazon	
CloudWatch
Amazon	SNSAmazon
SES
Amazon
API	Gateway
Amazon	Cognito AWS
IoT
Amazon
Alexa
Cron events
DATA	STORES ENDPOINTS
REPOSITORIES EVENT/MESSAGE	SERVICES
AWS Lambdaと連携するイベントソース
Amazon	
Config
Amazon	Aurora
AWS	Lambda の使い所
AWS Lambda
Amazon S3 Bucket イベント
元画像
サムネイル画像
1
2
3
AWS
Lambda
Amazon DynamoDB
Table and Stream
プッシュ通知
別テーブルを更
新
■イメージのリサイズやサムネイルの作成
■値チェックや別テーブルへのコピー
AWS LambdaAmazon Kinesis
■リアルタイムデータ処理として
■SWF Workerとして
(バッチジョブフローのタスクとして)
集計処理
リアルタイム
Cloudwatch logsやSNSなど
との連携も可能
AWS Lambda
AWS Lambda
画像処理
配信処理
Amazon	API	Gateway
特徴 (http://aws.amazon.com/jp/lambda/)
• OS、キャパシティ等インフラの管理不要
• バックエンドとしてLambda、既存Webシ
ステムを利⽤可能
• スロットリング/キャッシュ
価格体系 (http://aws.amazon.com/jp/lambda/pricing/)
• 呼び出し回数とキャッシュ容量
• 100万回の呼び出しにつき$3.5
• キャッシュ容量に応じて$0.02/時〜$3.8/時
Web APIの作成・保護・運⽤と公開を簡単に
Mobile Apps
Websites
Services
API
Gateway
AWS Lambda
functions
AWS
API Gateway
Cache
Endpoints on
Amazon EC2 /
Amazon Elastic
Beanstalk
Any other publicly
accessible endpoint
Amazon
CloudWatch
Monitoring
Amazon	API	Gateway
提供するAPIのバージョン管理
API利⽤状況のモニタ、管理とマネタイズ
APIに対する認証とアクセス権の管理
トラフィック管理とAPIエンドポイントのアタックからの保護
インフラのセットアップおよび管理とメンテナンス
スロットリング
メソッド単位でのスロットリングを提供
• ステージ単位で全体的に同⼀設定にすることも、個々のメソッドに対し
て個別に設定することも可能
• スロットリングによりバックエンドのパフォーマンスと可⽤性を維持
• 許容するリクエスト/秒を指定
• バーストを許容する設定も可能
• トークンバケットアルゴリズムによる実装
リミットを超えたリクエストがスロットリングされる
• HTTPステータス429(Too many request)をレスポンス
• ⽣成したSDKを使う場合、⾃動でリトライする
http://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/api-gateway-request-throttling.html
レスポンスのキャッシング
レイテンシ減とバックエンドへのトラフィック軽減
• キャッシュがあった場合、バックエンドを呼び出すことなくレスポンス
ステージ単位のキャッシュプロビジョニング
• 0.5GBから最⼤237GBの間でプロビジョニング
細やかな設定
• メソッド単位で暗号化とTTLを設定
• クエリパラメータ、ヘッダ、パスパラメータ単位でキャッシュ有無を設
定
キャッシュアルゴリズムはLRU(Least Recently Used)
サーバレスなアプリケーションモデル
イベントソース ファンクション サービスなど
Java
C#
Node.js
Python
イベント
S3にオブジェクトが作られる
Kinesisにストリームデータが保存される
HTTPSによるリクエスト
etc...
ユースケース
Web	
Applications
Data	
Processing
ChatbotsBackends
</></>
Amazon	Alexa Autonomous	
IT
ユースケース
Data	
Processing
Backend</></>
Autonomous	
IT
データの変更、システム状態の遷移もしくはユーザによ
るアクションといったものに対応したコードの実⾏
AWS内の状態やデータ変更に応じたシステム処理の実
⾏、⾃動化
Web、モバイル、IoTや外部APIへのリクエストを扱う
バックエンドロジックの実⾏
Backend:	Web Application
https://github.com/awslabs/lambda-refarch-webapp
Backend:	Mobile Backend
https://github.com/awslabs/lambda-refarch-mobilebackend
IoT Backend
https://github.com/awslabs/lambda-refarch-iotbackend
Data	Processing:	File	Processing
https://github.com/awslabs/lambda-refarch-fileprocessing
Data	Processing:	Stream	Processing
https://github.com/awslabs/lambda-refarch-streamprocessing
Autonomous	IT:	Extract,	Transform	and	Load
サーバレス アーキテクチャとエコシステム
mackerel
Twilio
サンプル:Monitoring	&	Alerting	
AWS	LambdaAWS	APIGWMonitoring	&	Alerting
Lambda
Function
閾値監視
APIGW EndpointをKick
サンプル:Lambda	Function	Blueprint
aws mackerel twilio_handson_public
Speech Platform
Skills
Weather
ASR
NLU
TTS
“speak”	directive
intent
recognition	result
recognize
intent
recognition	result
text/SSML
Alexa’s	voice
Alexa, 今⽇の天気は?
*	Orchestration	- ASR,	
NLU,	TTS,	Application	
Services
*	Intent	Routing	to	
Applications
*	Session	Management
*	Dialog	Management	–
multi-turn	interactions	
*	Abstraction	of	device	
features	to	applications
You	Pass	Back	a	Textual	
or	Audio	Response
You	Pass	Back	a		
Graphical	Response
Alexa Converts Text-to-Speech
(TTS) & Renders Graphical
Component
Respond	to	Intent	
through	Text	&	Visual
User	Makes	a	
Request
Audio	Stream	is
sent	up	to	Alexa Alexa Identifies Skill & Recognizes Intent
Through ASR & NLU
Alexa	sends	
Customer	Intent	to	
Your	Service
Your	Service
processes
Request
サンプル:Alexa	Skill	Kit	との連携
ASK	“JUDY	HOPS”	“Find	My	Phone”
Amazon	Rekognition
ディープラーニングを利⽤した画像認識サービス
状況&物体の認識 表情の解析 顔の⽐較 顔認識
DetectLabels DetectFaces CompareFaces IndexFaces
SearchFacesByImage
サンプル画像認識サービスとの通知連携
aws mackerel twilio_handson_public
AWS	Dev	Day	Tokyo	2017
• 2017/5/31(⽔)〜 6/2(⾦)
• 受付開始 9:00〜
• セッション 13:20〜
• 品川プリンスホテル
アネックスタワー 5F
プリンスホール
• 来場無料(要事前申し込み)
http://www.awssummit.tokyo/devday/index.html
5/31(⽔) 6/1(⽊) 6/2(⾦)
• Serverless Evolution Day• Microservices、DevOps、IoT、Deep Learning
など最先端技術にフォーカスした実践的なセッション
• Amazon.com CTO Werner Vogelsも登壇
ハンズオン
AWS	LambdaAWS	APIGWMonitoring	&	Alerting
閾値監視
APIGW EndpointをKick
Hands-on 内容
AWSマネージメントコンソールにログイン
まず始めに利⽤するリージョンを確認しましょう
東京リージョンが選択されていることを確認
Lambdaファンクションの作成
※ Lambda	Function	の名前はご⾃⾝でわかりやすく、⼀意に設定
Lambda ブループリントの選択
トリガーの設定でAPI Gatewayを選択
Lambda ファンクションの作成
API エンドポイントの確認
作成したエンドポイントが、異常時にmackerelからキックされる
では、やってみましょう!

More Related Content

aws mackerel twilio_handson_public