Slides from the MongoDB user group meetup talk that I did in March 2017.
https://gist.github.com/ianmas-aws/ce847270ecedf9a58cbcc1ed736cf541
^^ Gist containing (a very simple) code sample is here
4. Pay-per request
• Buy compute time in
100 ms increments
• Low request charge
• No hourly, daily, or
monthly minimums
• No per-device fees
Never pay for idle!
Free Tier
1 million requests and 400,000 GBs of
compute every month, for every customer
5. Using AWS Lambda
Bring your own code
• Node.js, Java, Python, C#
• Bring your own libraries
(even native ones)
Simple resource model
• Select power rating from 128
MB to 1.5 GB
• CPU & network allocated
proportionately
• Metrics provide actual usage
Flexible authorization
• Securely grant access to
resources, including VPCs
• Fine-grained control over
who can call your functions
Flexible use
• Call or send events
• Integrated with other AWS
services
• Build whole serverless
ecosystems
6. Using AWS Lambda
Programming model
• AWS SDK built in
• Lambda is the front end
• Use processes, threads, /
tmp, sockets normally
Stateless
• Persist data using Amazon
S3, ElastiCache, RDS or non-
relational databases
• No affinity to infrastructure
(can’t “log in to the box”)
Authoring functions
• Author directly using the
console WYSIWYG editor
• Package code as a .zip and
upload to Lambda or S3
• Plugins for Eclipse and
Visual Studio
• Command line tools
Monitoring and logging
• Built-in metrics for requests,
errors, latency, and throttles
• Built-in logs in Amazon
CloudWatch Logs
7. Key usage scenarios
Data Triggers
Customise behaviour
on data updates in S3,
SNS & more
Control systems
Customize responses and
response workflows to state
changes within AWS
Serverless backends
Execute server side
backend logic in a cross
platform fashion
Big data
Realtime processing
of streaming data
updates using Kinesis
9. Dynamic data ingestion using S3+Lambda
Amazon S3 AWS Lambda
processes the
object
Amazon S3
New object
uploaded
NoSQL DB
Stores
processed
object to S3
Updates filemetadata toNoSQL DB
13. Real time stream processing with Kinesis+Lambda
Amazon
Kinesis
AWS Lambda
processes the
stream
Amazon
CloudWatch Logs
Amazon SNS
Compress
data &
dump
to CW
-Logs
Filter data andalert SNS onmatch
New data
available
14. Customers using real-time processing pipelines
AWS Lambda
Aggregate
statistics
Real-time
analytics
Kinesis Stream
Apply custom logic to process data
being uploaded through Kinesis stream
• Client activity tracking
• Metrics generation
• Data cleansing
• Log filtering
• Indexing and searching
• Log routing
• Live alarms and notifications
16. An API Call Flow
Internet
Mobile Apps
Websites
Services
AWS Lambda
functions
AWS
API Gateway
Cache
Endpoints on
Amazon EC2
Any other publicly
accessible endpointAmazon CloudWatch
Monitoring
Amazon
CloudFront
Amazon
API Gateway
18. Building Mobile Backends with Lambda
• Lambda as the backend logic for mobile
applications.
• Easy Personalization
– … for devices
– … for end users
21. Scheduled Event (CRON)
• Dev/QA Environments: Stop running instances at 19:00 h
and Start it again at 8:00 between Monday to Friday.
• Log cleanup
• Batching up statistics
• Alarm clock
• Infrastructure automation
• Backup scheduler
22. Backup and Disaster Recovery
• Cross-region replication to multiple regions.
• Off-site backups.
• Validation of those backups is difficult to scale.
• Set rules on Lambda that defines what needs to be backup and
checks
• Validates and raise alarms in case of failure.
25. Reference architecture: IoT back end using AWS Lambda and Amazon Kinesis
https://s3.amazonaws.com/awslambda-reference-architectures/iot-backend/lambda-refarch-iotbackend.pdf
https://github.com/awslabs/lambda-refarch-iotbackend
26. Reference architecture: Mobile back end using AWS Lambda and Amazon API
Gateway
https://s3.amazonaws.com/awslambda-reference-architectures/mobile-backend/lambda-refarch-mobilebackend.pdf
https://github.com/awslabs/lambda-refarch-mobilebackend
27. Reference architecture: Web applications with AWS Lambda
https://s3.amazonaws.com/awslambda-reference-architectures/web-app/lambda-refarch-webapp.pdf
https://github.com/awslabs/lambda-refarch-webapp