Save 37% off PRO during our Black Friday Sale! »

Real World Serverless

3adaa5e19f64345a0fbdb2e5d00be571?s=47 freee
January 17, 2017

Real World Serverless

freeeでのAWS Lambdaを利用したServerlessの活用方法
アーキテクチャの紹介やリージョンをまたいだ際の注意点など

from nasa

3adaa5e19f64345a0fbdb2e5d00be571?s=128

freee

January 17, 2017
Tweet

Transcript

  1. Real World Serverless nasa @ freee 2017.1.17 Serverless Meetup Tokyo#2

    1
  2. はじめまして • nasa (Asaoka Natsuki) • 紅茶, ガジェット, fedora 好き

    • 2014 年から で engineer • その前はとある public cloud (IaaS) の開発を していました 2
  3. 3 freee にレシート・請求書のメールを転送 freee への登録部分に AWS Lambda を使用 PDF OCRにかけて

    会計情報をつくるよ! 2016/11 freee Meets Serverless!!
  4. recipe • AWS SES - メール受信 • AWS Lambda -

    node.js • AWS DynamoDB • AWS S3 • apex • lambda local 4
  5. email Amazon SES Amazon S3 Amazon S3 Amazon Lambda Amazon

    Lambda Amazon DynamoD B oregon Tokyo 5 architecture
  6. key point #1 • independent • 不正なメールが大量にきたとき、サービスへの大量アクセスを防 ぎたい • DynamoDB

    で処理対象かcheck • 対象外なら exit • 障害時の復旧のしやすさ • S3 にデータがあればそれを使って再開 6 6 
  7. key point #2 • retriable • 意図しないタイミングで retry されうる •

    「実行時間 timeout」「memory 不足」etc. • retry を前提としたコード • 完了してる処理は skip • 復帰できない error は 通知して exit 7 7 
  8. Extra • AWS の仕様を踏まえて試行錯誤 • “いつリージョンを超えるか ?” • SES は

    Oregon, サービスは Tokyo • SES のイベントソースを使うと Lambda <-> S3, Lambda <-> freee 間で太平洋を越えることに…timeout の可能性Up • SES -> S3 でリージョン超え • Lambda は S3 のイベントソースを使う 8 8 
  9. 9 End We are hiring!

  10. • 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