SlideShare a Scribd company logo
1 of 54
AWS Lambda Updates
Keisuke Nishitani (@Keisuke69)
Amazon Web Services Japan K.K.
Profile
Keisuke Nishitani
Solutions Architect, Amazon Web Service Japan K.K
@Keisuke69 Keisuke69
✤ AWSのソリューションアーキテクト
✤ Webサービス系
✤ モバイル系
✤ クラウドを使ったアプリ開発とかモバイル開発の話しをよくしてい
ます
✤ モバイルニンジャ1号機
✤ RESTおじさん
✤ Lambda Wizards
✤ 餃⼦の王将エヴァンジェリスト(⾃称)
Keisuke69 Keisuke69Keisuke69x
AWS Lambdaとは
他プラットフォームと⽐較すると
✤ EC2
✤ スケールの単位はインスタンス(仮想マシン)
✤ ハードウェアを抽象化
✤ コンテナ(Docker, ECS)
✤ スケール単位はアプリケーション
✤ OSを抽象化
✤ AWS Lambda
✤ スケール単位はファンクション
✤ ⾔語のランタイムを抽象化
どれを選ぶべきか?
✤ EC2
✤ OS、ネットワーク、ストレージのレベルで構成を制御したい
✤ 好みのOSを利⽤したい
✤ OS以上の全てを⾃分でコントロールしたい
✤ コンテナ(Docker, ECS)
✤ サーバを⾃分で構成して実⾏したい
✤ アプリケーションの構成を制御したい
✤ スケールを⾃分でコントロールしたい
✤ AWS Lambda
✤ 必要なときだけコードの実⾏を⾏いたい
✤ インフラの構成・管理を⾏いたくない
AWS Lambdaの利⽤パターン
利⽤パターン① : Data Processing
✤ リアルタイムファイル処理
✤ S3+Lambda
✤ カスタマ
✤ Seattle Times, PlayOn Sports
✤ ユースケース
✤ PDFの透かし埋め込み
✤ イメージのサムネイル⽣成や変換
✤ ドキュメントのメタデータをインデックス化
✤ ログの集約とフィルタリング
✤ RSSフィードの処理
✤ メディアコンテンツのバリデーション
✤ ポリシーエンジン(CloudTrailとの組み合わせ)
利⽤パターン① : Data Processing
✤ データロード/DBトリガー
✤ DynamoDB+Lambda
✤ カスタマ
✤ Localytics
✤ ユースケース
✤ データバリデーション
✤ バックアップ
✤ 分析
利⽤パターン① : Data Processing
✤ リアルタイムストリーム処理
✤ Kinesis+Lambda
✤ カスタマ
✤ Major League Baseball
✤ ユースケース
✤ クライアントのアクティビティトラッキング
✤ メトリクス⽣成
✤ データクレンジング
✤ ログフィルタリング
✤ インデクシングや検索
✤ ログルーティング
✤ IoTバックエンド
利⽤パターン② : バックエンド
✤ APIバックエンド
✤ カスタマ
✤ Vidroll
✤ ユースケース
✤ CRUD処理のバックエンド、バリデーション、ワークフローのトリガ
✤ 多様なコミュニティベースのフレームワーク(Serverless, Zappa, APEX)
✤ いわゆるサーバレスなWebアプリケーション・アーキテクチャ
✤ IOTバックエンド
✤ ユースケース
✤ デバイスのロジック、データ同期
利⽤パターン③ : その他
✤ ユースケース
✤ CloudWatchのアラームをSNS経由で受けとってイベントドリブンなインフラ
管理
✤ 定期処理の実⾏
✤ Alexa AppsとSlackの組み合わせでサーバレスな⾳声認識bot
✤ モバイルバックエンド
✤ AWSサービスの拡張として
✤ SWF– ワークフローのアクションとして
✤ CloudFormation - プロビジョニング時のカスタムリソース
✤ SES – インバウンドメールに対するカスタムレスポンス
✤ CodePipeline - デプロイ時のカスタムトリガー
AWS Lambda Updates
✤ Blueprint
✤ Python 2.7 サポート
✤ スケジュール実⾏
✤ バージョンとエイリアス
✤ VPCアクセス
✤ Node.js 4.3 サポート
Blueprint
Blueprint
✤ Lambdaファンクションの新規作成時に利⽤可能なサンプル集
✤ ユースケースに応じたイベントソースの設定と実際に動くコードが提
供されている
✤ Slack連携⽤のものもある
✤ 2016年3⽉2⽇現在、40種類を提供
✤ Node.jsとPythonのみ
✤ 必要に応じてカスタマイズして利⽤
Blueprint
ユースケースを選択
Blueprint
必要に応じて修正
Python 2.7サポート
Python 2.7のサポート
✤ LambdaファンクションをPython2.7で記述可能に
✤ Mobile SDKを含む全てのSDKで利⽤可能
✤ CLIから利⽤可能
✤ マネージメントコンソール(インラインエディタも利⽤可)
✤ Blueprintも利⽤可能
プログラミングモデル – handler –
✤ event
ファンクションに渡される情報。ディクショナリ型。
✤ context
ランタイム情報を格納。ファンクション内部から参照可能。
✤ 戻り値
呼び出しタイプに応じて異なる
✤ RequestResponse (同期)
関数の戻り値がLambdaファンクション呼び出し元へと返される。
✤ Event(⾮同期)
関数の戻り値がセットされていたとしても値は破棄される
✤ 何も返さない場合、nullという⽂字列が返される
def handler_name(event, context):
...
return some_value
プログラミングモデル – Context –
✤ ランタイムに関する情報が含まれ、contextオブジェクト(2番⽬のパラメータ)経由で関数内部からアクセ
ス可能
✤ メソッド
✤ get_remaining_time_in_millis():関数終了までの残り時間
✤ アトリビュート
✤ function_name:実⾏中のファクション名
✤ function_version:実⾏中ファンクションのバージョン。エイリアスを使⽤した場合、エイリアスが指すバージョン
✤ invoked_function_arn:呼び出しに使われたARN。ファンクションのARNもしくはエイリアスのARN
✤ memory_limit_in_mb:設定されたメモリサイズ
✤ aws_request_id:AWSリクエス ID。invoke メソッドを呼び出したクライアントに返される ID
✤ log_group_name:CloudWatch ロググループ名
✤ log_stream_name:CloudWatch ログストリーム名
✤ Identity:Amazon Cognitoに関する情報(Mobile SDKで呼び出した場合のみ)
✤ client_context:クライアントのアプリケーションやデバイスに関する情報(Mobile SDKで呼び出した場合のみ)
プログラミングモデル – Logging –
✤ 次のどちらかでログ出⼒し、いずれもCloudWatch Logsに出⼒される
✤ printステートメント
✤ loggingモジュールのLogger関数
✤ loggingモジュールを利⽤した場合、ログエントリにタイムスタンプや
ログレベルなどの情報が追加される
プログラミングモデル – 例外処理 –
✤ 関数内で例外が発⽣した場合、例外情報がJSON形式にシリアライズして出⼒される
✤ 呼び出しがRequestResponseの場合は呼び出し元に戻り値として返されるが、Eventの
場合はCloudWatch Logsに記録されるのみとなる
def lambda_handler(event, context):
raise Exception('failed')
{
"stackTrace": [
[
"/var/task/lambda_function.py",
14,
"lambda_handler",
"raise Exception('failed')" ]
],
"errorType": "Exception",
"errorMessage": "failed”
}
■ファンクションサンプル ■エラーレスポンスサンプル
スケジュール実⾏
スケジュール実⾏
✤ 特定時刻または繰り返しによるファンクション実⾏をサポート
✤ 最短は1分インターバル
✤ 設定はイベントソースから
✤ 「CloudWatch Events – Schedule」を選択
✤ Cron形式の指定もサポート
✤ Lambda側からはコンソールでの設定のみ
✤ CLIとSDKからの設定はCloudWatch Eventのものを利⽤する
スケジュール実⾏
スケジュール指定⽅法
✤ rate(Value Unit)
✤ インターバル実⾏する場合の指定⽅法
✤ Value: 正の整数を指定
✤ Unit:分、時、⽇を指定
✤ 例
✤ 5分ごとに実⾏ => rate(5 minites)
✤ 1時間ごとに実⾏ => rate(1 hour)
✤ 7⽇ごとに実⾏ => rate(7 days)
✤ Valueが単数じゃない場合はUnitも複数形にすること
スケジュール指定⽅法
✤ cron(Minutes Hours Day-of-month Month Day-of-week Year)
✤ 全フィールドが必須
✤ タイムゾーンはUTCのみ
✤ ワイルドカードも利⽤可
✤ 例
✤ 毎⽇午前 10:00 実⾏ => cron(0 10 * * ? *)
✤ 毎⽉曜〜⾦曜の午後 06:00に実⾏ => cron(0 18 ? * MON-FRI *)
✤ 毎⽉最初の⽇の午前 8:00に実⾏ => cron(0 8 1 * ? *)
✤ ⽉曜〜⾦曜の 10 分ごとに実⾏ => cron(0/10 * ? * MON-FRI *)
✤ ⽉曜〜⾦曜の午前 8:00 〜 午後 5:55の間5分ごとに実⾏
=> cron(0/5 8-17 ? * MON-FRI *)
Cron形式で利⽤可能なワイルドカード
⽂字 定義 例
/ 増分を指定します minutes フィールドの0/15は、15分ごとに実⾏が発⽣するように指定し
ます。
L "最後" を指定します Day-of-month フィールドに使⽤された場合、その⽉の末⽇が指定されま
す。Day-of-week フィールドに使⽤された場合、週の最後の曜⽇ (⼟曜
⽇) が指定されます。
W 平⽇を指定します ⽇付とともに使⽤した場合(5/W など)、その⽉の 5 ⽇に最も近い平⽇
が指定されます。5 ⽇が⼟曜⽇の場合、実⾏は⾦曜⽇に発⽣します。5 ⽇
が⽇曜⽇の場合、実⾏は⽉曜⽇に発⽣します。
# その⽉の n 番⽬の⽇を指定します 3#2 は、⽉の第 2 ⽕曜⽇を意味します(⽕曜⽇は週 7 ⽇の 3 番⽬の曜⽇
です)。
* すべての値を指定します Day-of-month フィールドで使⽤した場合、⽉のすべて⽇を意味します。
? 値を指定しません 指定した別の値とともに使⽤されます。たとえば、特定の⽇付を指定した
が、その⽇が何曜⽇であってもかまわない場合です。
- 範囲を指定します 10-12 は 10、11、および 12 を意味します
, 追加の値を指定します SUN, MON, TUE は、⽇曜⽇、⽉曜⽇、および⽕曜⽇を意味します
/ 増分を指定します 5/10 は、5、15、25、35 などを意味します
バージョンとエイリアス
バージョニング
✤ ある⼀時点のLambdaファンクションをバージョンとして管理可能
✤ 新しいバージョンはいつでも発⾏可能
✤ Lambdaファンクションの作成/更新時にpublishパラメータを追加する
✤ PublishVersionを実⾏することで明⽰的に発⾏することも可能
✤ バージョンの発⾏をするまでは$LATESTが唯⼀のバージョンとなる
✤ ⼀度発⾏すると構成も含めて⼀切変更不可
✤ 単純にバージョン番号がインクリメントする
exports.handler =
function(event,context)
{context.succeed(“bye”);}
exports.handler =
function(event,context)
{context.succeed(“hi”);}
Version:1
Version:2
エイリアス
✤ 特定バージョンに対するポインタのようなもの
✤ エイリアスを作成することでバージョン番号を把握していなくても指
定バージョンを呼び出せる
✤ いつでも付け替え可能
Version: 1
Arias: Prod
Version: $LATEST
Arias: Dev
Version: 1 Version: $LATEST
Arias: Dev
Version: 2
Arias: Prod
変更前
変更後
(新規バージョン発⾏後)
Prodというエイリアスを
1から2へ付け替え
ファンクションの指定⽅法
✤ バージョン発⾏前、最新バージョンを指定する場合:
FunctionName
FunctionName:$LATEST
✤ 特定バージョンを指定する場合
FunctionName:1
FunctionName:2
✤ エイリアスで指定する場合:
FunctionName:production
FunctionName:v1_2_3_4
その他アップデート
その他アップデート
✤ タイムアウトの最⼤が60秒から300秒に
✤ CloudWatch Eventsとの連携
✤ コードストレージが1.5GBから75GBに
VPCアクセス
Photo credit: Matthew Wilkinson via Visual Hunt / CC BY-ND
VPCアクセス
✤ VPC内のリソースへインターネットを経由せずにアクセス可能
✤ Amazon Elasticache / Amazon RDS
✤ Private EC2 endpoints
✤ その他全てのVPC内リソース
✤ VPC内リソースにアクセスさせたいLambdaファンクションに対してVPCサブ
ネットおよびセキュリティグループを指定
✤ 新規作成時だけでなく既存のものを後から変更することも可能
✤ AZごとにサブネットを指定しておくのがおすすめ
✤ Elastic Network Interface(ENI)を利⽤して実現
✤ 作成・削除はLambdaによって完全にコントロールされる
✤ Lambdaファンクションへの初回アクセス時などENIの作成を伴う場合、最⼤60秒程度必要
✤ ENIには指定したサブネットのIPがDHCPで動的に割り当てられる
✤ ファンクションに割り当てるIAM Roleに”AWSLambdaVPCAccessExecutionRole”というポリ
シーをアタッチしておくこと
Photo credit: Matthew Wilkinson via Visual Hunt / CC BY-ND
Photo credit: Matthew Wilkinson via Visual Hunt / CC BY-ND
VPCアクセスの注意点
✤ 設定をしたタイミングからインターネットアクセスは不可となる
✤ 必要な場合はNATインスタンスを⽤意すること
✤ 充分な数の ENI またはサブネット IP がない場合は、リクエスト数が増え
た場合に失敗する
✤ このエラーについては現在のところCloudWatch Logsには記録されない
✤ コンソールで実⾏するなど、同期実⾏することでエラー応答は取得できる
✤ 必要なENIのキャパシティは以下の計算式でざっくりと計算可能
Projected peak concurrent executions * (Memory in GB / 1.5GB)
Photo credit: Tiberiu Ana via Visualhunt.com / CC BY
Node.js 4.3 サポート
Node.js 4.3のサポート
✤ 利⽤可能なNode.jsに4.3.2を追加
✤ 0.10も継続利⽤可能
✤ 2016年10⽉までは0.10での新規作成もサポート
✤ Node.js v4の特徴
✤ Node.jsとio.jsが統合。io.jsがv1〜v3までリリースされていたためv0.12からv4
に
✤ ES6(ECMAScript 2015、ES2015)のサポート範囲が拡⼤
✤ Allow関数
✤ “ let ”と “ const ”
✤ Promise
プログラミングモデルの変更
✤ コールバックモデルの導⼊
✤ context.done(), context.succeed(), context.fail()の3つのメソッドの代わりにコー
ルバックを利⽤
✤ contextオブジェクトのメソッドは継続して利⽤可能だが今後はコールバックモ
デルが推奨
✤ v0.10では利⽤不可
'use strict';
exports.handler = (event, context, callback) => {
console.log('value1 =', event.key1);
callback(null, event.key1);
};
コールバック
✤ Lambdaファンクションの返り値を定義する新しいオプション
✤ 何も指定されていない場合はファンクションの結果としてnullが返る
✤ contextオブジェクトに追加されたcallbackWaitsForEmptyEventLoop というプロパティで動作を制
御可能
✤ デフォルトはtrueになっており、全ての⾮同期処理の完了待ってレスポンス
✤ falseにするとコールバックがコールされると即座にフリーズ(v0.10と同じ)
callback(Error error, Object result);
シンタックス
✤ errorはファンクションの実⾏が失敗したときの結果を受け取るためのオプショナルパラメータ
✤ ファンクションが成功した場合はnullになる
✤ resultはファンクションの実⾏が成功したときに返す結果になる
✤ 実⾏が失敗した場合はerrorにその情報が格納され、このパラメータは無視される
AWS Lambda Tips
コンテナの再利⽤
✤ Lambdaファンクションはコンテナ(Sandbox)内で実⾏される
✤ ファンクション単位で隔離
✤ ファンクション作成後、もしくはコードや設定更新後の初回実⾏時は新たにコンテナが
作成され、ファンクション⽤のコードがコンテナ内にロードされる
✤ ハンドラが最初に呼び出される前に初期化処理がコンテナの⽣成ごとに⼀度だけ実⾏される
✤ ファンクションが終了し、ある程度時間が経過したのち再度実⾏される場合は再度、コ
ンテナの⽣成が⾏われる
✤ コードの変更がなく前回の実⾏から時間が⽴っていない場合はコンテナを再利⽤する
✤ 初期化処理をスキップするためパフォーマンス上のアドバンテージがある
✤ 再利⽤された場合、最後に/tmpに書き込んだ内容も残っている(ただし、あてにはしないこと)
✤ エイリアスを使っていて付け替えた場合もエイリアスの作成先となるコンテナを可能であれば再利
⽤する
Idempotency
✤ 冪等性はお客様のコードで確保する必要がある
✤ AWS Lambdaで保証しているのは最低1回実⾏することであり1回しか実⾏しな
いことではない
✤ 同⼀イベントで同⼀Lambdaファンクションが2回起動されることがまれに発⽣
する
✤ DynamoDBを利⽤するなどして冪等性を担保する実装を⾏うこと
Retries on Errors
Event	Source Model Invocation Type Retries on	Errors
Amazon	S3 Non-stream Async Up	to	3	times.
Amazon	Kinesis	Streams Stream-based Sync Until data	expires.
Amazon	DynamoDB Stream-based Sync Until data	expires.
Amazon Simple	Notification	Service Non-stream Async Up	to	3	times.
Amazon	Echo	(Alexa) Non-stream Sync Return 429	error.
Amazon	CloudWatch	Logs Non-stream Async Up	to	3	times.
AWS	CloudFormation Non-stream Async Up	to	3	times.
Amazon	Cognito Non-stream Sync Return 429	error.
AWS IoT Non-stream Async Up	to	3	times.
Amazon	CloudWatch	Events Non-stream Async Up	to	3	times.
Scheduled	 Event Non-stream Async Up	to	3	times.
Amazon	API	Gateway Non-stream Sync Return 429	error.
Amazon	Simple Email	Service Non-stream Async Up	to	3	times.
AWS Config Non-stream Async Up	to	3	times.
Custom	Event Non-stream Sync/Async Return 429	error	/	Up	to	3	times.
同時実⾏数の考え⽅
✤ イベントソースがAmazon Kinesis / DynamoDBの場合、シャード数と等しい
✤ ストリームのシャードごとに同時に実⾏されるため
✤ 例:100シャードのAmazon Kinesis ストリームの場合、同時実⾏数はどの時点でも最⼤ 100 件。
そのうちアクティブなシャードが10個だった場合、実際の同時実⾏数は10となる。
✤ それ以外は、(1 秒あたりのリクエスト数 * 関数の実⾏時間)となる。たとえば、
関数が 1 秒あたりのリクエストが10 件で平均実⾏数が3秒の場合、同時実⾏数は
30となる
1s 2s 3s 4s 5s
10 req/sec
Avg 3s / exec
“同時”に実⾏されているタイミング
同時実⾏数を越えた場合
✤ 同時実⾏数を越えた場合(スロットリングされた場合)の挙動はファンクション
の呼び出し⽅によって異なる
✤ 同期の場合
✤ 呼び出し元には429エラーがレスポンスされる
✤ RequestResponseでのカスタムイベントやAPI Gatewayのバックエンドの場合、呼び出し元で429を受け
取ってリトライ処理を実装する
✤ ⾮同期の場合
✤ スロットルされたイベントは最⼤ 6 時間再試⾏される
✤ S3のイベントの場合はこの6時間のリトライが失敗すると最⼤24時間までイベントを再送する
✤ 15〜30 分程度は、トラフィックの急激な上昇によるものとして許容される
✤ イベントソースがKinesisもしくはDynamoDBの場合
✤ データの有効期限が切れるまで (Amazon Kinesisの場合は最⼤ 7 ⽇間)、スロットルされたイベントが再試
⾏される
✤ スロットルされたリクエストはブロックとして扱われ、そのレコードのバッチの有効期限が切れるか処理
が成功するまで、ストリームから新しいレコードの読み込みが⾏われない
事例
VidRoll
✤ 課題
✤ EC2の管理が難しくなりつつあっ
た
✤ ITインフラではなくビジネスへの
フォーカスが必要
✤ 解決⽅法
✤ プレイヤーがAPI Gateway経由で
Lambdaを実⾏
✤ 動画のリアルタイム変換にも利⽤
✤ ベネフィット
✤ ⽣産性が向上し、収益が10倍に
なっても、エンジニアの追加なし
easy ten
Mobile app thathelps you learn
10 new,foreign words a day
Users have learned
170 000 000+
new words
• Featured in 85+ countries
• Top 5 grossing apps overall(Russia)
• Top 8 grossing apps overall(Brazil)
1 200 000+
downloads
スクリーンショット
これまでのアプローチ
✤ モノリシックなアプリを複数の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
AWS Lambda Updates

More Related Content

What's hot

Serverless Architecture on AWS (20151201版)
Serverless Architecture on AWS (20151201版)Serverless Architecture on AWS (20151201版)
Serverless Architecture on AWS (20151201版)Keisuke Nishitani
 
モバイル開発を支えるAWS Mobile Services
モバイル開発を支えるAWS Mobile Servicesモバイル開発を支えるAWS Mobile Services
モバイル開発を支えるAWS Mobile ServicesKeisuke Nishitani
 
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+LambdaKazuki Ueki
 
Scale Your Business without Servers
Scale Your Business without ServersScale Your Business without Servers
Scale Your Business without ServersKeisuke Nishitani
 
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみるAWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみるTakashi Makino
 
AWS Lambda のご紹介 2015 JAWS沖縄
AWS Lambda のご紹介 2015 JAWS沖縄AWS Lambda のご紹介 2015 JAWS沖縄
AWS Lambda のご紹介 2015 JAWS沖縄Toshiaki Enami
 
クラウド時代のソフトウェアアーキテクチャ
クラウド時代のソフトウェアアーキテクチャクラウド時代のソフトウェアアーキテクチャ
クラウド時代のソフトウェアアーキテクチャKeisuke Nishitani
 
Serverless Architecture on AWS(20151121版)
Serverless Architecture on AWS(20151121版)Serverless Architecture on AWS(20151121版)
Serverless Architecture on AWS(20151121版)Keisuke Nishitani
 
Serverless Architecture on AWS(20151023版)
Serverless Architecture on AWS(20151023版)Serverless Architecture on AWS(20151023版)
Serverless Architecture on AWS(20151023版)Keisuke Nishitani
 
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しようCloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しようEiji KOMINAMI
 
Application Deployment on AWS
Application Deployment on AWSApplication Deployment on AWS
Application Deployment on AWSEiji Shinohara
 
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発真吾 吉田
 
20160526 AWSサービスアップデート
20160526 AWSサービスアップデート20160526 AWSサービスアップデート
20160526 AWSサービスアップデートGenta Watanabe
 
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjpAWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjpMasahiro NAKAYAMA
 
AWS Summit Chicago 2016発表のサービスアップデートまとめ
AWS Summit Chicago 2016発表のサービスアップデートまとめAWS Summit Chicago 2016発表のサービスアップデートまとめ
AWS Summit Chicago 2016発表のサービスアップデートまとめAmazon Web Services Japan
 
AWSのサーバレス関連アップデートを10分で紹介します
AWSのサーバレス関連アップデートを10分で紹介しますAWSのサーバレス関連アップデートを10分で紹介します
AWSのサーバレス関連アップデートを10分で紹介しますKeisuke Nishitani
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldKeisuke Nishitani
 
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へAWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へAmazon Web Services Japan
 
AWS Lambda and Amazon API Gateway
AWS Lambda and Amazon API GatewayAWS Lambda and Amazon API Gateway
AWS Lambda and Amazon API GatewayShinpei Ohtani
 

What's hot (20)

Serverless Architecture on AWS (20151201版)
Serverless Architecture on AWS (20151201版)Serverless Architecture on AWS (20151201版)
Serverless Architecture on AWS (20151201版)
 
AWS Lambda Update
AWS Lambda UpdateAWS Lambda Update
AWS Lambda Update
 
モバイル開発を支えるAWS Mobile Services
モバイル開発を支えるAWS Mobile Servicesモバイル開発を支えるAWS Mobile Services
モバイル開発を支えるAWS Mobile Services
 
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
 
Scale Your Business without Servers
Scale Your Business without ServersScale Your Business without Servers
Scale Your Business without Servers
 
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみるAWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
 
AWS Lambda のご紹介 2015 JAWS沖縄
AWS Lambda のご紹介 2015 JAWS沖縄AWS Lambda のご紹介 2015 JAWS沖縄
AWS Lambda のご紹介 2015 JAWS沖縄
 
クラウド時代のソフトウェアアーキテクチャ
クラウド時代のソフトウェアアーキテクチャクラウド時代のソフトウェアアーキテクチャ
クラウド時代のソフトウェアアーキテクチャ
 
Serverless Architecture on AWS(20151121版)
Serverless Architecture on AWS(20151121版)Serverless Architecture on AWS(20151121版)
Serverless Architecture on AWS(20151121版)
 
Serverless Architecture on AWS(20151023版)
Serverless Architecture on AWS(20151023版)Serverless Architecture on AWS(20151023版)
Serverless Architecture on AWS(20151023版)
 
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しようCloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
 
Application Deployment on AWS
Application Deployment on AWSApplication Deployment on AWS
Application Deployment on AWS
 
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
 
20160526 AWSサービスアップデート
20160526 AWSサービスアップデート20160526 AWSサービスアップデート
20160526 AWSサービスアップデート
 
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjpAWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
 
AWS Summit Chicago 2016発表のサービスアップデートまとめ
AWS Summit Chicago 2016発表のサービスアップデートまとめAWS Summit Chicago 2016発表のサービスアップデートまとめ
AWS Summit Chicago 2016発表のサービスアップデートまとめ
 
AWSのサーバレス関連アップデートを10分で紹介します
AWSのサーバレス関連アップデートを10分で紹介しますAWSのサーバレス関連アップデートを10分で紹介します
AWSのサーバレス関連アップデートを10分で紹介します
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へAWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
 
AWS Lambda and Amazon API Gateway
AWS Lambda and Amazon API GatewayAWS Lambda and Amazon API Gateway
AWS Lambda and Amazon API Gateway
 

Viewers also liked

AWS Lambda にまつわるおいしい話
AWS Lambda にまつわるおいしい話AWS Lambda にまつわるおいしい話
AWS Lambda にまつわるおいしい話美佳 松井
 
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
(CMP407) Lambda as Cron: Scheduling Invocations in AWS LambdaAmazon Web Services
 
AWS Black Belt Techシリーズ AWS Lambda Updates
AWS Black Belt Techシリーズ AWS Lambda UpdatesAWS Black Belt Techシリーズ AWS Lambda Updates
AWS Black Belt Techシリーズ AWS Lambda UpdatesAmazon Web Services Japan
 
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch LogsAWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch LogsAmazon Web Services Japan
 
Going Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No ServersGoing Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No ServersKeisuke Nishitani
 
[Black Belt Online Seminar] AWS上でのログ管理
[Black Belt Online Seminar] AWS上でのログ管理[Black Belt Online Seminar] AWS上でのログ管理
[Black Belt Online Seminar] AWS上でのログ管理Amazon Web Services Japan
 
Introducing Amazon Rekognition, Amazon Polly and Amazon Lex
Introducing Amazon Rekognition, Amazon Polly and Amazon LexIntroducing Amazon Rekognition, Amazon Polly and Amazon Lex
Introducing Amazon Rekognition, Amazon Polly and Amazon LexKeisuke Nishitani
 
Building Scalable Application on the Cloud
Building Scalable Application on the CloudBuilding Scalable Application on the Cloud
Building Scalable Application on the CloudKeisuke Nishitani
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことKeisuke Nishitani
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...SlideShare
 

Viewers also liked (16)

AWS Lambda にまつわるおいしい話
AWS Lambda にまつわるおいしい話AWS Lambda にまつわるおいしい話
AWS Lambda にまつわるおいしい話
 
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
 
AWS Black Belt Techシリーズ AWS Lambda Updates
AWS Black Belt Techシリーズ AWS Lambda UpdatesAWS Black Belt Techシリーズ AWS Lambda Updates
AWS Black Belt Techシリーズ AWS Lambda Updates
 
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch LogsAWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
 
AWS Black Belt Techシリーズ AWS Lambda
AWS Black Belt Techシリーズ AWS LambdaAWS Black Belt Techシリーズ AWS Lambda
AWS Black Belt Techシリーズ AWS Lambda
 
AWS Lambdaを紐解く
AWS Lambdaを紐解くAWS Lambdaを紐解く
AWS Lambdaを紐解く
 
Going Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No ServersGoing Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No Servers
 
Introduction to AWS X-Ray
Introduction to AWS X-RayIntroduction to AWS X-Ray
Introduction to AWS X-Ray
 
What's new with Serverless
What's new with ServerlessWhat's new with Serverless
What's new with Serverless
 
[Black Belt Online Seminar] AWS上でのログ管理
[Black Belt Online Seminar] AWS上でのログ管理[Black Belt Online Seminar] AWS上でのログ管理
[Black Belt Online Seminar] AWS上でのログ管理
 
Introducing Amazon Rekognition, Amazon Polly and Amazon Lex
Introducing Amazon Rekognition, Amazon Polly and Amazon LexIntroducing Amazon Rekognition, Amazon Polly and Amazon Lex
Introducing Amazon Rekognition, Amazon Polly and Amazon Lex
 
What's new with Serverless
What's new with ServerlessWhat's new with Serverless
What's new with Serverless
 
Building Scalable Application on the Cloud
Building Scalable Application on the CloudBuilding Scalable Application on the Cloud
Building Scalable Application on the Cloud
 
Tune Up AWS Lambda
Tune Up AWS LambdaTune Up AWS Lambda
Tune Up AWS Lambda
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 

Similar to AWS Lambda Updates

LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係Hiraku Komuro
 
Aws summits2014 エンタープライズ向けawscdpネットワーク編
Aws summits2014 エンタープライズ向けawscdpネットワーク編Aws summits2014 エンタープライズ向けawscdpネットワーク編
Aws summits2014 エンタープライズ向けawscdpネットワーク編Boss4434
 
AWS re:Invent 2019 recap For Digital Native Business
AWS re:Invent 2019 recap For Digital Native BusinessAWS re:Invent 2019 recap For Digital Native Business
AWS re:Invent 2019 recap For Digital Native BusinessAmazon Web Services Japan
 
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-publicAmazon Web Services Japan
 
[Sumo Logic x AWS 共催セミナー_20190829] Sumo Logic on AWS -AWS を活用したログ分析とセキュリティモニ...
[Sumo Logic x AWS 共催セミナー_20190829] Sumo Logic on AWS  -AWS を活用したログ分析とセキュリティモニ...[Sumo Logic x AWS 共催セミナー_20190829] Sumo Logic on AWS  -AWS を活用したログ分析とセキュリティモニ...
[Sumo Logic x AWS 共催セミナー_20190829] Sumo Logic on AWS -AWS を活用したログ分析とセキュリティモニ...Takanori Ohba
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術finoue
 
[Cloud OnAir] Google Cloud とつなぐ色々な方法 〜 つなぐ方法をゼロからご紹介します〜 2019年1月31日 放送
[Cloud OnAir] Google Cloud とつなぐ色々な方法 〜 つなぐ方法をゼロからご紹介します〜 2019年1月31日 放送[Cloud OnAir] Google Cloud とつなぐ色々な方法 〜 つなぐ方法をゼロからご紹介します〜 2019年1月31日 放送
[Cloud OnAir] Google Cloud とつなぐ色々な方法 〜 つなぐ方法をゼロからご紹介します〜 2019年1月31日 放送Google Cloud Platform - Japan
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWINYoshifumi Kawai
 
Amazon Web Services(AWS)とcloudpack について
Amazon Web Services(AWS)とcloudpack についてAmazon Web Services(AWS)とcloudpack について
Amazon Web Services(AWS)とcloudpack についてHiroyasu Suzuki
 
スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由Serverworks Co.,Ltd.
 
Aws tools for power shellをつかいこなそう
Aws tools for power shellをつかいこなそうAws tools for power shellをつかいこなそう
Aws tools for power shellをつかいこなそうGenta Watanabe
 
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ  Amazon CloudWatch & Auto ScalingAWS Black Belt Techシリーズ  Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto ScalingAmazon Web Services Japan
 
6 月 18 日 Next - Kubernetes のコンテナ技術ですべてをシンプルに
6 月 18 日 Next - Kubernetes のコンテナ技術ですべてをシンプルに6 月 18 日 Next - Kubernetes のコンテナ技術ですべてをシンプルに
6 月 18 日 Next - Kubernetes のコンテナ技術ですべてをシンプルにGoogle Cloud Platform - Japan
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShiftEtsuji Nakai
 
開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリング開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリングAmazon Web Services Japan
 
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送Google Cloud Platform - Japan
 
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編Amazon Web Services Japan
 
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践 仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践 bitbank, Inc. Tokyo, Japan
 

Similar to AWS Lambda Updates (20)

20170413 aws–windows users meetup
20170413 aws–windows users meetup20170413 aws–windows users meetup
20170413 aws–windows users meetup
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
 
Amazon EC2 Container Service Deep dive
Amazon EC2 Container Service Deep diveAmazon EC2 Container Service Deep dive
Amazon EC2 Container Service Deep dive
 
Aws summits2014 エンタープライズ向けawscdpネットワーク編
Aws summits2014 エンタープライズ向けawscdpネットワーク編Aws summits2014 エンタープライズ向けawscdpネットワーク編
Aws summits2014 エンタープライズ向けawscdpネットワーク編
 
AWS re:Invent 2019 recap For Digital Native Business
AWS re:Invent 2019 recap For Digital Native BusinessAWS re:Invent 2019 recap For Digital Native Business
AWS re:Invent 2019 recap For Digital Native Business
 
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public
 
[Sumo Logic x AWS 共催セミナー_20190829] Sumo Logic on AWS -AWS を活用したログ分析とセキュリティモニ...
[Sumo Logic x AWS 共催セミナー_20190829] Sumo Logic on AWS  -AWS を活用したログ分析とセキュリティモニ...[Sumo Logic x AWS 共催セミナー_20190829] Sumo Logic on AWS  -AWS を活用したログ分析とセキュリティモニ...
[Sumo Logic x AWS 共催セミナー_20190829] Sumo Logic on AWS -AWS を活用したログ分析とセキュリティモニ...
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
[Cloud OnAir] Google Cloud とつなぐ色々な方法 〜 つなぐ方法をゼロからご紹介します〜 2019年1月31日 放送
[Cloud OnAir] Google Cloud とつなぐ色々な方法 〜 つなぐ方法をゼロからご紹介します〜 2019年1月31日 放送[Cloud OnAir] Google Cloud とつなぐ色々な方法 〜 つなぐ方法をゼロからご紹介します〜 2019年1月31日 放送
[Cloud OnAir] Google Cloud とつなぐ色々な方法 〜 つなぐ方法をゼロからご紹介します〜 2019年1月31日 放送
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
 
Amazon Web Services(AWS)とcloudpack について
Amazon Web Services(AWS)とcloudpack についてAmazon Web Services(AWS)とcloudpack について
Amazon Web Services(AWS)とcloudpack について
 
スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由
 
Aws tools for power shellをつかいこなそう
Aws tools for power shellをつかいこなそうAws tools for power shellをつかいこなそう
Aws tools for power shellをつかいこなそう
 
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ  Amazon CloudWatch & Auto ScalingAWS Black Belt Techシリーズ  Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
 
6 月 18 日 Next - Kubernetes のコンテナ技術ですべてをシンプルに
6 月 18 日 Next - Kubernetes のコンテナ技術ですべてをシンプルに6 月 18 日 Next - Kubernetes のコンテナ技術ですべてをシンプルに
6 月 18 日 Next - Kubernetes のコンテナ技術ですべてをシンプルに
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
 
開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリング開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリング
 
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
 
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
 
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践 仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
 

More from Keisuke Nishitani

AWSにおける モバイル向けサービス及び事例紹介(20151211)
AWSにおける モバイル向けサービス及び事例紹介(20151211)AWSにおける モバイル向けサービス及び事例紹介(20151211)
AWSにおける モバイル向けサービス及び事例紹介(20151211)Keisuke Nishitani
 
Automated Testing on AWS Device Farm
Automated Testing on AWS Device FarmAutomated Testing on AWS Device Farm
Automated Testing on AWS Device FarmKeisuke Nishitani
 
クラウドネイティブ化する未来
クラウドネイティブ化する未来クラウドネイティブ化する未来
クラウドネイティブ化する未来Keisuke Nishitani
 
UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値Keisuke Nishitani
 
RubyとAmazon Web Service で生み出す新しい価値
RubyとAmazon Web Serviceで生み出す新しい価値RubyとAmazon Web Serviceで生み出す新しい価値
RubyとAmazon Web Service で生み出す新しい価値Keisuke Nishitani
 

More from Keisuke Nishitani (7)

Serverless Anti-Patterns
Serverless Anti-PatternsServerless Anti-Patterns
Serverless Anti-Patterns
 
RESTful API 入門
RESTful API 入門RESTful API 入門
RESTful API 入門
 
AWSにおける モバイル向けサービス及び事例紹介(20151211)
AWSにおける モバイル向けサービス及び事例紹介(20151211)AWSにおける モバイル向けサービス及び事例紹介(20151211)
AWSにおける モバイル向けサービス及び事例紹介(20151211)
 
Automated Testing on AWS Device Farm
Automated Testing on AWS Device FarmAutomated Testing on AWS Device Farm
Automated Testing on AWS Device Farm
 
クラウドネイティブ化する未来
クラウドネイティブ化する未来クラウドネイティブ化する未来
クラウドネイティブ化する未来
 
UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値
 
RubyとAmazon Web Service で生み出す新しい価値
RubyとAmazon Web Serviceで生み出す新しい価値RubyとAmazon Web Serviceで生み出す新しい価値
RubyとAmazon Web Service で生み出す新しい価値
 

Recently uploaded

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Recently uploaded (8)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

AWS Lambda Updates

  • 1. AWS Lambda Updates Keisuke Nishitani (@Keisuke69) Amazon Web Services Japan K.K.
  • 2. Profile Keisuke Nishitani Solutions Architect, Amazon Web Service Japan K.K @Keisuke69 Keisuke69 ✤ AWSのソリューションアーキテクト ✤ Webサービス系 ✤ モバイル系 ✤ クラウドを使ったアプリ開発とかモバイル開発の話しをよくしてい ます ✤ モバイルニンジャ1号機 ✤ RESTおじさん ✤ Lambda Wizards ✤ 餃⼦の王将エヴァンジェリスト(⾃称) Keisuke69 Keisuke69Keisuke69x
  • 4. 他プラットフォームと⽐較すると ✤ EC2 ✤ スケールの単位はインスタンス(仮想マシン) ✤ ハードウェアを抽象化 ✤ コンテナ(Docker, ECS) ✤ スケール単位はアプリケーション ✤ OSを抽象化 ✤ AWS Lambda ✤ スケール単位はファンクション ✤ ⾔語のランタイムを抽象化
  • 5. どれを選ぶべきか? ✤ EC2 ✤ OS、ネットワーク、ストレージのレベルで構成を制御したい ✤ 好みのOSを利⽤したい ✤ OS以上の全てを⾃分でコントロールしたい ✤ コンテナ(Docker, ECS) ✤ サーバを⾃分で構成して実⾏したい ✤ アプリケーションの構成を制御したい ✤ スケールを⾃分でコントロールしたい ✤ AWS Lambda ✤ 必要なときだけコードの実⾏を⾏いたい ✤ インフラの構成・管理を⾏いたくない
  • 7. 利⽤パターン① : Data Processing ✤ リアルタイムファイル処理 ✤ S3+Lambda ✤ カスタマ ✤ Seattle Times, PlayOn Sports ✤ ユースケース ✤ PDFの透かし埋め込み ✤ イメージのサムネイル⽣成や変換 ✤ ドキュメントのメタデータをインデックス化 ✤ ログの集約とフィルタリング ✤ RSSフィードの処理 ✤ メディアコンテンツのバリデーション ✤ ポリシーエンジン(CloudTrailとの組み合わせ)
  • 8. 利⽤パターン① : Data Processing ✤ データロード/DBトリガー ✤ DynamoDB+Lambda ✤ カスタマ ✤ Localytics ✤ ユースケース ✤ データバリデーション ✤ バックアップ ✤ 分析
  • 9. 利⽤パターン① : Data Processing ✤ リアルタイムストリーム処理 ✤ Kinesis+Lambda ✤ カスタマ ✤ Major League Baseball ✤ ユースケース ✤ クライアントのアクティビティトラッキング ✤ メトリクス⽣成 ✤ データクレンジング ✤ ログフィルタリング ✤ インデクシングや検索 ✤ ログルーティング ✤ IoTバックエンド
  • 10. 利⽤パターン② : バックエンド ✤ APIバックエンド ✤ カスタマ ✤ Vidroll ✤ ユースケース ✤ CRUD処理のバックエンド、バリデーション、ワークフローのトリガ ✤ 多様なコミュニティベースのフレームワーク(Serverless, Zappa, APEX) ✤ いわゆるサーバレスなWebアプリケーション・アーキテクチャ ✤ IOTバックエンド ✤ ユースケース ✤ デバイスのロジック、データ同期
  • 11. 利⽤パターン③ : その他 ✤ ユースケース ✤ CloudWatchのアラームをSNS経由で受けとってイベントドリブンなインフラ 管理 ✤ 定期処理の実⾏ ✤ Alexa AppsとSlackの組み合わせでサーバレスな⾳声認識bot ✤ モバイルバックエンド ✤ AWSサービスの拡張として ✤ SWF– ワークフローのアクションとして ✤ CloudFormation - プロビジョニング時のカスタムリソース ✤ SES – インバウンドメールに対するカスタムレスポンス ✤ CodePipeline - デプロイ時のカスタムトリガー
  • 12. AWS Lambda Updates ✤ Blueprint ✤ Python 2.7 サポート ✤ スケジュール実⾏ ✤ バージョンとエイリアス ✤ VPCアクセス ✤ Node.js 4.3 サポート
  • 14. Blueprint ✤ Lambdaファンクションの新規作成時に利⽤可能なサンプル集 ✤ ユースケースに応じたイベントソースの設定と実際に動くコードが提 供されている ✤ Slack連携⽤のものもある ✤ 2016年3⽉2⽇現在、40種類を提供 ✤ Node.jsとPythonのみ ✤ 必要に応じてカスタマイズして利⽤
  • 18. Python 2.7のサポート ✤ LambdaファンクションをPython2.7で記述可能に ✤ Mobile SDKを含む全てのSDKで利⽤可能 ✤ CLIから利⽤可能 ✤ マネージメントコンソール(インラインエディタも利⽤可) ✤ Blueprintも利⽤可能
  • 19. プログラミングモデル – handler – ✤ event ファンクションに渡される情報。ディクショナリ型。 ✤ context ランタイム情報を格納。ファンクション内部から参照可能。 ✤ 戻り値 呼び出しタイプに応じて異なる ✤ RequestResponse (同期) 関数の戻り値がLambdaファンクション呼び出し元へと返される。 ✤ Event(⾮同期) 関数の戻り値がセットされていたとしても値は破棄される ✤ 何も返さない場合、nullという⽂字列が返される def handler_name(event, context): ... return some_value
  • 20. プログラミングモデル – Context – ✤ ランタイムに関する情報が含まれ、contextオブジェクト(2番⽬のパラメータ)経由で関数内部からアクセ ス可能 ✤ メソッド ✤ get_remaining_time_in_millis():関数終了までの残り時間 ✤ アトリビュート ✤ function_name:実⾏中のファクション名 ✤ function_version:実⾏中ファンクションのバージョン。エイリアスを使⽤した場合、エイリアスが指すバージョン ✤ invoked_function_arn:呼び出しに使われたARN。ファンクションのARNもしくはエイリアスのARN ✤ memory_limit_in_mb:設定されたメモリサイズ ✤ aws_request_id:AWSリクエス ID。invoke メソッドを呼び出したクライアントに返される ID ✤ log_group_name:CloudWatch ロググループ名 ✤ log_stream_name:CloudWatch ログストリーム名 ✤ Identity:Amazon Cognitoに関する情報(Mobile SDKで呼び出した場合のみ) ✤ client_context:クライアントのアプリケーションやデバイスに関する情報(Mobile SDKで呼び出した場合のみ)
  • 21. プログラミングモデル – Logging – ✤ 次のどちらかでログ出⼒し、いずれもCloudWatch Logsに出⼒される ✤ printステートメント ✤ loggingモジュールのLogger関数 ✤ loggingモジュールを利⽤した場合、ログエントリにタイムスタンプや ログレベルなどの情報が追加される
  • 22. プログラミングモデル – 例外処理 – ✤ 関数内で例外が発⽣した場合、例外情報がJSON形式にシリアライズして出⼒される ✤ 呼び出しがRequestResponseの場合は呼び出し元に戻り値として返されるが、Eventの 場合はCloudWatch Logsに記録されるのみとなる def lambda_handler(event, context): raise Exception('failed') { "stackTrace": [ [ "/var/task/lambda_function.py", 14, "lambda_handler", "raise Exception('failed')" ] ], "errorType": "Exception", "errorMessage": "failed” } ■ファンクションサンプル ■エラーレスポンスサンプル
  • 24. スケジュール実⾏ ✤ 特定時刻または繰り返しによるファンクション実⾏をサポート ✤ 最短は1分インターバル ✤ 設定はイベントソースから ✤ 「CloudWatch Events – Schedule」を選択 ✤ Cron形式の指定もサポート ✤ Lambda側からはコンソールでの設定のみ ✤ CLIとSDKからの設定はCloudWatch Eventのものを利⽤する
  • 26. スケジュール指定⽅法 ✤ rate(Value Unit) ✤ インターバル実⾏する場合の指定⽅法 ✤ Value: 正の整数を指定 ✤ Unit:分、時、⽇を指定 ✤ 例 ✤ 5分ごとに実⾏ => rate(5 minites) ✤ 1時間ごとに実⾏ => rate(1 hour) ✤ 7⽇ごとに実⾏ => rate(7 days) ✤ Valueが単数じゃない場合はUnitも複数形にすること
  • 27. スケジュール指定⽅法 ✤ cron(Minutes Hours Day-of-month Month Day-of-week Year) ✤ 全フィールドが必須 ✤ タイムゾーンはUTCのみ ✤ ワイルドカードも利⽤可 ✤ 例 ✤ 毎⽇午前 10:00 実⾏ => cron(0 10 * * ? *) ✤ 毎⽉曜〜⾦曜の午後 06:00に実⾏ => cron(0 18 ? * MON-FRI *) ✤ 毎⽉最初の⽇の午前 8:00に実⾏ => cron(0 8 1 * ? *) ✤ ⽉曜〜⾦曜の 10 分ごとに実⾏ => cron(0/10 * ? * MON-FRI *) ✤ ⽉曜〜⾦曜の午前 8:00 〜 午後 5:55の間5分ごとに実⾏ => cron(0/5 8-17 ? * MON-FRI *)
  • 28. Cron形式で利⽤可能なワイルドカード ⽂字 定義 例 / 増分を指定します minutes フィールドの0/15は、15分ごとに実⾏が発⽣するように指定し ます。 L "最後" を指定します Day-of-month フィールドに使⽤された場合、その⽉の末⽇が指定されま す。Day-of-week フィールドに使⽤された場合、週の最後の曜⽇ (⼟曜 ⽇) が指定されます。 W 平⽇を指定します ⽇付とともに使⽤した場合(5/W など)、その⽉の 5 ⽇に最も近い平⽇ が指定されます。5 ⽇が⼟曜⽇の場合、実⾏は⾦曜⽇に発⽣します。5 ⽇ が⽇曜⽇の場合、実⾏は⽉曜⽇に発⽣します。 # その⽉の n 番⽬の⽇を指定します 3#2 は、⽉の第 2 ⽕曜⽇を意味します(⽕曜⽇は週 7 ⽇の 3 番⽬の曜⽇ です)。 * すべての値を指定します Day-of-month フィールドで使⽤した場合、⽉のすべて⽇を意味します。 ? 値を指定しません 指定した別の値とともに使⽤されます。たとえば、特定の⽇付を指定した が、その⽇が何曜⽇であってもかまわない場合です。 - 範囲を指定します 10-12 は 10、11、および 12 を意味します , 追加の値を指定します SUN, MON, TUE は、⽇曜⽇、⽉曜⽇、および⽕曜⽇を意味します / 増分を指定します 5/10 は、5、15、25、35 などを意味します
  • 30. バージョニング ✤ ある⼀時点のLambdaファンクションをバージョンとして管理可能 ✤ 新しいバージョンはいつでも発⾏可能 ✤ Lambdaファンクションの作成/更新時にpublishパラメータを追加する ✤ PublishVersionを実⾏することで明⽰的に発⾏することも可能 ✤ バージョンの発⾏をするまでは$LATESTが唯⼀のバージョンとなる ✤ ⼀度発⾏すると構成も含めて⼀切変更不可 ✤ 単純にバージョン番号がインクリメントする exports.handler = function(event,context) {context.succeed(“bye”);} exports.handler = function(event,context) {context.succeed(“hi”);} Version:1 Version:2
  • 31. エイリアス ✤ 特定バージョンに対するポインタのようなもの ✤ エイリアスを作成することでバージョン番号を把握していなくても指 定バージョンを呼び出せる ✤ いつでも付け替え可能 Version: 1 Arias: Prod Version: $LATEST Arias: Dev Version: 1 Version: $LATEST Arias: Dev Version: 2 Arias: Prod 変更前 変更後 (新規バージョン発⾏後) Prodというエイリアスを 1から2へ付け替え
  • 34. その他アップデート ✤ タイムアウトの最⼤が60秒から300秒に ✤ CloudWatch Eventsとの連携 ✤ コードストレージが1.5GBから75GBに
  • 35. VPCアクセス Photo credit: Matthew Wilkinson via Visual Hunt / CC BY-ND
  • 36. VPCアクセス ✤ VPC内のリソースへインターネットを経由せずにアクセス可能 ✤ Amazon Elasticache / Amazon RDS ✤ Private EC2 endpoints ✤ その他全てのVPC内リソース ✤ VPC内リソースにアクセスさせたいLambdaファンクションに対してVPCサブ ネットおよびセキュリティグループを指定 ✤ 新規作成時だけでなく既存のものを後から変更することも可能 ✤ AZごとにサブネットを指定しておくのがおすすめ ✤ Elastic Network Interface(ENI)を利⽤して実現 ✤ 作成・削除はLambdaによって完全にコントロールされる ✤ Lambdaファンクションへの初回アクセス時などENIの作成を伴う場合、最⼤60秒程度必要 ✤ ENIには指定したサブネットのIPがDHCPで動的に割り当てられる ✤ ファンクションに割り当てるIAM Roleに”AWSLambdaVPCAccessExecutionRole”というポリ シーをアタッチしておくこと Photo credit: Matthew Wilkinson via Visual Hunt / CC BY-ND
  • 37. Photo credit: Matthew Wilkinson via Visual Hunt / CC BY-ND VPCアクセスの注意点 ✤ 設定をしたタイミングからインターネットアクセスは不可となる ✤ 必要な場合はNATインスタンスを⽤意すること ✤ 充分な数の ENI またはサブネット IP がない場合は、リクエスト数が増え た場合に失敗する ✤ このエラーについては現在のところCloudWatch Logsには記録されない ✤ コンソールで実⾏するなど、同期実⾏することでエラー応答は取得できる ✤ 必要なENIのキャパシティは以下の計算式でざっくりと計算可能 Projected peak concurrent executions * (Memory in GB / 1.5GB)
  • 38. Photo credit: Tiberiu Ana via Visualhunt.com / CC BY Node.js 4.3 サポート
  • 39. Node.js 4.3のサポート ✤ 利⽤可能なNode.jsに4.3.2を追加 ✤ 0.10も継続利⽤可能 ✤ 2016年10⽉までは0.10での新規作成もサポート ✤ Node.js v4の特徴 ✤ Node.jsとio.jsが統合。io.jsがv1〜v3までリリースされていたためv0.12からv4 に ✤ ES6(ECMAScript 2015、ES2015)のサポート範囲が拡⼤ ✤ Allow関数 ✤ “ let ”と “ const ” ✤ Promise
  • 40. プログラミングモデルの変更 ✤ コールバックモデルの導⼊ ✤ context.done(), context.succeed(), context.fail()の3つのメソッドの代わりにコー ルバックを利⽤ ✤ contextオブジェクトのメソッドは継続して利⽤可能だが今後はコールバックモ デルが推奨 ✤ v0.10では利⽤不可 'use strict'; exports.handler = (event, context, callback) => { console.log('value1 =', event.key1); callback(null, event.key1); };
  • 41. コールバック ✤ Lambdaファンクションの返り値を定義する新しいオプション ✤ 何も指定されていない場合はファンクションの結果としてnullが返る ✤ contextオブジェクトに追加されたcallbackWaitsForEmptyEventLoop というプロパティで動作を制 御可能 ✤ デフォルトはtrueになっており、全ての⾮同期処理の完了待ってレスポンス ✤ falseにするとコールバックがコールされると即座にフリーズ(v0.10と同じ) callback(Error error, Object result); シンタックス ✤ errorはファンクションの実⾏が失敗したときの結果を受け取るためのオプショナルパラメータ ✤ ファンクションが成功した場合はnullになる ✤ resultはファンクションの実⾏が成功したときに返す結果になる ✤ 実⾏が失敗した場合はerrorにその情報が格納され、このパラメータは無視される
  • 43. コンテナの再利⽤ ✤ Lambdaファンクションはコンテナ(Sandbox)内で実⾏される ✤ ファンクション単位で隔離 ✤ ファンクション作成後、もしくはコードや設定更新後の初回実⾏時は新たにコンテナが 作成され、ファンクション⽤のコードがコンテナ内にロードされる ✤ ハンドラが最初に呼び出される前に初期化処理がコンテナの⽣成ごとに⼀度だけ実⾏される ✤ ファンクションが終了し、ある程度時間が経過したのち再度実⾏される場合は再度、コ ンテナの⽣成が⾏われる ✤ コードの変更がなく前回の実⾏から時間が⽴っていない場合はコンテナを再利⽤する ✤ 初期化処理をスキップするためパフォーマンス上のアドバンテージがある ✤ 再利⽤された場合、最後に/tmpに書き込んだ内容も残っている(ただし、あてにはしないこと) ✤ エイリアスを使っていて付け替えた場合もエイリアスの作成先となるコンテナを可能であれば再利 ⽤する
  • 44. Idempotency ✤ 冪等性はお客様のコードで確保する必要がある ✤ AWS Lambdaで保証しているのは最低1回実⾏することであり1回しか実⾏しな いことではない ✤ 同⼀イベントで同⼀Lambdaファンクションが2回起動されることがまれに発⽣ する ✤ DynamoDBを利⽤するなどして冪等性を担保する実装を⾏うこと
  • 45. Retries on Errors Event Source Model Invocation Type Retries on Errors Amazon S3 Non-stream Async Up to 3 times. Amazon Kinesis Streams Stream-based Sync Until data expires. Amazon DynamoDB Stream-based Sync Until data expires. Amazon Simple Notification Service Non-stream Async Up to 3 times. Amazon Echo (Alexa) Non-stream Sync Return 429 error. Amazon CloudWatch Logs Non-stream Async Up to 3 times. AWS CloudFormation Non-stream Async Up to 3 times. Amazon Cognito Non-stream Sync Return 429 error. AWS IoT Non-stream Async Up to 3 times. Amazon CloudWatch Events Non-stream Async Up to 3 times. Scheduled Event Non-stream Async Up to 3 times. Amazon API Gateway Non-stream Sync Return 429 error. Amazon Simple Email Service Non-stream Async Up to 3 times. AWS Config Non-stream Async Up to 3 times. Custom Event Non-stream Sync/Async Return 429 error / Up to 3 times.
  • 46. 同時実⾏数の考え⽅ ✤ イベントソースがAmazon Kinesis / DynamoDBの場合、シャード数と等しい ✤ ストリームのシャードごとに同時に実⾏されるため ✤ 例:100シャードのAmazon Kinesis ストリームの場合、同時実⾏数はどの時点でも最⼤ 100 件。 そのうちアクティブなシャードが10個だった場合、実際の同時実⾏数は10となる。 ✤ それ以外は、(1 秒あたりのリクエスト数 * 関数の実⾏時間)となる。たとえば、 関数が 1 秒あたりのリクエストが10 件で平均実⾏数が3秒の場合、同時実⾏数は 30となる 1s 2s 3s 4s 5s 10 req/sec Avg 3s / exec “同時”に実⾏されているタイミング
  • 47. 同時実⾏数を越えた場合 ✤ 同時実⾏数を越えた場合(スロットリングされた場合)の挙動はファンクション の呼び出し⽅によって異なる ✤ 同期の場合 ✤ 呼び出し元には429エラーがレスポンスされる ✤ RequestResponseでのカスタムイベントやAPI Gatewayのバックエンドの場合、呼び出し元で429を受け 取ってリトライ処理を実装する ✤ ⾮同期の場合 ✤ スロットルされたイベントは最⼤ 6 時間再試⾏される ✤ S3のイベントの場合はこの6時間のリトライが失敗すると最⼤24時間までイベントを再送する ✤ 15〜30 分程度は、トラフィックの急激な上昇によるものとして許容される ✤ イベントソースがKinesisもしくはDynamoDBの場合 ✤ データの有効期限が切れるまで (Amazon Kinesisの場合は最⼤ 7 ⽇間)、スロットルされたイベントが再試 ⾏される ✤ スロットルされたリクエストはブロックとして扱われ、そのレコードのバッチの有効期限が切れるか処理 が成功するまで、ストリームから新しいレコードの読み込みが⾏われない
  • 49. VidRoll ✤ 課題 ✤ EC2の管理が難しくなりつつあっ た ✤ ITインフラではなくビジネスへの フォーカスが必要 ✤ 解決⽅法 ✤ プレイヤーがAPI Gateway経由で Lambdaを実⾏ ✤ 動画のリアルタイム変換にも利⽤ ✤ ベネフィット ✤ ⽣産性が向上し、収益が10倍に なっても、エンジニアの追加なし
  • 50. easy ten Mobile app thathelps you learn 10 new,foreign words a day Users have learned 170 000 000+ new words • Featured in 85+ countries • Top 5 grossing apps overall(Russia) • Top 8 grossing apps overall(Brazil) 1 200 000+ downloads