Real World Serverless
by
freee
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Real World Serverless nasa @ freee 2017.1.17 Serverless Meetup Tokyo#2 1
Slide 2
Slide 2 text
はじめまして • nasa (Asaoka Natsuki) • 紅茶, ガジェット, fedora 好き • 2014 年から で engineer • その前はとある public cloud (IaaS) の開発を していました 2
Slide 3
Slide 3 text
3 freee にレシート・請求書のメールを転送 freee への登録部分に AWS Lambda を使用 PDF OCRにかけて 会計情報をつくるよ! 2016/11 freee Meets Serverless!!
Slide 4
Slide 4 text
recipe • AWS SES - メール受信 • AWS Lambda - node.js • AWS DynamoDB • AWS S3 • apex • lambda local 4
Slide 5
Slide 5 text
email Amazon SES Amazon S3 Amazon S3 Amazon Lambda Amazon Lambda Amazon DynamoD B oregon Tokyo 5 architecture
Slide 6
Slide 6 text
key point #1 • independent • 不正なメールが大量にきたとき、サービスへの大量アクセスを防 ぎたい • DynamoDB で処理対象かcheck • 対象外なら exit • 障害時の復旧のしやすさ • S3 にデータがあればそれを使って再開 6 6 
Slide 7
Slide 7 text
key point #2 • retriable • 意図しないタイミングで retry されうる • 「実行時間 timeout」「memory 不足」etc. • retry を前提としたコード • 完了してる処理は skip • 復帰できない error は 通知して exit 7 7 
Slide 8
Slide 8 text
Extra • AWS の仕様を踏まえて試行錯誤 • “いつリージョンを超えるか ?” • SES は Oregon, サービスは Tokyo • SES のイベントソースを使うと Lambda <-> S3, Lambda <-> freee 間で太平洋を越えることに…timeout の可能性Up • SES -> S3 でリージョン超え • Lambda は S3 のイベントソースを使う 8 8 
Slide 9
Slide 9 text
9 End We are hiring!
Slide 10
Slide 10 text
• apex • http://apex.run/ • lambda local • https://github.com/ashiina/lambda-local • Understanding Container Reuse in AWS Lambda • https://aws.amazon.com/jp/blogs/compute/container-reuse-i n-lambda/ • 2016年11月度 新機能のお知らせ (※今回の機能のリリース告知) • https://www.freee.co.jp/blog/release-2016-11-30-18058.html 10 appendix