狠狠撸

狠狠撸Share a Scribd company logo
知らなきゃ損する!?
AWS ?Lambdaの使い?方
アマゾン ?データ ?サービス ?ジャパン ?株式会社
パートナーソリューションアーキテクト
榎並利利晃
?自?己紹介
?? 名前
–? 榎並 ?利利晃(えなみ ?としあき)
–? toshiake@amazon.co.jp
?? 役割
–? パートナーソリューションアーキテクト
–? 主にエマージングパートナー様を担当
?? 好きなAWSのサービス
–? Amazon ?Kinesis
–? AWS ?Lambda
@ToshiakiEnami
尝补尘产诲补祭り勃発!
AWS Lambda のご紹介 2015 JAWS沖縄
AWS Lambda のご紹介 2015 JAWS沖縄
AWS ?Lambdaとは
?? クラウド上で、イベントをトリガーに独?自のコード
を稼働させるComputeサービス
–? EC2インスタンスやOS等インフラの管理理作業が不不要
–? 毎?日数件から毎秒数千件のリクエストまで?自動的にスケール
–? 従量量課?金金、実際にコードが稼働した時間に対してのお?支払
–? 新たに追加された情報(イベント)に対して即座に応答するアプリ
ケーションを、特別な仕組みなく簡単に実装できる
特徴
インフラの管理理が不不要
?? ビジネスロジックにフォーカス
できる
?? コードをアップロードするだけ
で、あとはAWS ?Lambdaが以
下をハンドリング
–? キャパシティ
–? スケール
–? デプロイ
–? 耐障害性
–? モニタリング
–? ロギング
–? セキュリティパッチの適?用
オートスケール
?? イベントのレートに合うように
Lambdaが?自動でスケール
?? プロビジョニング中や完了了を気にす
る必要なし
?? コードが稼働した分だけのお?支払い
Bring ?your ?own ?code
?? Node.jsで書かれたコードを実?行行
?? コード内では以下も可能
–? スレッド/プロセスの?生成
–? バッチスクリプトや何らかの実?行行ファイルの
実?行行
–? /tmpのread/write
?? 各種ライブラリも利利?用可能
–? ネイティブライブラリも可能
–? 利利?用するライブラリを?一緒にアップロード
多彩なイベント呼び出し
?? Pull型
–? Amazon ?Kinesis
–? Amazon ?DynamoDB ?Streams
?? Push型
–? Amazon ?S3 ?Event ?Noti?cation
–? Amazon ?SNS
–? Invoke ?API(同期、?非同期)
細やかな料料?金金体系
?? 100ミリ秒単位でのコンピュー
ト時間に対する価格設定
?? リクエストに対する低額の課?金金
?? ?十分な无料料枠
ユースケース
イメージリサイズ、サムネイル?生成 ?
?? S3に画像がアップロードされたときにサムネイ
ルの?生成やリサイズを実?行行
AWS LambdaAmazon S3 Bucket イベント
元画像 サムネイル画像
1
2
3
値チェックや別テーブルへのコピー
?? DynamoDBへの書き込みに応じて値チェックを
しつつ別テーブルの更更新やプッシュ通知を実?行行
AWS Lambda
Amazon DynamoDB
Table and Stream
プッシュ通知
別テーブルを更新
監査と通知
?? S3に保管されるCloudTrailのログを分析し、怪
しい?行行動や異異常を検知したら通知する
AWS APIコール
AWS CloudTrail Logs
AWS Lambda
Bucketイベント プッシュ通知
?口コミアプリ
?? 投稿の書き込み/表?示はDynamoDBと直接
?? レートの計算はモバイルアプリから直接Lambdaを実?行行し?非
同期で実?行行
1. ?認証?認可
? ?FBアプリと連携
Cognito
DynamoDBApp ?with ?
AWS ?Mobile ?
SDK
2. ??口コミの投稿
? ?投稿内容とレーティング
4. ?過去の全データを元に平均値の計算と
? ? 結果のDynamoDBへの登録等
3. ?Lambda ?functionの起動
Lambda
Followers
写真共有モバイルアプリ
4. ?メタデータをDynamoDBに登録
-‐?? ?タイトル、コメント等
1. ?認証?認可
? ?FBアプリと連携
6. ?Push通知
-‐?? ?フレンドやフォロワーに通知
Cognito
Mobile ?Analytics
DynamoDB
S3
SNS7. ?画像をポストしたことをAnalyticsに登録
3. ?画像のリサイズ
2. ?S3への画像アップロード
5. ?結果をSNSへ通知
App ?with ?
AWS ?Mobile ?
SDK
IoT	
 ?BaaS	
 ?
Event:	
 ?	
 ?
Arrived	
 ?Home	
 ?
Command:	
 ?	
 ?
Lights	
 ?On	
 ?
デモ
イメージリサイズ、サムネイル?生成 ?
AWS LambdaAmazon S3 Bucket イベント
元画像 サムネイル画像
1
2
3
LambdaでCGI
EC2無しで動的なサイト構築も!
AWS上のシステムのインシデント管理理をkintoneで
AWS ?Lambdaアプリケーション
サーバ
CloudWatch ?
Logs
Amazon ?SNS
トリガー検知によるワークフローの?自動起票!
AWS ?Lambdaの使い?方
画?面
画?面
画?面
イベントソース
?? イベントの発?生元となるAWSリソース
?? 現時点以下のAWSサービスをサポート
–? Amazon ?S3
–? Amazon ?Kinesis
–? Amazon ?DynamoDB ?Stream(Preview)
–? Amazon ?Cognito
–? Amazon ?SNS
イベント例例(S3)
{
"Records": [
? ? ? -- 省省略略 –
? ? ? "s3": {
"s3SchemaVersion": "1.0",
"configurationId": "testConfigRule",
"bucket": {
"name": "sourcebucket",
"ownerIdentity": {
"principalId": "A3NL1KOZZKExample"
},
"arn": "arn:aws:s3:::mybucket"
},
"object": {
"key": "sourcebucket/HappyFace.jpg",
"size": 1024,
"eTag": "d41d8cd98f00b204e9800998ecf8427e"
}
}
}
]
}
イベント例例(Kinesis)
{
"Records": [
{
"awsRegion": "us-east-1",
"sequenceNumber": "196800000000000000000374",
"partitionKey": "2efdb0ea22685b46993e42a67302a001",
"eventSource": "aws:kinesis",
"data": "SOME CUSTOM DATA 1"
},
{
"awsRegion": "us-east-1",
"sequenceNumber": "196800000000000000000571",
"partitionKey": "2efdb0ea22685b46993e42a67302a003",
"eventSource": "aws:kinesis",
"data": "{ "key": "value" }"
}
]
}
ユーザアプリケーションからのInvoke
?? AWS ?SDKもしくはAWS ?Mobile ?SDKを利利?用
?? Invoke時にInvocation ?Typeを指定する
–? Event
?? ?非同期実?行行
?? レスポンス内容はリクエストが正常に受け付けられたかどうかのみ
–? RequestResponse
?? 同期実?行行
?? 実?行行が完了了時にレスポンスが返ってくる。レスポンス内容は
Lambdaファンクション内でセット可能
モニタリング
?? ダッシュボード
–? 全てのLambdaファンク
ションのリスト
–? 可視化されたメトリクス
?? CloudWatchを?用いた
Metricsの監視
–? Invocations
–? Errors
–? Duration
–? Throttle
制限事項
?? Lambdaファンクションのリソース
リソース 制限
/tmpスペース 512MB
ファイルディスクリプタ数 1024
プロセス数およびスレッド数(合計) 1024
同時リクエスト数(プレビュー期間中) 25リクエスト/秒
1リクエストあたりの実行時間(プレビュー期間中) 60秒
?? インプット
インプット 制限
zipファイル(圧縮) 30MB
zipファイル(無圧縮) 250MB
InvokeAsyncのリクエストボディ(JSON) 128KB
料料?金金体系
?? リクエスト ?(全リージョン)
–? ?月間100万リクエストまでは無料料
–? 超過分は$0.20/100万リクエスト
(1リクエストあたり$0.0000002)
?? 実?行行時間 ?(全リージョン)
–? 100ms単位で課?金金
–? 100ms以下は繰り上げで計算
–? メモリー容量量により単価および無
料料時間が異異なる
Memory
(MB)
Price per 100ms
($)
Free tier seconds
per month
128 0.000000208" 3,200,000
192 0.000000313" 2,133,333
256 0.000000417" 1,600,000
320 0.000000521" 1,280,000
384 0.000000625" 1,066,667
448 0.000000729" 914,286
512 0.000000834" 800,000
576 0.000000938" 711,111
640 0.000001042" 640,000
704 0.000001146" 581,818
768 0.00000125" 533,333
832 0.000001354" 492,308
896 0.000001459" 457,143
960 0.000001563" 426,667
1024 0.000001667" 400,000
2Tier ?Architecture
2-‐??Tier ?Architectureとは?
?? いわゆるサーバレスな、クライアントとバックエンドだけのアーキ
テクチャ
–? AWS ?SDKとマネージドサービスを積極的に利利?用
–? モバイルアプリやブラウザから直接AWSサービスを呼ぶ
?? 特にモバイルにおすすめ
直接呼び出し
2-‐??Tier ?Architectureのメリット
?? アプリの開発に多くのメリット:
–? バックエンド側の開発コストを最?小化
–? バックエンド側の運?用コストを最?小化
–? スケーラビリティの?心配なし
–? バックエンドのEC2を減らせるため?金金額?面でもローコスト(当社?比*)
?? 必要に応じてEC2も導?入できる安?心感
–? 後からバックエンド側にロジックを?入れてシステムの最適化ことも可能
?? よりビジネスに集中することが可能
* ?EC2で同規模のサーバを?立立てる場合に?比べ
まとめ
本?日のまとめ
?? AWS ?Lambdaは、インフラの管理理不不要で、?自分のコー
ドを実?行行できるコンピュートサービス
?? シンプルかつ可?用性の?高いアーキテクチャを構築する
ことができる
?? AWS ?Lambda含め、AWSマネージドサービスをうまく
活?用する2Tier-‐??Architectureでクラウドネイティブなシ
ステムを構築
ところで。。
办颈苍迟辞苍别と础奥厂の素敌な関係
kintoneとAWSは補完関係!
?? ?大量量なコンピュートやスト
レージが必要ところはAWS
?? 業務に近いところはkintone
kintoneとAWSは補完関係!
モバイル
センサー
親機
ダッシュ
ボードア
プリ
ワーク
フロー
例例えば、IoTのシステムを構築する場合
kintoneからの
定期データ取得
Amazon ML batch APIで予
測をクエリーする
kintoneとAWSは補完関係!
予測データ
セット
例例えば、Amazon ?Machine ?Learningを使ったデータ予測を?行行う場合
AWS Lambda のご紹介 2015 JAWS沖縄

More Related Content

AWS Lambda のご紹介 2015 JAWS沖縄