SlideShare a Scribd company logo
1 of 19
Download to read offline
俺のLambda
2015/11/19 JAWS-UG アーキテクチャ専門支部 クラウドネイティブ分科会 CDP議論会 #3

“Lambdaしばり”
moto <j3tm0t0>
JSON.stringify(me)
{
"id": "j3tm0t0",
"name": "Motokatsu Matsui",
"jobs": ["Programmer",
"Infra engineer",
"Cloud engineer",
undefined
],
"favorites":{
"AWS": [ "Lambda", "API Gateway"]
}
}
Twitter FB
過去に Lambda で作った物
Lambdacast
• S3 + Lambda を利用したPodcast(Videocast)配信の仕組み

S3にファイルをアップロードすると自動的に RSS feed を更新する

(ファイルはCloudFront経由での配信となる)
• EC2で *** のストリームを保存(録音)してS3にアップロード

→ スマホ等に自動配信
• 昨年のアドベントカレンダー

Qiita: AWS Lambda を CoffeeScript で書いてみた

http://qiita.com/j3tm0t0/items/1d79f393709ad3f1dcca
CloudFrontキャッシュ無効化
• S3のファイル更新時にCloudFrontのInvalidationを実施する
• Qiita: S3更新時にCloudFrontのInvalidationを実施する・改

http://qiita.com/j3tm0t0/items/00c49346c8e7fd89ff5e



元ネタ SPINF さんのブログ

AWS LambdaでS3更新時にCloudFrontのInvalidationを実施する

http://www.supinf.co.jp/tech/2014/12/05/s3-invalidate/
Server-less Contents Delivery
パターン
Slack bot その1
• 特定の bucket にファイルをアップロードすると

Lambda から Slack のチャンネルに通知が飛ぶ

(Slack Incoming Webhookを使用)
Slack bot その2
• Slack Outgoing Webhook

→ API Gateway に POST

→ Lambda で処理する
• いわゆる Chatops 的なツールを
量産できる!
Slack bot その3
• SORACOMのイベントハンドラーから Lambda が実行できます!

https://dev.soracom.io/jp/docs/event_handler/
• 通信容量が一定の容量を超えたら Slack に通知

Qiita: SORACOM Air のイベントハンドラーと AWS Lambda を連携してみる

http://qiita.com/j3tm0t0/items/71fe2d52397c5f37359b
Bot as a Service パターン
Twilio連携
• Twilioから固定電話に転送する際、日勤帯のみ転送し、時間外は自動
アナウンスを流すプログラム
• Twilio -> API Gateway -> Lambda
exports.handler = (event, context) ->
d = new Date
# UTC 1:00 - 7:59 = JST 10:00 - 16:59
if d.getUTCHours() in [1..7]
xml = '''
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial callerId="+8150xxxxxxxx">
<Number>+813xxxxxxxx</Number>
</Dial>
</Response>
'''
else
xml = '''
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say language="ja-jp">
株式会社 ◯◯◯◯ にお問い合わせいただき、誠に
ありがとうございます。
当窓口は、午前10時から午後5時までの受付とな
ります。
</Say>
</Response>
'''
context.succeed xml
Server-less API backend

パターン
アレゲな何か
• 構成的には Lambda -> SQS -> CloudWatch -> AutoScaling(spot)

外部から取得した情報に応じて必要時のみEC2を起動して処理する
• 定期的に実行したくて色々な試みをしてましたが、

re:Invent 2015 でスケジュール実行が実装されて全てが過去の物に
• それまでの紆余曲折は↓の記事にまとまってます

Qiita: Lambda を cron 的に使う Ver 2015.09

http://qiita.com/j3tm0t0/items/0e1320060791993a9d1a
Minimize Instance Usage
パターン
考えるポイント
Reactive vs Proactive
処理のトリガーが外部

(S3/AWS IoT/API Gatewayなど)

or
Lambda が自発的にキックされる

(タイマー実行)
どこにLambdaを入れるか
デバイス

↓

AWS IoT

↓

Lambda

(データの下処理)

↓

DynamoDB

(処理結果だけを保存)
デバイス

↓

AWS IoT

↓

DynamoDB

(とにかくrawデータを保存)

↓

Lambda

(何か別の処理)
Let’s
Discuss!

More Related Content

What's hot

AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
Takehiro Suemitsu
 

What's hot (20)

Tune Up AWS Lambda
Tune Up AWS LambdaTune Up AWS Lambda
Tune Up AWS Lambda
 
EC2上のWordPressをShifterに移行してみた!
 EC2上のWordPressをShifterに移行してみた! EC2上のWordPressをShifterに移行してみた!
EC2上のWordPressをShifterに移行してみた!
 
AWS Summit Chicago 2016発表のサービスアップデートまとめ
AWS Summit Chicago 2016発表のサービスアップデートまとめAWS Summit Chicago 2016発表のサービスアップデートまとめ
AWS Summit Chicago 2016発表のサービスアップデートまとめ
 
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
 
Introducing Serverless Computing (20160802)
Introducing Serverless Computing (20160802)Introducing Serverless Computing (20160802)
Introducing Serverless Computing (20160802)
 
New Cloud Design Pattern using Amazon Aurora
New Cloud Design Pattern using Amazon AuroraNew Cloud Design Pattern using Amazon Aurora
New Cloud Design Pattern using Amazon Aurora
 
はじめてのAWS Lambda
はじめてのAWS LambdaはじめてのAWS Lambda
はじめてのAWS Lambda
 
Serverless Architecture Overview #cdevc
Serverless Architecture Overview #cdevcServerless Architecture Overview #cdevc
Serverless Architecture Overview #cdevc
 
Raspberry Piを利用した顔の表情分析と感情を認識するシステム構築
Raspberry Piを利用した顔の表情分析と感情を認識するシステム構築Raspberry Piを利用した顔の表情分析と感情を認識するシステム構築
Raspberry Piを利用した顔の表情分析と感情を認識するシステム構築
 
Serverless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指すServerless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指す
 
20160312 Jaws Days 2016 API Gateway+Lambda
20160312 Jaws Days 2016 API Gateway+Lambda20160312 Jaws Days 2016 API Gateway+Lambda
20160312 Jaws Days 2016 API Gateway+Lambda
 
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しようCloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
 
Big DataとContainerとStream - AWSでのクラスタ構成とストリーム処理 -
Big DataとContainerとStream - AWSでのクラスタ構成とストリーム処理 -Big DataとContainerとStream - AWSでのクラスタ構成とストリーム処理 -
Big DataとContainerとStream - AWSでのクラスタ構成とストリーム処理 -
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
 
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみるAWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
 
IoT(Bluetooth mesh) × サーバーレス
IoT(Bluetooth mesh) × サーバーレスIoT(Bluetooth mesh) × サーバーレス
IoT(Bluetooth mesh) × サーバーレス
 
Serverless Architecture on AWS(20151023版)
Serverless Architecture on AWS(20151023版)Serverless Architecture on AWS(20151023版)
Serverless Architecture on AWS(20151023版)
 
画像処理をAWS LambdaのPythonで!
画像処理をAWS LambdaのPythonで!画像処理をAWS LambdaのPythonで!
画像処理をAWS LambdaのPythonで!
 
AWS Lambdaによるサーバレスアーキテクチャの基本に触れてみよう!【kintone & AWS ハンズオン祭り2015秋 B-2】
AWS Lambdaによるサーバレスアーキテクチャの基本に触れてみよう!【kintone & AWS ハンズオン祭り2015秋 B-2】AWS Lambdaによるサーバレスアーキテクチャの基本に触れてみよう!【kintone & AWS ハンズオン祭り2015秋 B-2】
AWS Lambdaによるサーバレスアーキテクチャの基本に触れてみよう!【kintone & AWS ハンズオン祭り2015秋 B-2】
 
Cloud Formation + Code シリーズで行うマルチアカウント・マルチリージョンデプロイ
Cloud Formation + Code シリーズで行うマルチアカウント・マルチリージョンデプロイCloud Formation + Code シリーズで行うマルチアカウント・マルチリージョンデプロイ
Cloud Formation + Code シリーズで行うマルチアカウント・マルチリージョンデプロイ
 

Similar to 俺のLambda

Jawsday2015 lambda(なにができるの? EC2はもう不要?)
Jawsday2015 lambda(なにができるの? EC2はもう不要?)Jawsday2015 lambda(なにができるの? EC2はもう不要?)
Jawsday2015 lambda(なにができるの? EC2はもう不要?)
Shiraishi Masayuki
 
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシングAWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
江藤 武司
 

Similar to 俺のLambda (20)

CloudFormation/SAMのススメ
CloudFormation/SAMのススメCloudFormation/SAMのススメ
CloudFormation/SAMのススメ
 
AWS Black Belt Tech シリーズ 2015 - AWS IoT
AWS Black Belt Tech シリーズ 2015 - AWS IoTAWS Black Belt Tech シリーズ 2015 - AWS IoT
AWS Black Belt Tech シリーズ 2015 - AWS IoT
 
Jawsday2015 lambda(なにができるの? EC2はもう不要?)
Jawsday2015 lambda(なにができるの? EC2はもう不要?)Jawsday2015 lambda(なにができるの? EC2はもう不要?)
Jawsday2015 lambda(なにができるの? EC2はもう不要?)
 
aws mackerel twilio_handson_public
aws mackerel twilio_handson_publicaws mackerel twilio_handson_public
aws mackerel twilio_handson_public
 
lambda-lgtm
lambda-lgtmlambda-lgtm
lambda-lgtm
 
エッジ制御によるIoT鉄道模型の自動運転
エッジ制御によるIoT鉄道模型の自動運転エッジ制御によるIoT鉄道模型の自動運転
エッジ制御によるIoT鉄道模型の自動運転
 
JAWS-UG 愛媛 第6回勉強会(Lambda)
JAWS-UG 愛媛 第6回勉強会(Lambda)JAWS-UG 愛媛 第6回勉強会(Lambda)
JAWS-UG 愛媛 第6回勉強会(Lambda)
 
5分でわかるAWS IoT! - あなたも今日からIoT生活 -
5分でわかるAWS IoT! - あなたも今日からIoT生活 -5分でわかるAWS IoT! - あなたも今日からIoT生活 -
5分でわかるAWS IoT! - あなたも今日からIoT生活 -
 
Azureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流についてAzureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流について
 
サーバレスアプリケーション構築入門
サーバレスアプリケーション構築入門サーバレスアプリケーション構築入門
サーバレスアプリケーション構築入門
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
 
サーバーレスアーキテクチャのすすめ(公開版)
サーバーレスアーキテクチャのすすめ(公開版)サーバーレスアーキテクチャのすすめ(公開版)
サーバーレスアーキテクチャのすすめ(公開版)
 
rails + serverengineで
お手軽daemon
rails + serverengineで
お手軽daemonrails + serverengineで
お手軽daemon
rails + serverengineで
お手軽daemon
 
iot@Loft#14-LT4-AI /機械学習に活用できる AWSのエッジソリューションのご紹介
iot@Loft#14-LT4-AI /機械学習に活用できる AWSのエッジソリューションのご紹介iot@Loft#14-LT4-AI /機械学習に活用できる AWSのエッジソリューションのご紹介
iot@Loft#14-LT4-AI /機械学習に活用できる AWSのエッジソリューションのご紹介
 
re:invent2018 総ざらえ
re:invent2018 総ざらえre:invent2018 総ざらえ
re:invent2018 総ざらえ
 
AWS IoT アップデート 2016.02.16
AWS IoT アップデート 2016.02.16AWS IoT アップデート 2016.02.16
AWS IoT アップデート 2016.02.16
 
はじめてのAws lambda
はじめてのAws lambdaはじめてのAws lambda
はじめてのAws lambda
 
SendGrid SDKを捨てた話
SendGrid SDKを捨てた話SendGrid SDKを捨てた話
SendGrid SDKを捨てた話
 
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシングAWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
 
AWS Black Belt Techシリーズ AWS SDK
AWS Black Belt Techシリーズ AWS SDKAWS Black Belt Techシリーズ AWS SDK
AWS Black Belt Techシリーズ AWS SDK
 

More from Motokatsu Matsui (8)

Serverless x IoT = "IoT Scale" backend
Serverless x IoT = "IoT Scale" backendServerless x IoT = "IoT Scale" backend
Serverless x IoT = "IoT Scale" backend
 
JAWS DAYS 2017「IoTとセキュリティ」ワークショップ
JAWS DAYS 2017「IoTとセキュリティ」ワークショップJAWS DAYS 2017「IoTとセキュリティ」ワークショップ
JAWS DAYS 2017「IoTとセキュリティ」ワークショップ
 
IoT で捗る!ダイエット
IoT で捗る!ダイエットIoT で捗る!ダイエット
IoT で捗る!ダイエット
 
Developers.IO 2016 | 疎結合で非同期なチーム開発
Developers.IO 2016 | 疎結合で非同期なチーム開発Developers.IO 2016 | 疎結合で非同期なチーム開発
Developers.IO 2016 | 疎結合で非同期なチーム開発
 
SORACOM Beam から AWS IoT へのデータ送信
SORACOM Beam から AWS IoT へのデータ送信SORACOM Beam から AWS IoT へのデータ送信
SORACOM Beam から AWS IoT へのデータ送信
 
Hairpin dx pattern
Hairpin dx patternHairpin dx pattern
Hairpin dx pattern
 
Vyatta meeting 2013 spring
Vyatta meeting 2013 springVyatta meeting 2013 spring
Vyatta meeting 2013 spring
 
Ec2 region migration_guide
Ec2 region migration_guideEc2 region migration_guide
Ec2 region migration_guide
 

俺のLambda